summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Emit proper selector name in debug info.Devang Patel2011-04-162-2/+17
| | | | llvm-svn: 129626
* Emit debug info for Objective-C properties.Devang Patel2011-04-161-3/+16
| | | | llvm-svn: 129625
* Add 3DNow! Intrinsics.Michael J. Spencer2011-04-151-0/+132
| | | | llvm-svn: 129570
* Support for C++11 (non-template) alias declarations.Richard Smith2011-04-153-4/+5
| | | | llvm-svn: 129567
* fix a bunch of comment typos found by codespell. Patch byChris Lattner2011-04-159-13/+13
| | | | | | Luis Felipe Strano Moraes! llvm-svn: 129559
* C1X: implement generic selectionsPeter Collingbourne2011-04-156-13/+27
| | | | | | | As an extension, generic selection support has been added for all supported languages. The syntax is the same as for C1X. llvm-svn: 129554
* Add support for C++0x's range-based for loops, as specified by the C++11 ↵Richard Smith2011-04-142-0/+79
| | | | | | draft standard (N3291). llvm-svn: 129541
* Implement ARM pcs attribute. Basically it's another way of calling ↵Anton Korobeynikov2011-04-142-6/+17
| | | | | | | | | | convention selection (AAPCS or AAPCS+VFP), similar to fastcall / stdcall / whatevercall seen on x86. In particular, all library functions should always be AAPCS regardless of floating point ABI used. llvm-svn: 129534
* Replace a couple of divide-by-8s with divide-by-charwidths. No change inKen Dyck2011-04-141-2/+4
| | | | | | functionality intended. llvm-svn: 129496
* Replace a couple of divisions-by-'8' with divisions-by-charwidth. No changeKen Dyck2011-04-141-2/+2
| | | | | | in functionality intended. llvm-svn: 129491
* Removing the unaligned load tests from builtins-x86.c since they're ↵Bill Wendling2011-04-131-2/+0
| | | | | | generated by a regular 'load' now. llvm-svn: 129464
* It looks like the FreeBSD buildbot needs this for the builtins-x86.c test.Bill Wendling2011-04-131-0/+2
| | | | llvm-svn: 129433
* Just use a native "load" instead of translating the builtin later. Clang canBill Wendling2011-04-131-2/+0
| | | | | | | | | take it! I wasn't able to get __builtin_ia32_loaddqu to transform into an unaligned load...I'll have to look into it further. llvm-svn: 129427
* Use EmitCallOrInvoke in EmitBadTypeidCall and EmitBadCastCall.Anders Carlsson2011-04-131-16/+6
| | | | llvm-svn: 129424
* Convert the unaligned load builtins to the first-class versions.Bill Wendling2011-04-131-0/+13
| | | | llvm-svn: 129420
* IRgen/Obj-C: Emit CFStrings and NSStrings with the alignment of the char type,Daniel Dunbar2011-04-121-0/+6
| | | | | | | | | | there is no reason to align them higher. - This roughly matches llvm-gcc's r126913. - It is an open question whether or not we should do this for cstring's in general (code size vs optimization potential), for now we just match llvm-gcc until someone wants to run some experiments. llvm-svn: 129410
* We can't emit an aggregate cast as its sub-expression in general justJohn McCall2011-04-121-5/+2
| | | | | | | | | because the result is ignored. The particular example here is with property l-values, but there could be all sorts of lovely casts that this isn't safe for. Sink the check into the one case that seems to actually be capable of honoring this. llvm-svn: 129397
* Template static data members can have weak_odr linkage, not justJohn McCall2011-04-122-5/+6
| | | | | | | | weak linkage. Also, fix a problem where global weak variables with non-trivial initializers were getting guard variables, or at least were checking for them and then crashing. llvm-svn: 129342
* Ignore indirect field declarations. Fixes PR9570.John McCall2011-04-121-0/+5
| | | | llvm-svn: 129337
* After some discussion with Doug, we decided that it made a lot more senseJohn McCall2011-04-129-137/+16
| | | | | | | | | for __unknown_anytype resolution to destructively modify the AST. So that's what it does now, which significantly simplifies some of the implementation. Normal member calls work pretty cleanly now, and I added support for propagating unknown-ness through &. llvm-svn: 129331
* If there's an invoke destination, we should use invoke instead of call when ↵Anders Carlsson2011-04-111-7/+25
| | | | | | calling the __cxa_bad_typeid function. Fixes PR7400. llvm-svn: 129273
* More __unknown_anytype work.John McCall2011-04-118-23/+85
| | | | llvm-svn: 129269
* Remove CK_DynamicToNull.Anders Carlsson2011-04-114-9/+3
| | | | llvm-svn: 129265
* When we know that a dynamic_cast always returns null, we can makeAnders Carlsson2011-04-111-10/+32
| | | | | | | CodeGenFunction::EmitDynamicCast always return null or throw a bad_cast exception. llvm-svn: 129264
* Clean up CodeGenFunction::EmitDynamicCast. No functionality change.Anders Carlsson2011-04-111-104/+141
| | | | llvm-svn: 129262
* Replace a couple of Builder.CreateICmpEQ with Builder.CreateIsNull. No ↵Anders Carlsson2011-04-112-9/+3
| | | | | | functionality change. llvm-svn: 129261
* As a first step towards fixing PR9641, add a CK_DynamicToNull cast kind whichAnders Carlsson2011-04-104-3/+9
| | | | | | | | | | | | | | | | | | represents a dynamic cast where we know that the result is always null. For example: struct A { virtual ~A(); }; struct B final : A { }; struct C { }; bool f(B* b) { return dynamic_cast<C*>(b); } llvm-svn: 129256
* Strip off parens and no-op casts when deciding if an expr can be ↵Anders Carlsson2011-04-101-0/+26
| | | | | | devirtualized. Fixes the second half of PR9660. llvm-svn: 129253
* Change CollectPrimaryBases to collect the bases in the right order. Fixes ↵Anders Carlsson2011-04-101-7/+9
| | | | | | one half of PR9660. llvm-svn: 129252
* Make -fdump-vtable-layouts also dump vtable indices for all virtual member ↵Anders Carlsson2011-04-101-0/+42
| | | | | | functions in the class. llvm-svn: 129250
* PR9580: Handle vectors correctly in ScalarExprEmitter::EmitRem.Eli Friedman2011-04-101-1/+1
| | | | | | | While I'm here, FileCheck-ize the ext-vector test, so we actually check what it is generating. llvm-svn: 129241
* Make sure we or together the overflow flags of the multiply and add, so theEli Friedman2011-04-091-1/+1
| | | | | | check is triggered appropriately. Reported on cfe-dev. llvm-svn: 129231
* PR8369: make __attribute((regparm(0))) work correctly. Original patch byEli Friedman2011-04-092-6/+13
| | | | | | pageexec@freemail.hu, tweaks by me. llvm-svn: 129206
* fix indentationChris Lattner2011-04-091-7/+6
| | | | llvm-svn: 129202
* add a __sync_swap builtin to fill out the rest of the __sync builtins. Chris Lattner2011-04-091-0/+8
| | | | | | Patch by Dave Zarzycki! llvm-svn: 129189
* Convert the PointerWidthInBytes variable in EmitMemberPointer() to CharUnitsKen Dyck2011-04-091-4/+4
| | | | | | to eliminate a divide-by-8. No change in functionality intended. llvm-svn: 129180
* Eliminate a divide-by-8 in BuildVMIClassTypeInfo() by using CharUnits forKen Dyck2011-04-091-4/+5
| | | | | | the base offset. No change in functionality intended. llvm-svn: 129179
* Apply explicit braces to avoid ambiguous 'else' [-Wparentheses]Nick Lewycky2011-04-091-2/+2
| | | | llvm-svn: 129176
* Do not use zero as an upper bound for unbounded array because upper bound ↵Devang Patel2011-04-081-6/+17
| | | | | | zero also indicates one element array. llvm-svn: 129157
* [Reapply r128776, modified so that it does not break debug info.]Ken Dyck2011-04-075-12/+18
| | | | | | | Change the return type of CodeGenVTables::getVirtualBaseOffsetOffset() to CharUnits. No change in functionality intended. llvm-svn: 129072
* Basic, untested implementation for an "unknown any" type requested by LLDB.John McCall2011-04-078-3/+69
| | | | | | | | | | | | The idea is that you can create a VarDecl with an unknown type, or a FunctionDecl with an unknown return type, and it will still be valid to access that object as long as you explicitly cast it at every use. I'm still going back and forth about how I want to test this effectively, but I wanted to go ahead and provide a skeletal implementation for the LLDB folks' benefit and because it also improves some diagnostic goodness for placeholder expressions. llvm-svn: 129065
* [Reapply r128773. This is not the source of the issues Devang was seeingKen Dyck2011-04-072-6/+6
| | | | | | | | | with debug info.] Use CharUnits for the offsets in the VirtualBaseClassOffsetOffsetsMapTy. No change in functionality intended. llvm-svn: 129048
* [Reapply r128771. It wasn't the source of the issues Devang saw with debugKen Dyck2011-04-071-4/+4
| | | | | | | | | info.] Use CharUnits for the offset type in the ClassNamesAndOffsets map in dumpLayout(). No change in functionality intended. llvm-svn: 129046
* Reapply r128770. It's not the cause of the issues Devang saw with debug info. Ken Dyck2011-04-071-8/+11
| | | | | | | Use CharUnits for the offsets in the VBaseOffsetOffsetsMapTy types. No change in functionality intended. llvm-svn: 129043
* Refine rules for atomic property api toFariborz Jahanian2011-04-061-2/+17
| | | | | | | pass a previously failing clang test. // rdar://8808439 llvm-svn: 129004
* If this is an intrinsic function, set the function's attributes to the ↵Peter Collingbourne2011-04-061-0/+7
| | | | | | intrinsic's attributes. llvm-svn: 129000
* Simplify.Devang Patel2011-04-051-3/+1
| | | | llvm-svn: 128957
* Fixes a regression caused by my last patch. Fariborz Jahanian2011-04-051-1/+2
| | | | | | | As a result, I had to remove a c++ version of a clang test which requires more scrutiny on my part. llvm-svn: 128950
* Emit debug info for function template parameters.Devang Patel2011-04-052-15/+47
| | | | llvm-svn: 128948
* Generate atomic api for atomic properties (x86 and x86_64Fariborz Jahanian2011-04-051-8/+59
| | | | | | | targets) when load/store results in multiple instructions. // rdar://8808439 llvm-svn: 128937
OpenPOWER on IntegriCloud