summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Temporarily revert 114929 114925 114924 114921. It looked like they (or at leastBill Wendling2010-09-282-31/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | one of them) was causing a series of failures: http://google1.osuosl.org:8011/builders/clang-x86_64-darwin10-selfhost/builds/4518 svn merge -c -114929 https://llvm.org/svn/llvm-project/cfe/trunk --- Reverse-merging r114929 into '.': U include/clang/Sema/Sema.h U include/clang/AST/DeclCXX.h U lib/Sema/SemaDeclCXX.cpp U lib/Sema/SemaTemplateInstantiateDecl.cpp U lib/Sema/SemaDecl.cpp U lib/Sema/SemaTemplateInstantiate.cpp U lib/AST/DeclCXX.cpp svn merge -c -114925 https://llvm.org/svn/llvm-project/cfe/trunk --- Reverse-merging r114925 into '.': G include/clang/AST/DeclCXX.h G lib/Sema/SemaDeclCXX.cpp G lib/AST/DeclCXX.cpp svn merge -c -114924 https://llvm.org/svn/llvm-project/cfe/trunk --- Reverse-merging r114924 into '.': G include/clang/AST/DeclCXX.h G lib/Sema/SemaDeclCXX.cpp G lib/Sema/SemaDecl.cpp G lib/AST/DeclCXX.cpp U lib/AST/ASTContext.cpp svn merge -c -114921 https://llvm.org/svn/llvm-project/cfe/trunk --- Reverse-merging r114921 into '.': G include/clang/AST/DeclCXX.h G lib/Sema/SemaDeclCXX.cpp G lib/Sema/SemaDecl.cpp G lib/AST/DeclCXX.cpp llvm-svn: 114933
* Kill FunctionDecl's IsCopyAssignment bit; it duplicated what couldDouglas Gregor2010-09-272-3/+3
| | | | | | | | already be determined by isCopyAssignmentOperator(), and was set too late in the process for all clients to see the appropriate value. Cleanup only; no functionality change. llvm-svn: 114916
* Revert my patch changing the MMX "shift" intrinsics that take immediates intoBill Wendling2010-09-271-8/+8
| | | | | | | "shift with non-immediate" intrinsics. It gets here because we they aren't immediates anymore. llvm-svn: 114890
* Patch implements passing arrays to functions expectingFariborz Jahanian2010-09-243-14/+22
| | | | | | vla. Implements pr7827. llvm-svn: 114737
* IRgen/ABI/ARM: Return large vectors in memory.Daniel Dunbar2010-09-231-0/+4
| | | | llvm-svn: 114619
* IRgen/ABI/ARM: Trust the backend to pass vectors correctly for the given ABI.Daniel Dunbar2010-09-231-0/+11
| | | | | | | | | | - Therefore, we can lower out the NEON wrapper structs and pass the vectors directly. This makes a huge difference in the cleanliness of the IR after optimization. - I will trust, but verify, via future ABITest testing (for APCS-GNU, at least). llvm-svn: 114618
* fix the rest of rdar://8461279 - clang miscompiles address-space qualified ↵Chris Lattner2010-09-211-8/+13
| | | | | | atomics llvm-svn: 114503
* same bug as before, this time with __sync_val_compare_and_swap.Chris Lattner2010-09-211-4/+6
| | | | llvm-svn: 114502
* fix __sync_bool_compare_and_swap to work with address-space qualified types.Chris Lattner2010-09-211-5/+6
| | | | llvm-svn: 114498
* Fixes an IRgen ICE due to cast of null pointer toFariborz Jahanian2010-09-211-2/+11
| | | | | | a vla type (fixes pr7827). llvm-svn: 114495
* IRgen for gnu extension's conditional lvalue expressionFariborz Jahanian2010-09-212-5/+18
| | | | | | | with missing LHS. radar 8453812. Executable test is checked into llvm test suite. llvm-svn: 114457
* Adjust for debug info API change.Benjamin Kramer2010-09-211-1/+1
| | | | llvm-svn: 114438
* Implements in IRgen gnu extensions missing LHS forFariborz Jahanian2010-09-202-13/+21
| | | | | | complex conditionals. Radar 8453812. llvm-svn: 114376
* Check in support for OpenCL conditional operator on vector types.Nate Begeman2010-09-201-0/+45
| | | | llvm-svn: 114371
* Fixes IRgen bug in objc++ reference binding of aFariborz Jahanian2010-09-181-1/+9
| | | | | | | getter expression. Fixes // rdar://8437240 llvm-svn: 114299
* do not rely on the implicit-dereference semantics of dyn_cast_or_nullGabor Greif2010-09-181-2/+2
| | | | llvm-svn: 114281
* Adjust a fixup's starting branch if it's being resolved becauseJohn McCall2010-09-182-8/+30
| | | | | | | it reached the outermost scope and it hasn't yet been forwarded to a cleanup. Fixed PR8175. llvm-svn: 114259
* Added '|' delimiter to separate inline asm multiple alternative constraints ↵John Thompson2010-09-181-6/+3
| | | | | | for Clang side of support. llvm-svn: 114253
* Fix a bug with binding l-values to elided temporaries, and leave a coupleJohn McCall2010-09-182-6/+12
| | | | | | helpful asserts behind. llvm-svn: 114250
* The MMX shift-with-immediate builtins require the equivalentBill Wendling2010-09-171-8/+8
| | | | | | shift-with-immediate LLVM intrinsics. llvm-svn: 114239
* Add a -ftrapv-handler= option which allows a handler to invoke instead of ↵David Chisnall2010-09-171-5/+43
| | | | | | simply aborting when a signed operation overflows. This mirrors the (GCC-incompatible) behaviour from clang 1.0 and 1.1 when -ftrapv was specified, but allows the handler to be defined for each compilation unit. llvm-svn: 114192
* Patch to add IRgen support for Gnu's conditional operatorFariborz Jahanian2010-09-172-16/+25
| | | | | | | | extension when missing LHS. This patch covers scalar conditionals only. Others are wip. (pr7726, radar 8353567). llvm-svn: 114182
* IRgen: Change CodeGenPasses to be a PassManager, so it can have CallGraphSCC orDaniel Dunbar2010-09-171-11/+5
| | | | | | Module. Patch by Mike Gist! llvm-svn: 114171
* Currently we're initializing the vtable pointers of a class only afterJohn McCall2010-09-171-0/+30
| | | | | | | | | | | | | | | the bases are completely initialized. This won't work --- base initializer expressions can rely on the vtables having been set up. Check for uses of 'this' in the initializers and force a vtable initialization if found. This might not be good enough; we might need to extend this to handle the possibility of arbitrary code finding an external reference to this (not yet completely-constructed!) object and accessing through it, in which case we'll probably find ourselves doing a lot more unnecessary stores. llvm-svn: 114153
* When emitting a new-expression inside a conditional expression,John McCall2010-09-173-18/+216
| | | | | | | | | | | | | | | | the cleanup might not be dominated by the allocation code. In this case, we have to store aside all the delete arguments in case we need them later. There's room for optimization here in cases where we end up not actually needing the cleanup in different branches (or being able to pop it after the initialization code). Also make sure we only call this operator delete along the path where we actually allocated something. Fixes rdar://problem/8439196. llvm-svn: 114145
* IRgen/ABI/x86-32: Realign indirect arguments when the ABI requires us to passDaniel Dunbar2010-09-161-15/+24
| | | | | | them with a smaller alignment than the rest of codegen expects. llvm-svn: 114115
* IRgen/ABI: Add support for realigning structures which are passed by indirectDaniel Dunbar2010-09-163-9/+37
| | | | | | reference. llvm-svn: 114114
* IRgen/ABI/x86_32/Darwin: On Darwin, only structures with SSE vector types ↵Daniel Dunbar2010-09-161-3/+32
| | | | | | | | | | | get passed with a non-default-stack-ABI-alignment (of 16). - This fixes the ABI convenient, but breaks codegen since we now have underaligned arguments. Marginal improvement overall though, and will be fixed in next commit. llvm-svn: 114113
* IRgen/x86_32/Linux: Linux seems to align all stack objects to 4 bytes, unlikeDaniel Dunbar2010-09-161-3/+23
| | | | | | | Darwin. Checked vs the handiest Linux llvm-gcc I had around, someone on Linux is welcome to investigate more. llvm-svn: 114112
* Removes unused setter.Fariborz Jahanian2010-09-161-3/+0
| | | | llvm-svn: 114085
* Opportunistically use the C++ personality function in ObjC++John McCall2010-09-164-19/+105
| | | | | | translation units that don't catch ObjC types. rdar://problem/8434851 llvm-svn: 114070
* Further beautification: this pointer can now be typed.John McCall2010-09-161-5/+5
| | | | llvm-svn: 114061
* Initialize AggValueSlot's flags along all paths, plus minor beautification.John McCall2010-09-162-9/+11
| | | | | | Prospective fix for broken commit in r114045. llvm-svn: 114060
* Patch to move RequiresGCollection bit toFariborz Jahanian2010-09-163-29/+39
| | | | | | AggValueSlot slot. llvm-svn: 114045
* While handling change of file, check if _current_ file is already seen or ↵Devang Patel2010-09-151-1/+2
| | | | | | | | not. If current file is seen then it indicates that end of previous file's lexical scope. This fixes radar 8396182. llvm-svn: 114018
* one piece of code is responsible for the lifetime of every aggregateJohn McCall2010-09-1514-170/+213
| | | | | | | | | | | | | slot. The easiest way to do that was to bundle up the information we care about for aggregate slots into a new structure which demands that its creators at least consider the question. I could probably be convinced that the ObjC 'needs GC' bit should be rolled into this structure. Implement generalized copy elision. The main obstacle here is that IR-generation must be much more careful about making sure that exactly llvm-svn: 113962
* Tweak this assert.John McCall2010-09-141-1/+1
| | | | llvm-svn: 113863
* Implement the EH cleanup to call 'operator delete' if a new-expression throwsJohn McCall2010-09-144-110/+384
| | | | | | (but not if destructors associated with the full-expression throw). llvm-svn: 113836
* Fix VLA miscompilation.Argyrios Kyrtzidis2010-09-141-0/+1
| | | | | | | llvm.stacksave/llvm.stackrestore wasn't emitted for VLAs in inner scopes. Fixes r8403108. llvm-svn: 113822
* Revert "CMake: Update to use standard CMake dependency tracking facilities ↵Michael J. Spencer2010-09-131-16/+4
| | | | | | | | | | | | | instead" This reverts commit r113631 Conflicts: CMakeLists.txt lib/CodeGen/CMakeLists.txt llvm-svn: 113817
* Eagerly evaluate type traits in Sema instead of lazily in AST. They actually ↵Sebastian Redl2010-09-131-2/+1
| | | | | | need Sema access to be correct, fixes coming up. llvm-svn: 113782
* Block description for trivial block literals haveFariborz Jahanian2010-09-131-2/+1
| | | | | | their 'isa' field scanned regardless. llvm-svn: 113749
* Augment -ftrapv to check for divide by zero, mod by zero, and INT_MIN % -1.Chris Lattner2010-09-111-4/+65
| | | | | | Patch by John Regehr! llvm-svn: 113705
* CMake: Fix mingw32 build.Michael J. Spencer2010-09-111-0/+2
| | | | llvm-svn: 113677
* Fixes an obscure bug in importd block variable layoutFariborz Jahanian2010-09-114-8/+11
| | | | | | | | information when imported variable is used more than once. Originally though to be a bug in importing block varibles. Fixes radar 8417746. llvm-svn: 113675
* CMake: Update to use standard CMake dependency tracking facilities insteadMichael J. Spencer2010-09-101-4/+14
| | | | | | of whatever we were using before... llvm-svn: 113631
* Implement CXXNoexceptExpr codegen.Sebastian Redl2010-09-101-0/+4
| | | | llvm-svn: 113629
* Define and implement CXXNoexceptExpr. Create it in Sema.Sebastian Redl2010-09-101-1/+2
| | | | llvm-svn: 113623
* IRGen fix for using property-dot syntax to pass Fariborz Jahanian2010-09-102-2/+11
| | | | | | | reference object to a c++ member function. fixes radar 8409336. llvm-svn: 113602
* Clean up CMake dependenciesDouglas Gregor2010-09-091-0/+2
| | | | llvm-svn: 113489
OpenPOWER on IntegriCloud