summaryrefslogtreecommitdiffstats
path: root/clang/test/Modules/codegen.test
Commit message (Collapse)AuthorAgeFilesLines
* Spurious commit just to help Richard, because git is weird.David Blaikie2018-06-291-0/+1
| | | | llvm-svn: 336020
* Modular Codegen: Don't home always_inline functionsDavid Blaikie2017-11-021-1/+3
| | | | | | | | Since they'll likely (not always - if the address is taken, etc) be inlined away, even at -O0, separately provided weak definitions are likely to be unused so skip all of that. llvm-svn: 317279
* Modular Codegen: Include testing for inline asm as well as some commentary ↵David Blaikie2017-04-121-0/+14
| | | | | | on the implementaiton choice. llvm-svn: 300106
* Modular Codegen: Separate flags for function and debug info supportDavid Blaikie2017-04-121-1/+1
| | | | | | | | | | This allows using and testing these two features separately. (noteably, debug info is, so far as I know, always a win (basically). But function modular codegen is currently a loss for highly optimized code - where most of the linkonce_odr definitions are optimized away, so providing weak_odr definitions is only overhead) llvm-svn: 300104
* Modular Codegen: Support homing debug info for types in modular objectsDavid Blaikie2017-04-111-2/+10
| | | | | | | | | Matching the function-homing support for modular codegen. Any type implicitly (implicit template specializations) or explicitly defined in a module is attached to that module's object file and omitted elsewhere (only a declaration used if necessary for references). llvm-svn: 299987
* Modular Codegen: Add/use a bit in serialized function definitions to track ↵David Blaikie2017-04-111-4/+21
| | | | | | | | | | | | | | | | | | | | | whether they are the subject of modular codegen Some decls are created not where they are written, but in other module files/users (implicit special members and function template implicit specializations). To correctly identify them, use a bit next to the definition to track the modular codegen property. Discussed whether the module file bit could be omitted in favor of reconstituting from the modular codegen decls list - best guess today is that the efficiency improvement of not having to deserialize the whole list whenever any function is queried by a module user is worth it for the small size increase of this redundant (list + bit-on-def) representation. Reviewers: rsmith Differential Revision: https://reviews.llvm.org/D29901 llvm-svn: 299982
* Initialize builtins during modular codegenDavid Blaikie2017-02-081-59/+4
| | | | llvm-svn: 294512
* Tidy up codegen modules test & make it x86 specific since it relies on ↵David Blaikie2017-01-301-8/+9
| | | | | | Itanium name manglings llvm-svn: 293457
* Prototype of modules codegenDavid Blaikie2017-01-301-0/+64
First pass at generating weak definitions of inline functions from module files (& skipping (-O0) or emitting available_externally (optimizations) definitions where those modules are used). External functions defined in modules are emitted into the modular object file as well (this may turn an existing ODR violation (if that module were imported into multiple translations) into valid/linkable code). Internal symbols (static functions, for example) are not correctly supported yet. The symbol will be produced, internal, in the modular object - unreferenceable from the users. Reviewers: rsmith Differential Revision: https://reviews.llvm.org/D28845 llvm-svn: 293456
OpenPOWER on IntegriCloud