Commit Graph

29 Commits

Author SHA1 Message Date
Huon Wilson
22c9e20a9d [IRGen] Completely remove witness table offsets.
These are unused.
2017-04-13 11:44:01 -07:00
Huon Wilson
ac0c76be12 [IRGen] Allow constructing UniversalLinkageInfo without an IRGenModule. 2017-04-06 17:31:45 -07:00
Huon Wilson
4e263a29d5 [IRGen] Compute conformance fragility based on containing module.
Previously this would be using the current module's resilience strategy,
rather than that of the one that contains the conformance.
2017-04-06 17:29:42 -07:00
Huon Wilson
0776b19958 [IRGen] Compute LinkInfo without an IGM. 2017-04-05 09:54:20 -07:00
Huon Wilson
65c6bdca90 [IRGen] Remove IGM argument, factor out conformance fragility logic. 2017-04-05 09:54:19 -07:00
Huon Wilson
3105c6ed00 [IRGen] Expose LinkInfo publicly, like LinkEntity. 2017-04-05 09:54:19 -07:00
Huon Wilson
19301e984f [IRGen] Remove unnecessary IRGenModule arguments. 2017-04-05 09:54:19 -07:00
Slava Pestov
8fe8b89b0f SIL: Terminology change: [fragile] => [serialized]
Also, add a third [serializable] state for functions whose bodies we
*can* serialize, but only do so if they're referenced from another
serialized function.

This will be used for bodies synthesized for imported definitions,
such as init(rawValue:), etc, and various thunks, but for now this
change is NFC.
2017-03-29 16:47:28 -07:00
Huon Wilson
655fa58620 [IRGen] Expose LinkEntity and ValueWitness publicly. 2017-03-23 15:58:29 -07:00
practicalswift
6d1ae2a39c [gardening] 2016 → 2017 2017-01-06 16:41:22 +01:00
practicalswift
44cd889924 [gardening] Fix recently introduced headers. 2016-12-21 21:19:10 +01:00
Arnold Schwaighofer
f1c2dcf1fa Add an alloc_stack hoisting pass.
Hoist alloc_stack instructions of 'generic' or resilient type to the entry
block. At the same time also perform a very simple stack coloring analysis.
This does not use a true liveness-analysis yet but rather employs some simple
conservative checks to see whether the live ranges of two alloc_stacks might
interfere.

AllocStackHoisting is an IRGen SIL pass. This allows for using IRGen's type
lowering information. Furthermore, hoisting and merging the alloc_stack
instructions this late does not interfere with SIL optimizations because the
resulting SIL never gets serialized.
2016-12-20 07:51:55 -08:00
Arnold Schwaighofer
f38c912878 Add support of a IRGen lowering SIL pipeline.
This pipeline is run as part of IRGen and has access to the IRGenModule.

Passes that run as part of this pipeline can query for the IRGenModule.

We will use it for the AllocStackHoisting pass. It wants to know if a type is of
non-fixed size.

To break the cyclic dependency between IRGen -> SILOptimizer -> IRGen that would
arise from the SILPassManager having to know about the createIRGENPASS()
function IRGen passes instead of exposing this function dynamically have to add
themselves to the pass manager.
2016-12-20 07:51:47 -08:00
Connor Wakamo
3e81830385 Move "include/swift/IRGen/Options.h" to "include/swift/AST/IRGenOptions.h".
This commit only moves the header file; updating the class so that it is no longer in the irgen namespace will be handled separately.

Swift SVN r11404
2013-12-18 01:17:09 +00:00
Jordan Rose
f7f253320a Re-add -l flag to Swift interim driver.
This is useful in -i and REPL modes, which do not have a separate linking
step. This version of the -l flag doesn't rely on TranslationUnit. I also
cleaned up the library-loading diagnostics.

Swift SVN r9488
2013-10-18 18:52:10 +00:00
Michael Gottesman
4dc7cee606 Add in the option -disable-llvm-optzns to swift.
-disable-llvm-optzns in clang tells the frontend to do everything it would
normally do at lets say -O2, except run the actual LLVM IR passes on the
resulting IR. This is useful in the case where one wants to look at the result
of a non gauranteed SIL optimization pass at the IR level without llvm
optimizations applied.

Swift SVN r8594
2013-09-24 16:48:09 +00:00
Joe Groff
e011a80ba8 Add an option to disable 'unimplemented' errors for dynamic type layout.
This will let me work on dynamic value type layout without leaving crash bugs for the library team to puzzle over.

Swift SVN r7897
2013-09-04 15:54:07 +00:00
Adrian Prantl
3313f8acbc Debug info: emit command line options.
Swift SVN r6778
2013-07-31 18:48:59 +00:00
Adrian Prantl
e147e1a385 Initialize the DebugInfo field in the default constructor of Options.
Swift SVN r6015
2013-07-05 20:37:10 +00:00
Adrian Prantl
2db17656f5 Debug Info: Wire up the CU's main file to point to the the first input file passed on the command line.
Swift SVN r5805
2013-06-25 22:07:33 +00:00
Adrian Prantl
0f7533dc7e Debug Info! Add basic support for line tables, compilation units, files,
and lexical scopes, which can be enabled through the new -g option.
When -g is enabled, line tables and scopes compile all the way
down to DWARF.

Changes to SIL:
- In addition to a SILLocation, every instruction now also has a pointer
  to a SILDebugScope (its containing lexical scope).
- Added LexicalScope, which is to be used for all Scopes we want to show
  up in the debug info.

Swift SVN r5772
2013-06-23 00:09:17 +00:00
Doug Gregor
07be3f3e7f Use the Objective-C runtime to unique selectors in JIT'd code.
When generating IR for the JIT, use sel_registerName() to unique the
selector references we generate. Static code doesn't need this
pessimization. Fixes <rdar://problem/12764732>.


Swift SVN r3403
2012-12-07 17:13:27 +00:00
Eli Friedman
760b49f4c6 Remove unused bit from IRGen options.
Swift SVN r1750
2012-05-05 03:19:11 +00:00
Eli Friedman
dd17ba6324 A few minor bugfixes for REPL.
Swift SVN r1477
2012-04-18 21:49:27 +00:00
Eli Friedman
d295d02c42 Initial interpreter implementation. The included pieces are enough to get the included simple.swift running in swift -i mode. <rdar://problem/10962290>, part 1.
Swift SVN r1319
2012-04-04 01:34:42 +00:00
John McCall
6cff7d48b6 Factor performIRGeneration into Subsystems.h.
Swift SVN r574
2011-08-20 01:10:23 +00:00
John McCall
15922d77b4 Go ahead and support outputting to .ll, .bc, .s, and .o.
Swift SVN r546
2011-08-13 22:01:51 +00:00
John McCall
42449b02bb Massively slow down link times by uselessly emitting empty modules.
Swift SVN r538
2011-08-13 07:40:45 +00:00
John McCall
bca041368d Structure for IR generation.
Swift SVN r537
2011-08-13 05:37:06 +00:00