summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/TargetInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* Implement ARM pcs attribute. Basically it's another way of calling ↵Anton Korobeynikov2011-04-141-6/+12
| | | | | | | | | | 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
* Set AAPCS-VFP calling convention accordingly and hard float ABI command ↵Sandeep Patel2011-04-051-6/+10
| | | | | | handling. llvm-svn: 128866
* Remove PHINode::reserveOperandSpace(). Instead, add a parameter toJay Foad2011-03-301-2/+1
| | | | | | PHINode::Create() giving the (known or expected) number of operands. llvm-svn: 128538
* When we adjust the inline ASM type, we need to take into account an earlyBill Wendling2011-03-071-1/+1
| | | | | | | | clobber with the 'y' constraint. Otherwise, we get the wrong return type and an assert, because it created a '<1 x i64>' vector type instead of the x86_mmx type. llvm-svn: 127185
* Revert "Add CC_Win64ThisCall and set it in the necessary places."Tilmann Scheller2011-03-021-20/+0
| | | | | | This reverts commit 126863. llvm-svn: 126886
* Add CC_Win64ThisCall and set it in the necessary places.Tilmann Scheller2011-03-021-0/+20
| | | | llvm-svn: 126863
* lib/CodeGen/TargetInfo.cpp: On Win64, arg i128 should be emitted as INDIRECT.NAKAMURA Takumi2011-02-221-2/+9
| | | | | | mingw-w64's i128 tweak should be done with x86_64-mingw32. llvm-svn: 126186
* Re-instate r125819 and r125820 with no functionality changePeter Collingbourne2011-02-191-0/+22
| | | | llvm-svn: 126060
* Revert 125820 and 125819 to fix PR9266.Rafael Espindola2011-02-191-22/+0
| | | | llvm-svn: 126050
* Move TargetInfo::adjustInlineAsmType to TargetCodeGenInfoPeter Collingbourne2011-02-181-0/+22
| | | | llvm-svn: 125819
* Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 instead.NAKAMURA Takumi2011-02-171-1/+1
| | | | | | No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32. llvm-svn: 125742
* Fix whitespace.NAKAMURA Takumi2011-02-171-1/+1
| | | | llvm-svn: 125741
* Add NetBSD target support. Patch by Joerg Sonnenberger.Benjamin Kramer2011-02-021-0/+1
| | | | llvm-svn: 124736
* lib/CodeGen/TargetInfo.cpp: Fix coding style and erase an obsolete comment.NAKAMURA Takumi2011-01-191-6/+4
| | | | llvm-svn: 123790
* lib/CodeGen/TargetInfo.cpp: Add Win64 calling conversion.NAKAMURA Takumi2011-01-171-2/+49
| | | | | | | FIXME: It would be incompatible to Microsoft's in one point. On mingw64-gcc, {i128} is expanded for args and returned as {rax, rdx}. llvm-svn: 123692
* Remove special handling for opaque Neon vector types.Bob Wilson2011-01-111-9/+0
| | | | | | Clang does not wrap the vectors in structs anymore so this isn't needed. llvm-svn: 123241
* Move DefaultABIInfo::classifyReturnType where it belongs. No functional change.Bob Wilson2011-01-101-15/+15
| | | | llvm-svn: 123195
* 1. Add some ABI information for the Microblaze.Wesley Peck2010-12-191-0/+113
| | | | | | 2. Add attibutes "interrupt_handler" and "save_volatiles" for the Microblaze target. llvm-svn: 122184
* Use a twine.Benjamin Kramer2010-11-121-3/+1
| | | | llvm-svn: 118892
* Rename getBaseClassOffset to getBaseClassOffsetInBits and introduce a ↵Anders Carlsson2010-10-311-2/+2
| | | | | | getBaseClassOffset which returns the offset in CharUnits. Do the same thing for getVBaseClassOffset. llvm-svn: 117881
* Fix Whitespace.Michael J. Spencer2010-10-191-11/+11
| | | | llvm-svn: 116798
* We shouldn't keep track of MMX registers "needed" separately from the SSEBill Wendling2010-10-181-21/+11
| | | | | | registers needed. llvm-svn: 116772
* Reapply r116684 with fixes. The test cases needed to be updated.Bill Wendling2010-10-181-12/+47
| | | | llvm-svn: 116696
* Temporarily revert r116684. It was causing failures with Bill Wendling2010-10-171-47/+12
| | | | | | | Clang :: CodeGen/x86_32-arguments-darwin.c Clang :: CodeGen/x86_32-arguments-linux.c llvm-svn: 116687
* The "gcc.dg/compat/vector-1 -m32" test was broken after the MMX rewrite. TheBill Wendling2010-10-171-12/+47
| | | | | | | | function parameters weren't converted to use the correct type (x86_mmx). Add a check, similar to the one in llvm-gcc, to see if we need the x86_mmx type for that function parameter. If so, it coerces the type to be that. llvm-svn: 116684
* Per discussion with Sanjiv, remove the PIC16 target from mainline. When/ifChris Lattner2010-10-111-73/+0
| | | | | | | it comes back, it will be largely a rewrite, so keeping the old codebase in tree isn't helping anyone. llvm-svn: 116191
* 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
* 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
OpenPOWER on IntegriCloud