aboutsummaryrefslogtreecommitdiff
path: root/utils/ABITest
AgeCommit message (Collapse)Author
2010-09-27utils/ABITest: Factor out type naming code slightly.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114867 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-27utils/ABITest: Tweak default bit-field types to cover some more interesting ↵Daniel Dunbar
cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114866 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-27utils/ABITest: Add a workaround for mismatches due to PR5579.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114865 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-27utils/ABITest: Add option to skip individual tests by index.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114864 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Implement promotion for enumeration types.Douglas Gregor
WHAT!?! It turns out that Type::isPromotableIntegerType() was not considering enumeration types to be promotable, so we would never do the promotion despite having properly computed the promotion type when the enum was defined. Various operations on values of enum type just "worked" because we could still compute the integer rank of an enum type; the oddity, however, is that operations such as "add an enum and an unsigned" would often have an enum result type (!). The bug actually showed up as a spurious -Wformat diagnostic (<rdar://problem/7595366>), but in theory it could cause miscompiles. In this commit: - Enum types with a promotion type of "int" or "unsigned int" are promotable. - Tweaked the computation of promotable types for enums - For all of the ABIs, treat enum types the same way as their underlying types (*not* their promotion types) for argument passing and return values - Extend the ABI tester with support for enumeration types git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95117 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Include <stdlib.h>, so that we're sure to get atoi.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95095 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16Whoops, did not mean to commit thisAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79201 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16Store the delete operator for delete expressions.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79200 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-25Whoops, did not mean to check this in.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77022 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-25More work on the constant struct builder. We now try to layout all constant ↵Anders Carlsson
structs but throw away the result. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77021 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-10Use /usr/bin/env trick to find python. Patch by Krister Walfridsson.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75271 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-25Minor build system changes to make ABITest work correctly on Linux.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72405 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-25Some minor corrections: don't use offsetof on a bitfield, and cast Eli Friedman
printf operands to long to suppress warnings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72404 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-08ABITest: Improve test driver marginally, to allow running a specificDaniel Dunbar
test index. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71295 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-08ABITest: Move more of the common Makefile bits into the commonDaniel Dunbar
Makefile. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71274 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-08ABITest: Fix a bug in generating test values for structures w/ noDaniel Dunbar
non-padding fields. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71273 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-08ABITest: Move default set of test args into common makefile.Daniel Dunbar
Also, tweak default list of bit-fields to try. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71246 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-08Add various other bits I use to run ABITest.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71201 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-07Add to the house of cards that is ABITestGen.Daniel Dunbar
- Support generating structures with bit-fields. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71192 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-02ABITestGen: Add v2i16 and v16f32 as default vector types to generate.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65810 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-22ABITestGen: Use explicit list of vector types instead of just a listDaniel Dunbar
of sizes. Turns out we don't care very much about vector types that don't map to the hardware. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65263 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17ABITest: Add some checking of values for return types; useful forDaniel Dunbar
catching internal consistency problems (esp. w/ reference compiler). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64847 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Note some more things to integrate into ABITestDaniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64846 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-29ABITest: Makefile tweaksDaniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63330 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-29ABITest: Fix access to array test values.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63296 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-29ABITest: Fix test value generation for unions.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63286 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-29Use xcc (instead of clang directly).Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63279 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-28ABITest: Support --test-layout option for generatingDaniel Dunbar
size/alignment/offsetof based tests of types instead of calling convention tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63167 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-26ABITestGen: Add generation of vector types.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63024 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-24Add simple make based harness for running ABI tests.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62916 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-15Add utils/ABITest, my ABI test generation tool.Daniel Dunbar
- Mostly written as an entertaining exercise in enumerating large or (countably, naturally) infinite sets. But hey, its useful too! - Idea is to number all C-types so that the N-th type can quickly be computed, with a good deal of flexibility about what types to include, and taking some care so that the (N+1)-th type is interestingly different from the N-th type. For example, using the default generator, the 1,000,000-th function type is: -- typedef _Complex int T0; typedef char T1 __attribute__ ((vector_size (4))); typedef int T2 __attribute__ ((vector_size (4))); T2 fn1000000(T0 arg0, signed long long arg1, T1 arg2, T0 arg3); -- and the 1,000,001-th type is: -- typedef _Complex char T0; typedef _Complex char T2; typedef struct T1 { T2 field0; T2 field1; T2 field2; } T1; typedef struct T3 { } T3; unsigned short fn1000001(T0 arg0, T1 arg1, T3 arg2); -- Computing the 10^1600-th type takes a little less than 1s. :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62253 91177308-0d34-0410-b5e6-96231b3b80d8