summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.h
Commit message (Collapse)AuthorAgeFilesLines
...
* Attributes on block functions were not being set.Daniel Dunbar2009-04-171-2/+6
| | | | | | | - <rdar://problem/6800351> clang not producing correct large struct return code for Blocks llvm-svn: 69337
* Add GetAddrOfCXXConstructor and use it.Anders Carlsson2009-04-161-0/+5
| | | | llvm-svn: 69328
* Defer generation of tentative definitions.Daniel Dunbar2009-04-151-0/+9
| | | | | | | | | | | | | | - PR3980. - <rdar://problem/6762287> [irgen] crash when generating tentative definition of incomplete structure - This also avoids creating common definitions for things which are later overwritten. - XFAIL'ed external-defs.c, it isn't completing types properly yet. llvm-svn: 69231
* Start attempting to generate code for C++ ctors.Anders Carlsson2009-04-151-1/+19
| | | | llvm-svn: 69168
* remove dead enumChris Lattner2009-04-141-1/+0
| | | | llvm-svn: 69070
* Fix PR3988: extern inline functions get strong symbol definitions inChris Lattner2009-04-141-2/+1
| | | | | | | | C99 mode. This is a regression from an earlier patch of mine. This also simplifies the linkage enums a bit. llvm-svn: 69069
* implement codegen support for __attribute((__gnuc_inline__)),Chris Lattner2009-04-141-1/+3
| | | | | | | | pulling some attribute munging stuff into GetLinkageForFunction. This should fix PR3986 llvm-svn: 69045
* Refactor how attributes are set on values.Daniel Dunbar2009-04-141-14/+13
| | | | | | | | | | | | | | | | | | | | | | | | - Pull out SetCommonAttributes, which handles the things common to aliases, methods, functions, and variables. - Pull out SetLLVMFunctionAttributesForDefinition, which handles the LLVM attributes which we only want to apply to a definition (like noinline and alwaysinline). - Kill SetGVDeclarationAttributes (inlined into SetFunctionAttributes and specialized). - Kill SetFunctionAttributesForDefinition (inlined into sole caller). - Inline SetGVDefinitionAttributes into SetMethodAttributes and specialize. - Rename SetGVDefinitionAttributes to SetFunctionDefinitionAttributes. This is supposed to be a no functionality change commit, but I may have made a mistake. llvm-svn: 69036
* Split SetGlobalValueAttributes into definition/declaration halves.Daniel Dunbar2009-04-141-5/+8
| | | | | | - No functionality change. llvm-svn: 69035
* Rename (one) SetFunctionAttributes to SetLLVMFunctionAttributes toDaniel Dunbar2009-04-141-3/+8
| | | | | | | disambiguate it. - No functionality change. llvm-svn: 69034
* add a new enum type for linkage, no functionality change.Chris Lattner2009-04-141-4/+9
| | | | llvm-svn: 69028
* Clean up handling of visibility.Daniel Dunbar2009-04-141-0/+8
| | | | llvm-svn: 69027
* Minor work related to removing the assumption that value initialization Eli Friedman2009-04-131-0/+5
| | | | | | implies an all-zero bit pattern. llvm-svn: 68994
* Add a destination type argument to EmitConstantExpr. This will be used for ↵Anders Carlsson2009-04-081-1/+2
| | | | | | when the destination has a reference type. (No functionality change yet) llvm-svn: 68593
* Emit code for linkage specifications.Anders Carlsson2009-04-021-0/+1
| | | | llvm-svn: 68300
* More "prep" work for handling UTF16 CFString.Steve Naroff2009-04-011-1/+1
| | | | | | Patch by Jean-Daniel Dupas. Thanks! llvm-svn: 68203
* move trivial forwarding function inline.Chris Lattner2009-04-011-1/+4
| | | | llvm-svn: 68176
* Implement code generation of namespaces and add mangling tests.Anders Carlsson2009-04-011-1/+2
| | | | llvm-svn: 68170
* Change UsedArray to be a vector of WeakVH to fix a dangling pointer problem ↵Chris Lattner2009-03-311-1/+2
| | | | | | | | that occurs when attribute(used) and asm renaming are used together. llvm-svn: 68155
* Do not emit debug information for variables while generating optimized code. ↵Devang Patel2009-03-271-0/+1
| | | | | | The llvm optimizer and code generator are not yet ready to support optimized code debugging. llvm-svn: 67876
* most of this is plumbing to get CompileOptions down into Chris Lattner2009-03-261-8/+7
| | | | | | | CodeGenModule. Once there, add a new NoCommon option to it and implement -fno-common. llvm-svn: 67735
* switch getBuiltinLibFunction to use the new GetOrCreateLLVMFunction Chris Lattner2009-03-221-5/+0
| | | | | | | | functionality, fixing a crash on the attached testcase. Eliminate the BuiltinFunctions cache, as it can contain dangling pointers. This fixes a bunch of valgrind errors on test/CodeGen/builtins.c llvm-svn: 67484
* emit aliases as the definitions fly by, don't bother deferring untilChris Lattner2009-03-221-6/+1
| | | | | | the end of the module. llvm-svn: 67482
* pull "runtime globals" into the same framework as other functions/global ↵Chris Lattner2009-03-221-16/+15
| | | | | | | | variables. No intended functionality change. llvm-svn: 67478
* now that all the decl reference and creation stuff is going through twoChris Lattner2009-03-211-7/+15
| | | | | | | very simple places, reimplement the deferred decl emission logic to not be O(N^2), fixing PR3810. llvm-svn: 67447
* fix a crash that could occur when a variable declaration became aChris Lattner2009-03-211-1/+1
| | | | | | function definition. llvm-svn: 67446
* simplify and cleanup global variable creation stuff to all go through oneChris Lattner2009-03-211-2/+5
| | | | | | code path. llvm-svn: 67445
* simplify management of llvm::Function creation to all go throughChris Lattner2009-03-211-12/+5
| | | | | | GetAddrOfFunction. This is simpler and more efficient. llvm-svn: 67444
* code cleanups, rename EmitForwardFunctionDefinition -> Chris Lattner2009-03-211-4/+4
| | | | | | | CreateFunctionPrototypeIR, though my next patch will eliminate it entirely. llvm-svn: 67443
* simplify some more code.Chris Lattner2009-03-211-1/+1
| | | | llvm-svn: 67439
* simplify and comment some code better. Make BindRuntimeGlobalsChris Lattner2009-03-211-1/+4
| | | | | | more optimistic that it will work (optimizing for the common case). llvm-svn: 67438
* IRgen support for alias of global variable.Daniel Dunbar2009-03-191-1/+1
| | | | | | - PR3818. llvm-svn: 67297
* Backout r66408, we don't want handling of globals to rely on theDaniel Dunbar2009-03-091-16/+13
| | | | | | | module symbol table. The root problem inspiring this was fixed in r66316 (and again in r66506). llvm-svn: 66512
* Be sure to never create two functions with the same name, instead arrange toMike Stump2009-03-091-13/+16
| | | | | | reuse the prior one. llvm-svn: 66408
* Some struct/class mismatch fixes, to silence MSVC warnings.Sebastian Redl2009-03-071-1/+1
| | | | llvm-svn: 66335
* (LLVM svn up) Generalize RuntimeFunctions to RuntimeGlobals and addDaniel Dunbar2009-03-061-5/+10
| | | | | | | | | | | | | | CodeGenModule::CreateRuntimeVariable. - No real functionality change; although we now assert on silly things like: -- int objc_exception_throw; void f0() { @throw(@"A"); } -- instead of accepting it. llvm-svn: 66292
* Move more of the blocks code up and out.Mike Stump2009-03-041-2/+0
| | | | llvm-svn: 66046
* Move more of blocks codegen out of CodeGenModule and into theMike Stump2009-03-041-24/+1
| | | | | | | | | BlockModule. No functionality change. This should help people that don't want to know anything about blocks not be confused by the overloaded use of the term block or nor want to see all the blocks goop. llvm-svn: 66042
* Start the migration of more of the blocks code out of sight for mostMike Stump2009-03-041-10/+2
| | | | | | people. De-duplicates BLOCK_NEEDS_FREE and friends. llvm-svn: 66034
* Improved ABI compliance for __block variables. No testcases yet as weMike Stump2009-03-041-0/+9
| | | | | | | still give an unsupported error for them due to the fact this is a work in progress. llvm-svn: 66007
* Fix PR3612. We ensure that we add builtins to the GlobalDeclMap andMike Stump2009-02-271-2/+2
| | | | | | | | | we ensure that things added to the module can be found even when they are not in GlobalDeclMap. The later is for increased flexibility, should someone want to do something tricky like extern "Ada" in the same module. llvm-svn: 65657
* first wave of fixes for @encode sema support. This is part of PR3648.Chris Lattner2009-02-241-0/+5
| | | | | | | The big difference here is that (like string literal) @encode has array type, not pointer type. llvm-svn: 65391
* Prevent accidental copying of CodeGenFunction and CodeGenModule.Anders Carlsson2009-02-241-0/+3
| | | | llvm-svn: 65372
* Don't emit K&R unprototyped function definitions as varargs.Daniel Dunbar2009-02-191-1/+10
| | | | | | - <rdar://problem/6584606> clang/x86-64 - too many reg saves llvm-svn: 65032
* More codegen for blocks. The type of block literals should be better.Mike Stump2009-02-191-0/+2
| | | | | | The size calculation is improved. llvm-svn: 64994
* Address Chris's comments regarding C++ name mangling.Douglas Gregor2009-02-181-9/+19
| | | | llvm-svn: 64984
* Change EmitConstantExpr to allow failure.Daniel Dunbar2009-02-171-0/+5
| | | | | | | | | | | | | | IRgen no longer relies on isConstantInitializer, instead we just try to emit the constant. If that fails then in C we emit an error unsupported (this occurs when Sema accepted something that it doesn't know how to fold, and IRgen doesn't know how to emit) and in C++ we emit a guarded initializer. This ends up handling a few more cases, because IRgen was actually able to emit some of the constants Sema accepts but can't Evaluate(). For example, PR3398. llvm-svn: 64780
* Use getNameAsCString instead of getNameAsString and reflow the type.Mike Stump2009-02-141-1/+1
| | | | | | Thanks Anders. llvm-svn: 64571
* Generate the helper function for blocks. Now basic codegen isMike Stump2009-02-141-1/+1
| | | | | | starting to work for blocks. llvm-svn: 64570
* IRgen support for attribute used.Daniel Dunbar2009-02-131-0/+7
| | | | | | - PR3566 llvm-svn: 64492
OpenPOWER on IntegriCloud