summaryrefslogtreecommitdiff
path: root/clang/test/CodeGen/arm-arguments.c
Commit message (Collapse)AuthorAgeFilesLines
* Apply the same fundamental fix for PR14048 as was applied for PR11905.Chandler Carruth2012-10-101-0/+13
| | | | | | | | | | | | | | | | | | The issue arises when coercing to/from types of different sizes. We need to be certain that the allocation on either end has sufficient room for the coerced type. When it doesn't, we need to make room, copy across, and then proceed. PR11905 handled the case of storing function arguments back into allocas in the function prolog, this patch handles the case of setting up the function arguments in a call expression. This is actually significantly simpler than the fix for PR11905. It ends up being a trivial change to create a temporary alloca when the source is too small and memcpy across. This should preserve the compile-time fast-isel benefits of doing gep+load sequences and avoiding FCAs. Reviewed by Benjamin and Evgeniy (who fixed PR11905). llvm-svn: 165615
* ARM: enable struct byval for AAPCS.Manman Ren2012-08-101-0/+6
| | | | | | | rdar://9877866 PR://13350 llvm-svn: 161694
* Fix AAPCS ABI. I can't actually test this, but it restores the behavior ↵Eli Friedman2012-08-091-0/+6
| | | | | | from before r159168. PR13562. llvm-svn: 161554
* Tests: check for target availability for target-specific tests.Jim Grosbach2012-07-091-0/+1
| | | | | | | | Lots of tests are using an explicit target triple w/o first checking that the target is actually available. Add a REQUIRES clause to a bunch of them. This should hopefully unbreak bots which don't configure w/ all targets enabled. llvm-svn: 159949
* Loosen the test from r150238 a bit to make some of our bots happy.Evgeniy Stepanov2012-02-101-4/+4
| | | | llvm-svn: 150242
* Fix function prolog codegen whe coerce-to type is a struct.Evgeniy Stepanov2012-02-101-0/+12
| | | | | | | | | | This changes function prolog in such a way as to avoid out-of-bounds stack store in the case when coerce-to type has a larger storage size than the real argument type. Fixes PR11905. llvm-svn: 150238
* Track whether an AggValueSlot is potentially aliased, and do notJohn McCall2011-08-251-14/+14
| | | | | | | | | | emit call results into potentially aliased slots. This allows us to properly mark indirect return slots as noalias, at the cost of requiring an extra memcpy when assigning an aggregate call result into a l-value. It also brings us into compliance with the x86-64 ABI. llvm-svn: 138599
* clang side to match the LLVM IR type system rewrite patch.Chris Lattner2011-07-091-2/+2
| | | | llvm-svn: 134831
* Fix tests that I missed from my previous commit.Rafael Espindola2010-06-161-32/+32
| | | | llvm-svn: 106118
* ARM/APCS: Don't respect bit-field types when laying out structures.Daniel Dunbar2010-04-221-1/+1
| | | | | | | | | | | - This fixes the last known ABI issues with ARM/APCS. - I've run the first 1k ABITests with '--no-unsigned --no-vector --no-complex' on {armv6, armv7} x {-mno-thumb, -mthumb}, and the first 10k tests for armv7 -mthumb, for both function return types and single argument calls. These all pass now (they failed horribly before without --no-bitfield). llvm-svn: 102070
* don't slap noalias attribute on stret result arguments.Chris Lattner2010-04-201-14/+14
| | | | | | | | | This mirror's Dan's patch for llvm-gcc in r97989, and fixes the miscompilation in PR6525. There is some contention over whether this is the right thing to do, but it is the conservative answer and demonstrably fixes a miscompilation. llvm-svn: 101877
* Revert changes r97693, r97700, and r97718.John McCall2010-03-041-2/+0
| | | | | | Our testing framework can't deal with disabled targets yet. llvm-svn: 97719
* XFAIL these tests on win32, since the win32 buildbot apparently disables allJohn McCall2010-03-041-0/+2
| | | | | | targets except X86. llvm-svn: 97718
* ARM/APCS: Fix classification of small complex integer types as "integer like".Daniel Dunbar2010-02-011-0/+15
| | | | llvm-svn: 95030
* ARM/APCS: Pass Complex types following llvm-gcc.Daniel Dunbar2010-02-011-0/+19
| | | | llvm-svn: 95029
* ARM/APCS ABI: Fix some problems with bit-fields in structures. After rereadingDaniel Dunbar2010-01-291-0/+27
| | | | | | | the ABI spec, this turns out to simplify the code. We still have some annoying code which mismatches the spec with regard to empty structures. llvm-svn: 94796
* Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'.Daniel Dunbar2009-12-151-2/+2
| | | | | | | | | - This is designed to make it obvious that %clang_cc1 is a "test variable" which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it can be useful to redefine what gets run as 'clang -cc1' (for example, to set a default target). llvm-svn: 91446
* Driver: Use '-target-abi' 'FOO' instead of '-target-abi=FOO'.Daniel Dunbar2009-11-201-2/+2
| | | | llvm-svn: 89501
* Eliminate &&s in tests.Daniel Dunbar2009-11-081-1/+1
| | | | | | - 'for i in $(find . -type f); do sed -e 's#\(RUN:.*[^ ]\) *&& *$#\1#g' $i | FileUpdate $i; done', for the curious. llvm-svn: 86430
* ARM/[A]APCS: Ignore empty records passed as arguments.Daniel Dunbar2009-09-141-0/+8
| | | | llvm-svn: 81798
* ARM/APCS: Don't treat structs w/ floating point types as "integer like".Daniel Dunbar2009-09-141-0/+14
| | | | llvm-svn: 81748
* Some minor clang/ARM/AAPCS tweaks.Daniel Dunbar2009-09-141-0/+72
llvm-svn: 81737