summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/TargetInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* PTX: Set proper calling conventions for PTX in OpenCL mode.Justin Holewinski2011-10-051-5/+40
| | | | llvm-svn: 141193
* Removing a bunch of dead returns/breaks after llvm_unreachables.David Blaikie2011-09-231-1/+0
| | | | llvm-svn: 140407
* Switch assert(0/false) llvm_unreachable.David Blaikie2011-09-231-4/+4
| | | | llvm-svn: 140367
* ANSI C requires that a call to an unprototyped function type succeedJohn McCall2011-09-211-0/+17
| | | | | | | | | | | | | | | | | if the definition has a non-variadic prototype with compatible parameters. Therefore, the default rule for such calls must be to use a non-variadic convention. Achieve this by casting the callee to the function type with which it is required to be compatible, unless the target specifically opts out and insists that unprototyped calls should use the variadic rules. The only case of that I'm aware of is the x86-64 convention, which passes arguments the same way in both cases but also sets a small amount of extra information; here we seek to maintain compatibility with GCC, which does set this when calling an unprototyped function. Addresses PR10810 and PR10713. llvm-svn: 140241
* Create a MipsTargetCodeGenInfo object for mips64/mips64el. The size of theAkira Hatanaka2011-09-201-0/+4
| | | | | | UnwindException structure is 32 for mips64. llvm-svn: 140165
* Add a parameter to MipsTargetCodeGenInfo's constructor.Akira Hatanaka2011-09-201-4/+5
| | | | llvm-svn: 140161
* Extend the ASTContext constructor to delay the initialization ofDouglas Gregor2011-09-021-7/+7
| | | | | | | | builtin types (When requested). This is another step toward making ASTUnit build the ASTContext as needed when loading an AST file, rather than doing so after the fact. No actual functionality change (yet). llvm-svn: 138985
* The size of struct UnwindException varies by platform with noJohn McCall2011-08-301-2/+30
| | | | | | | apparent general rule. Just special-case it as appropriate. PR10789. llvm-svn: 138792
* Alignment of a va_arg must be at least as large as the ABI's minimum alignment.Akira Hatanaka2011-08-121-0/+1
| | | | llvm-svn: 137420
* Add definition of a static member of a class.Akira Hatanaka2011-08-121-0/+2
| | | | llvm-svn: 137411
* Handle "homogeneous aggregates" as required by the ARM AAPCS-VFP ABI.Bob Wilson2011-08-031-0/+74
| | | | | | | | | | | | | A homogeneous aggregate is an aggregate data structure where after flattening any nesting there are 1 to 4 elements of the same base type that is either a float, double, or Neon vector. All Neon vectors of the same size, either 64 or 128 bits, are treated as equivalent for this purpose. When using the AAPCS-VFP ABI, check for homogeneous aggregates and pass them as arguments by expanding them into a sequence of their base types. This requires extending the existing support for expanded arguments to handle not only structs, but also constant arrays and complex types. llvm-svn: 136767
* Implements alignment for long long and double types in va_arg on ARM AAPCS.Rafael Espindola2011-08-021-1/+10
| | | | | | Patch by Jim (Ningjie) Chen. llvm-svn: 136734
* Revert "Re-enable byval for ARM in clang. rdar://problem/7662569"Bob Wilson2011-08-011-10/+6
| | | | | | | | | | | This reverts commit 67d097e1232b7d66f58989c16a45b8a11721f76e. We found a miscompile with ARM byval, which is still being investigated. In the meantime, this works around the problem by disabling ARM byval. Conflicts: lib/CodeGen/TargetInfo.cpp llvm-svn: 136662
* Implement MipsABIInfo::EmitVAArg. This fix enables clang to complete compilationAkira Hatanaka2011-08-011-1/+31
| | | | | | | | | | without bailing out when va_arg is an aggregate expression. However, alignment checking needs to be added in isSafeToEliminateVarargsCast in InstCombineCalls.cpp in order to produce correct mips code (see link below). http://lists.cs.uiuc.edu/pipermail/llvmdev/2011-July/042047.html llvm-svn: 136647
* Pass records with non-trivial destructors or constructors indirectly.Akira Hatanaka2011-08-011-0/+5
| | | | llvm-svn: 136630
* remove unneeded llvm:: namespace qualifiers on some core types now that ↵Chris Lattner2011-07-231-8/+8
| | | | | | | | LLVM.h imports them into the clang namespace. llvm-svn: 135852
* de-constify llvm::Type, patch by David Blaikie!Chris Lattner2011-07-181-30/+30
| | | | llvm-svn: 135370
* Fix typoJoerg Sonnenberger2011-07-151-1/+1
| | | | llvm-svn: 135285
* Reapply r134946 with fixes. Tested on Benjamin testcase and other test-suite ↵Bruno Cardoso Lopes2011-07-131-2/+10
| | | | | | failures. llvm-svn: 135091
* Revert r134946Bruno Cardoso Lopes2011-07-121-8/+1
| | | | llvm-svn: 135004
* Fix a typo!Bruno Cardoso Lopes2011-07-121-1/+1
| | | | llvm-svn: 134952
* Do the same as r134946 for arrays. Add more testcases for avx x86_64 argBruno Cardoso Lopes2011-07-121-0/+7
| | | | | | passing. llvm-svn: 134951
* Fix one x86_64 abi issue and the test to actually look for the right thing,Bruno Cardoso Lopes2011-07-121-1/+8
| | | | | | which is: { <4 x float>, <4 x float> } should continue to go through memory. llvm-svn: 134946
* Reapply r134754, which turns out to be working correctly and alsoBruno Cardoso Lopes2011-07-111-41/+73
| | | | | | add one more testcase. llvm-svn: 134934
* De-constify Types in StructType::get() and TargetData::getIntPtrType().Jay Foad2011-07-111-11/+11
| | | | llvm-svn: 134893
* clang side to match the LLVM IR type system rewrite patch.Chris Lattner2011-07-091-38/+35
| | | | llvm-svn: 134831
* Change -mno-mmx to be more compatible with gcc. Specifically, -mno-mmx ↵Eli Friedman2011-07-081-8/+16
| | | | | | | | | | | | should not imply -mno-sse. Note that because we don't usually touch the MMX registers anyway, all -mno-mmx needs to do is tweak the x86-32 calling convention a little for vectors that look like MMX vectors, and prevent the definition of __MMX__. clang doesn't actually stop the user from using MMX inline asm operands or MMX builtins in -mno-mmx mode; as a QOI issue, it would be nice to diagnose, but I doubt it really matters much. <rdar://problem/9694837> llvm-svn: 134770
* Revert x86_64 ABI changes until I have time to check the items raised by Eli.Bruno Cardoso Lopes2011-07-081-74/+42
| | | | llvm-svn: 134765
* Add support for AVX 256-bit in the x86_64 ABI (as in the 0.99.5 draft)Bruno Cardoso Lopes2011-07-081-42/+74
| | | | llvm-svn: 134754
* Don't use x86_mmx where it isn't necessary.Eli Friedman2011-07-021-6/+1
| | | | | | The start of some work on getting -mno-mmx working the way we want it to. llvm-svn: 134300
* We don't pass classes with a copy-constructor or destructor byval, so the ↵Eli Friedman2011-06-291-0/+2
| | | | | | | | | | address takes up an integer register (if one is available). Make sure the x86-64 ABI implementation takes that into account properly. The fixed implementation is compatible with the implementation both gcc and llvm-gcc use. rdar://9686430 . (This is the issue that was reported in the thread "[LLVMdev] Segfault calling LLVM libs from a clang-compiled executable".) llvm-svn: 134059
* De-Unicode-ify in comments.NAKAMURA Takumi2011-06-211-1/+1
| | | | llvm-svn: 133501
* update for api change.Chris Lattner2011-06-181-7/+4
| | | | llvm-svn: 133365
* Automatic Reference Counting.John McCall2011-06-151-2/+4
| | | | | | | | | | Language-design credit goes to a lot of people, but I particularly want to single out Blaine Garst and Patrick Beard for their contributions. Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself, in no particular order. llvm-svn: 133103
* Add stuff for o32 ABI conformance.Akira Hatanaka2011-06-021-1/+60
| | | | llvm-svn: 132443
* make the x86-32 backend specify a byval alignment, even when theChris Lattner2011-05-221-1/+1
| | | | | | | code generator will do it. With this patch, clang compiles the example in PR9794 to not have an alloca temporary. llvm-svn: 131881
* Fix x86-64 byval passing to specify the alignment even when the codeChris Lattner2011-05-221-7/+4
| | | | | | | generator will give it something sufficient. This is important because the mid-level optimizer doesn't know what alignment is required otherwise. llvm-svn: 131879
* Add ARMTargetCodeGenInfo::initDwarfEHRegSizeTable() defining 16 32bit regs.Roman Divacky2011-05-181-0/+16
| | | | llvm-svn: 131558
* Revert r131447, see if it fixes the buildbot.Argyrios Kyrtzidis2011-05-171-2/+5
| | | | llvm-svn: 131450
* Inside isEmptyRecord function, for CXXRecordDecl just check the isEmpty bit.Argyrios Kyrtzidis2011-05-171-5/+2
| | | | llvm-svn: 131447
* Raise ARM byval minimum size from 32 to 64, addressing a performanceStuart Hastings2011-04-281-1/+1
| | | | | | regression in mason. rdar://problem/7662569 llvm-svn: 130444
* Replace unitary array with scalar. rdar://problem/7662569Stuart Hastings2011-04-281-3/+3
| | | | llvm-svn: 130423
* Replace SmallVector with an array, as suggested by Frits van Bommel. ↵Stuart Hastings2011-04-281-13/+6
| | | | | | rdar://problem/7662569 llvm-svn: 130417
* Re-enable byval for ARM in clang. rdar://problem/7662569Stuart Hastings2011-04-271-11/+22
| | | | llvm-svn: 130312
* Temporarily revert r130176, it appears to have broken a few tests.Eric Christopher2011-04-261-22/+11
| | | | llvm-svn: 130179
* Turn on byval parameters in Clang for ARM APCS. rdar://problem/7662569Stuart Hastings2011-04-251-11/+22
| | | | llvm-svn: 130176
* PTX: Add default PTX calling conventionsJustin Holewinski2011-04-221-0/+72
| | | | llvm-svn: 129987
* The 0.98 revision of the x86-64 ABI clarified a lot of things, someJohn McCall2011-04-211-6/+24
| | | | | | | of which break strict compatibility with previous compilers. Implement one of them and then immediately opt out on Darwin. llvm-svn: 129899
* ADT/Triple: Switch to using .isOSDarwin() predicate.Daniel Dunbar2011-04-191-2/+3
| | | | llvm-svn: 129823
* fix a bunch of comment typos found by codespell. Patch byChris Lattner2011-04-151-5/+5
| | | | | | Luis Felipe Strano Moraes! llvm-svn: 129559
OpenPOWER on IntegriCloud