summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* When generating debug info for an ObjCInterfaceDecl, try to dig out the ↵Douglas Gregor2011-12-151-1/+3
| | | | | | definition. llvm-svn: 146705
* Keep track of all declarations of an Objective-C class (both forwardDouglas Gregor2011-12-151-1/+1
| | | | | | | | | | declarations and definitions) as ObjCInterfaceDecls within the same redeclaration chain. This new representation matches what we do for C/C++ variables/functions/classes/templates/etc., and makes it possible to answer the query "where are all of the declarations of this class?" llvm-svn: 146679
* Replace all comparisons between ObjCInterfaceDecl pointers with callsDouglas Gregor2011-12-151-1/+1
| | | | | | | | to declaresSameEntity(), as a baby step toward tracking forward declarations of Objective-C classes precisely. Part of <rdar://problem/10583531>. llvm-svn: 146618
* Per discussion on the list, remove BitcodeVerify pass to reimplement as a ↵Chad Rosier2011-12-142-7/+0
| | | | | | free function. llvm-svn: 146530
* Make CGRecordLayoutBuilder correctly switch over to a packed class when a ↵Eli Friedman2011-12-121-36/+50
| | | | | | class has a base whose alignment will break the class layout. <rdar://problem/10551376>. llvm-svn: 146443
* Add frontend flags to enable bitcode verifier pass.Chad Rosier2011-12-122-0/+7
| | | | llvm-svn: 146441
* Hexagon backend supportTony Linthicum2011-12-123-0/+2134
| | | | llvm-svn: 146413
* Update Clang to emit the new form of llvm.cttz and llvm.ctlz intrinsics,Chandler Carruth2011-12-121-3/+4
| | | | | | | | | setting the is_zero_undef flag appropriately to true as that matches the semantics of these GCC builtins. This is the Clang side of r146357 in LLVM. llvm-svn: 146358
* Reuse forAddr to create ignored AggValueSlots.Benjamin Kramer2011-12-111-5/+2
| | | | | | Silences valgrind warnings about uninitalized alignment values. llvm-svn: 146342
* Make array new on a pointer to data member type work correctly. PR11523.Eli Friedman2011-12-091-2/+3
| | | | llvm-svn: 146291
* Don't get the exception obj from the slot more than once.Bill Wendling2011-12-081-4/+3
| | | | llvm-svn: 146202
* Fix an edge case in IRGen for conditionals. PR11509.Eli Friedman2011-12-081-0/+5
| | | | llvm-svn: 146189
* Make sure we correctly zero-initialize unions containing a pointer to data ↵Eli Friedman2011-12-072-7/+17
| | | | | | member as the first field. PR11487. llvm-svn: 146009
* Stack realignment is a tristate. Add -mno-stackrealign to turn off all stackNick Lewycky2011-12-061-5/+2
| | | | | | realignment, even with locals with alignment exceeding the ABI guarantee. llvm-svn: 145909
* Minor comment update.Eli Friedman2011-12-061-1/+3
| | | | llvm-svn: 145905
* Add -mstack-alignment=X and fix -mstackrealign handling now that theJoerg Sonnenberger2011-12-051-0/+5
| | | | | | backend options are gone. llvm-svn: 145868
* Make EmitAggregateCopy take an alignment argument. Make EmitFinalDestCopy ↵Eli Friedman2011-12-052-7/+15
| | | | | | | | | | | pass in the correct alignment when known. The test includes a FIXME for a related case involving calls; it's a bit more complicated to fix because the RValue class doesn't keep track of alignment. <rdar://problem/10463337> llvm-svn: 145862
* Switch LValue so that it exposes alignment in CharUnits. (No functional ↵Eli Friedman2011-12-0310-50/+45
| | | | | | change.) llvm-svn: 145753
* Add a utility to get a RValue for a given LValue for an aggregate; switch a ↵Eli Friedman2011-12-033-7/+9
| | | | | | few places over to it. llvm-svn: 145747
* Switch the Alignment argument on AggValueSlot over to CharUnits, per John's ↵Eli Friedman2011-12-037-20/+17
| | | | | | review comment. llvm-svn: 145741
* Track alignment in AggValueSlot. No functional change in this patch, but ↵Eli Friedman2011-12-037-30/+59
| | | | | | I'll be introducing uses of the specified alignment soon. llvm-svn: 145736
* Introduce a module import declaration, so that we properly represent, e.g.,Douglas Gregor2011-12-022-0/+2
| | | | | | | | __import_module__ std.vector; in the AST. llvm-svn: 145725
* Update for change to LLVM TargetMachine API in r145714.Nick Lewycky2011-12-021-34/+37
| | | | llvm-svn: 145715
* Fix wrong-code bug when a const automatic variable of struct type has both aRichard Smith2011-12-021-7/+10
| | | | | | | | | | | | mutable member and a constant initializer. We'd previously promoted such variables to global constants, resulting in nasal demons if the mutable member was modified. This is only a temporary fix. The subtle interplay between isConstantInitializer and CGExprConstant is very bug-prone; there are some other issues in this area which I will be addressing in subsequent, more major reworking of this code. llvm-svn: 145654
* When we're passing a vector with an illegal type through memory on x86-64, ↵Eli Friedman2011-12-021-7/+27
| | | | | | use byval so we're sure the backend does the right thing. Fixes va_arg with illegal vectors and an obscure ABI mismatch with __m64 vectors. llvm-svn: 145652
* Fix -forwardingTargetForSelector: (GNUstep runtime) which was broken for theDavid Chisnall2011-12-011-0/+2
| | | | | | old dispatch mechanism when I introduced the new one. llvm-svn: 145609
* Don't use a varargs convention for calls unprototyped functions where one of ↵Eli Friedman2011-12-013-7/+27
| | | | | | the arguments is an AVX vector. llvm-svn: 145574
* Promote ModuleMap::Module to a namespace-scope class in the BasicDouglas Gregor2011-11-301-1/+1
| | | | | | | | | library, since modules cut across all of the libraries. Rename serialization::Module to serialization::ModuleFile to side-step the annoying naming conflict. Prune a bunch of ModuleMap.h includes that are no longer needed (most files only needed the Module type). llvm-svn: 145538
* make asan work at -O0, clang part. Patch by glider@google.comKostya Serebryany2011-11-301-0/+2
| | | | llvm-svn: 145531
* Add bigger method type encodings to protocol objects. <rdar://problem/10492418>Bob Wilson2011-11-301-13/+70
| | | | | | | | | | | | | | | | | | The new metadata are method @encode strings with additional data. 1. Each Objective-C object is marked with its class name and protocol names. The same is done for property @encode already. 2. Each block object is marked with its function prototype's @encoding. For example, a method parameter that is a block object that itself returns void and takes an int would look like: @?<v@?i> These new method @encode strings are stored in a single array pointed to by structs protocol_t and objc_protocol_ext. Patch provided by Greg Parker! llvm-svn: 145469
* Make sure that forward declarations are marked as such in the debug infoEric Christopher2011-11-291-1/+2
| | | | | | | | for the structure type. rdar://10499337 llvm-svn: 145461
* The cheap version of getName() is sufficient here.Benjamin Kramer2011-11-291-1/+1
| | | | llvm-svn: 145399
* The _setjmp builtin library function should have the "returns twice"Bill Wendling2011-11-291-1/+2
| | | | | | | | attribute. This prevents the stack slot allocator from coming along and using a stack which it thinks is available but isn't. <rdar://problem/10492556> llvm-svn: 145332
* Correct the code generation for function arguments of vec3 types on x86_64 ↵Tanya Lattner2011-11-281-1/+1
| | | | | | | | when they are greater than 128 bits. This was incorrectly coercing things like long3 into a double2. Add test case. llvm-svn: 145312
* Another silly workaround for MSVC.Peter Collingbourne2011-11-281-1/+3
| | | | llvm-svn: 145227
* Sigh, another workaround for MSVC.Peter Collingbourne2011-11-281-1/+1
| | | | llvm-svn: 145211
* Work around a gcc4.2 bug.Peter Collingbourne2011-11-281-1/+1
| | | | llvm-svn: 145209
* When destroying temporaries, instead of a custom cleanup use thePeter Collingbourne2011-11-276-41/+12
| | | | | | | | | | | generic pushDestroy function. This would reduce the number of useful declarations in CGTemporaries.cpp to one. Since CodeGenFunction::EmitCXXTemporary does not deserve its own file, move it to CGCleanup.cpp and delete CGTemporaries.cpp. llvm-svn: 145202
* Add inreg attributes to reference arguments.Rafael Espindola2011-11-271-1/+2
| | | | llvm-svn: 145189
* Reference initialization with initializer lists.Sebastian Redl2011-11-271-1/+12
| | | | | | This supports single-element initializer lists for references according to DR1288, as well as creating temporaries and binding to them for other initializer lists. llvm-svn: 145186
* Use static storage duration for file-scope compound literals, even when theyRichard Smith2011-11-223-0/+15
| | | | | | appear in non-constant initializers in C++. llvm-svn: 145087
* implement __has_feature(address_sanitizer); also use ↵Kostya Serebryany2011-11-221-1/+1
| | | | | | LangOpts.AddressSanitizer instead of CodeGenOpts.AddressSanitizer llvm-svn: 145054
* CodeGen: Simplify code.Benjamin Kramer2011-11-211-6/+3
| | | | llvm-svn: 145040
* CodeGen: allow __asm renaming on static local variables.Benjamin Kramer2011-11-201-1/+9
| | | | | | Fixes PR4777. llvm-svn: 145015
* Finish r144971, which was an incomplete commit.Eli Friedman2011-11-181-1/+1
| | | | llvm-svn: 144972
* Fix the meaning of an "empty" record for the case of a zero-length array. ↵Eli Friedman2011-11-181-3/+7
| | | | | | Use isEmptyRecord for arguments on x86-32; there are structs of size 0 which don't count as empty. llvm-svn: 144971
* Make va_arg on x86-64 compute alignment the same way as argument passing.Eli Friedman2011-11-181-7/+5
| | | | | | Fixes <rdar://problem/10463281>. llvm-svn: 144966
* A bunch of fixes to argument passing and va_arg on Darwin x86-32 for ↵Eli Friedman2011-11-181-3/+21
| | | | | | structures containing an SSE vector. llvm-svn: 144963
* Don't try to expand struct arguments containing holes on x86-32. From gcc ↵Eli Friedman2011-11-181-0/+8
| | | | | | struct layout tests. llvm-svn: 144961
* Simplify code for returning a struct for Darwin x86-32 ABI. Use a better ↵Eli Friedman2011-11-181-41/+16
| | | | | | type for a function returning a struct containing only a pointer. Handle the edge case of a struct containing only a float or double plus some dead padding instead of asserting. llvm-svn: 144960
OpenPOWER on IntegriCloud