Chris Lattner
20229fbf85
Introduce infrastructure for maintaining per-translation unit SIL parser state across
...
invocations of the parser.
Swift SVN r5906
2013-06-30 18:44:59 +00:00
Manman Ren
8b2cf98fec
SIL Parser: parse branch and condbranch.
...
Swift SVN r5872
2013-06-28 17:51:13 +00:00
Chris Lattner
5c661f3c38
push global reference parsing forward a bit, diagnosing a type error.
...
Swift SVN r5811
2013-06-26 05:33:49 +00:00
Chris Lattner
be0f7b4c48
Wire up initial support for function_ref, allowing us to SILParse the code for "return 4".
...
This is terrible in several ways: it doesn't handle forward references, we do a linear scan
of SILFunctions, and diagnostics don't exist. Room for improvement some other time.
Swift SVN r5736
2013-06-21 05:27:15 +00:00
Chris Lattner
706ceffab0
generalize call parsing to also handle partial_apply
...
Swift SVN r5726
2013-06-20 20:52:11 +00:00
Chris Lattner
9cf535be31
after parsing an applyinst, actually create it! We can now silparse
...
the sil for this function:
func call(fnptr : () -> Int) -> Int {
return fnptr()
}
Swift SVN r5724
2013-06-20 20:29:21 +00:00
Chris Lattner
88e8f0227a
Start parsing SIL apply instructions. Right now, they are dropped on the floor because I have to run.
...
Swift SVN r5720
2013-06-20 17:57:04 +00:00
Chris Lattner
e4e1d635a2
fix couple fixme's by having the SILParser make SILTypes directly
...
instead of going through TypeConverter.
Swift SVN r5527
2013-06-07 23:19:18 +00:00
Chris Lattner
5350849cbe
Parser support for retain/release/retain_autoreleased.
...
Swift SVN r5357
2013-05-26 23:22:40 +00:00
Chris Lattner
3b82c89106
implement parsing support for the metatype instruction.
...
Swift SVN r5356
2013-05-26 23:14:41 +00:00
Chris Lattner
e052f3ca41
change the sil printer to print the type of the destination
...
operand, producing something like:
%2 = store %0 to %1 : $*Int64
Enhance the sil parser to be able to parse this. We can now
round trip everything required to handle this function:
func foo(a : Int) -> Int {
return a
}
Swift SVN r5354
2013-05-26 14:43:17 +00:00
Chris Lattner
63557b5ddd
parse basic block argument lists.
...
Swift SVN r5353
2013-05-26 06:22:02 +00:00
Chris Lattner
91140d85c1
rename SILParserFunctionState to SILParser, no functionality change.
...
Swift SVN r5352
2013-05-26 06:12:58 +00:00
Chris Lattner
dfef589a4b
implement generic support for parsing the [thin] attribute on function types.
...
Switch SILType parsing to parse type annotations.
This allows us to use thin functions in .sil files.
Swift SVN r5351
2013-05-26 06:11:13 +00:00
Chris Lattner
56ded647de
- Implement parsing of load, alloc_var, and dealloc_var.
...
- Fix SIL Type parsing of address types.
- Remove dead siltype parsing logic for attributes like sil_sret
and sil_uncurry.
Swift SVN r5350
2013-05-26 06:00:21 +00:00
Chris Lattner
a34f4efa13
parse integer_literal. Parse and print tuple instructions with named
...
elements in a way that we can not lose information.
Swift SVN r5348
2013-05-26 01:09:46 +00:00
Chris Lattner
479cbd2ac6
don't require the basic block name to be present. It is particularly
...
annoying when hand writing tests for the entry block.
Swift SVN r5347
2013-05-25 22:36:17 +00:00
Chris Lattner
c801ea6de0
diagnose use of undefined values.
...
Swift SVN r5345
2013-05-25 22:19:26 +00:00
Chris Lattner
2e69c61f71
Implement more reasonable local value name lookup:
...
- Allow forward references.
- Diagnose redefinitions.
- Diagnose cases where the use/def of a value mismatch type.
While I'm at it, this fixes a bug where tuple parsing wasn't parsing
the separating commas.
Swift SVN r5343
2013-05-25 18:42:38 +00:00
Chris Lattner
44cdd1d59d
parse and build tuple and return instructions. Add a terrible hack at
...
local name lookup.
Swift SVN r5334
2013-05-25 16:12:42 +00:00
Chris Lattner
bb82daca8f
generalize parseToken to take an arbitrary argument list for the diagnostic
...
when it fails.
Teach the SIL parser to parse and validate (but still discard) tuple and
return instructions.
Swift SVN r5318
2013-05-25 00:40:46 +00:00
Chris Lattner
bd217c9227
extend the general form of parseIdentifier to optionally return a SourceLoc,
...
and use this throughout the parser.
Swift SVN r5314
2013-05-25 00:07:56 +00:00
Chris Lattner
5d434c581b
move sil function parsing logic into the SILParserFunctionState class.
...
Swift SVN r5311
2013-05-24 23:43:02 +00:00
Chris Lattner
39d0d13dbb
Diagnose SIL BB redefinition errors, add a testcase to check error conditions.
...
Swift SVN r5278
2013-05-22 23:03:31 +00:00
Chris Lattner
3fb5bcf16b
implement name binding mechanics for SILBasicBlock's.
...
Swift SVN r5277
2013-05-22 22:34:44 +00:00
Chris Lattner
98d708d1fc
In a SIL function body, lex %42 as a new sil_local_name token.
...
Swift SVN r5261
2013-05-22 05:34:18 +00:00
Chris Lattner
eeb05ae90b
Start working towards SIL parser support for basic blocks and instructions.
...
For now, just stub out instruction parsing with a hungry loop to get our
minimal testcase parsing (but ignored).
Swift SVN r5259
2013-05-22 00:55:52 +00:00
Chris Lattner
e0527c8a84
simplify resolveIdentifierType() in two ways:
...
1) a DeclContext doesn't need to be passed in, now that IdentifierType tracks it.
2) factor the code that sets Components to ErrorType out of the clients.
Swift SVN r5250
2013-05-21 05:46:16 +00:00
Chris Lattner
8c85a49d2a
with the groundwork out of the way, we can now namebind types referenced
...
by the SIL parser. Add a test that covers both local types, and types
that require looking through an import decl (Int, from the stdlib).
Swift SVN r5249
2013-05-21 05:34:24 +00:00
Chris Lattner
1fde9f69fd
remove the diag::tuple_global_missing_type diagnostic, which printed as
...
"a tuple type specifying the type of a global must explicitly state the type of each tuple element".
This diagnostic doesn't make any sense, and is apparently only generated by the old
type checker. It is also the only thing keeping the "isFirstPass" argument to
TC.validateType() alive, so remove it.
The new type checker does have issues with default values, I filed
rdar://13946171 to track it, but this old approach (which I wrote, *shame*)
seems way too broken to salvage.
Swift SVN r5244
2013-05-21 04:08:32 +00:00
Chris Lattner
b4e7ab4247
use TypeLowering to produce SILTypes that make sense now that aggregates
...
have been simplified. This still isn't ideal, but is a lot better than
what we had, and is waiting for SILFunctionTypeInfo to stop containing
SILTypes.
Swift SVN r5232
2013-05-20 19:36:57 +00:00
Chris Lattner
a38747b6a2
remove parsing logic for SILType calling convention attribute, this
...
is hoisted up to Type now.
Swift SVN r5230
2013-05-20 19:29:44 +00:00
Chris Lattner
087d4c8430
Implement the parsing logic for SIL types (the SILType specific attributes).
...
All of it is still dropped on the floor.
Swift SVN r5195
2013-05-17 01:02:02 +00:00
Chris Lattner
611a3a97db
Parse sil linkage types, and actually create the SILFunction parsed.
...
This gets us prototypes parsing and printing, though types aren't
correct at all yet.
Swift SVN r5192
2013-05-16 22:48:07 +00:00
Chris Lattner
bde8f753da
wire up minimal sil function parsing (still not validating or creating
...
a SIL function). This introduces contextual lexing state for SIL function
bodies for SIL-specific lexing rules.
Swift SVN r5179
2013-05-16 18:46:46 +00:00
Chris Lattner
192475ad88
carve out a new file for the sil parser logic.
...
Swift SVN r5177
2013-05-16 17:59:30 +00:00