aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/Generic
AgeCommit message (Collapse)Author
2008-01-15new testcase for llvm.trap.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46020 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-10new testcase for PR1845Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45795 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-07Setting GlobalDirective in TargetAsmInfo by default rather thanGordon Henriksen
providing a misleading facility. It's used once in the MIPS backend and hardcoded as "\t.globl\t" everywhere else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45676 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-07With this patch, the LowerGC transformation becomes theGordon Henriksen
ShadowStackCollector, which additionally has reduced overhead with no sacrifice in portability. Considering a function @fun with 8 loop-local roots, ShadowStackCollector introduces the following overhead (x86): ; shadowstack prologue movl L_llvm_gc_root_chain$non_lazy_ptr, %eax movl (%eax), %ecx movl $___gc_fun, 20(%esp) movl $0, 24(%esp) movl $0, 28(%esp) movl $0, 32(%esp) movl $0, 36(%esp) movl $0, 40(%esp) movl $0, 44(%esp) movl $0, 48(%esp) movl $0, 52(%esp) movl %ecx, 16(%esp) leal 16(%esp), %ecx movl %ecx, (%eax) ; shadowstack loop overhead (none) ; shadowstack epilogue movl 48(%esp), %edx movl %edx, (%ecx) ; shadowstack metadata .align 3 ___gc_fun: # __gc_fun .long 8 .space 4 In comparison to LowerGC: ; lowergc prologue movl L_llvm_gc_root_chain$non_lazy_ptr, %eax movl (%eax), %ecx movl %ecx, 48(%esp) movl $8, 52(%esp) movl $0, 60(%esp) movl $0, 56(%esp) movl $0, 68(%esp) movl $0, 64(%esp) movl $0, 76(%esp) movl $0, 72(%esp) movl $0, 84(%esp) movl $0, 80(%esp) movl $0, 92(%esp) movl $0, 88(%esp) movl $0, 100(%esp) movl $0, 96(%esp) movl $0, 108(%esp) movl $0, 104(%esp) movl $0, 116(%esp) movl $0, 112(%esp) ; lowergc loop overhead leal 44(%esp), %eax movl %eax, 56(%esp) leal 40(%esp), %eax movl %eax, 64(%esp) leal 36(%esp), %eax movl %eax, 72(%esp) leal 32(%esp), %eax movl %eax, 80(%esp) leal 28(%esp), %eax movl %eax, 88(%esp) leal 24(%esp), %eax movl %eax, 96(%esp) leal 20(%esp), %eax movl %eax, 104(%esp) leal 16(%esp), %eax movl %eax, 112(%esp) ; lowergc epilogue movl 48(%esp), %edx movl %edx, (%ecx) ; lowergc metadata (none) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45670 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-31Fix PR1833 - eh.exception and eh.selector return twoDuncan Sands
values, which means doing extra legalization work. It would be easier to get this kind of thing right if there was some documentation... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45472 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-26Tests for changes made in r45356, where IPO optimizations would dropGordon Henriksen
collector algorithms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45357 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-25GC poses hazards to the inliner. Consider:Gordon Henriksen
define void @f() { ... call i32 @g() ... } define void @g() { ... } The hazards are: - @f and @g have GC, but they differ GC. Inlining is invalid. This may never occur. - @f has no GC, but @g does. g's GC must be propagated to @f. The other scenarios are safe: - @f and @g have the same GC. - @f and @g have no GC. - @g has no GC. This patch adds inliner checks for the former two scenarios. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45351 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-25Noting and enforcing that GC intrinsics are valid only within aGordon Henriksen
function with GC. This will catch the error when the inliner inlines a function with GC into a caller with no GC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45350 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-25Adjusting verification of "llvm.gc*" intrinsic prototypes to matchGordon Henriksen
LangRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45349 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-17Make invokes of inline asm legal. Teach codegenDuncan Sands
how to lower them (with no attempt made to be efficient, since they should only occur for unoptimized code). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45108 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-10Adding a collector name attribute to Function in the IR. These Gordon Henriksen
methods are new to Function: bool hasCollector() const; const std::string &getCollector() const; void setCollector(const std::string &); void clearCollector(); The assembly representation is as such: define void @f() gc "shadow-stack" { ... The implementation uses an on-the-side table to map Functions to collector names, such that there is no overhead. A StringPool is further used to unique collector names, which are extremely likely to be unique per process. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44769 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-09Upgrading this test to 2.0 .ll syntax.Gordon Henriksen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44738 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-28upgrade this testChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44405 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-27Fix a crash on invalid code due to memcpy lowering.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44378 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-21Fix a bug in which node A is replaced by node B, but laterDuncan Sands
node A gets back into the DAG again because it was hiding in one of the node maps: make sure that node replacement happens in those maps too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44263 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-01-pre-RA-sched=none, simple, simple-noitin are gone.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42505 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-24Fix a typo in a comment.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42263 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-17Fix for PR1633: Verifier doesn't fully verify GC intrinsicsGordon Henriksen
LLVM now enforces the following prototypes for the write barriers: <ty>* @llvm.gcread(<ty2>*, <ty>**) void @llvm.gcwrite(<ty>*, <ty2>*, <ty>**) And for @llvm.gcroot, the first stack slot is verified to be an alloca or a bitcast of an alloca. Fixes test/CodeGen/Generic/GC/lower_gcroot.ll, which violated these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42051 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-07Split eh.select / eh.typeid.for intrinsics into i32/i64 versions. This is ↵Anton Korobeynikov
needed, because they just "mark" register liveins and we let frontend solve type issue, not lowering code :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41763 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-05Change all floating constants that are not exactlyDale Johannesen
representable to use hex format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41722 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-01Fix a gcroot lowering bug.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41668 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-27Remove this test as it is too hard to fix after theDuncan Sands
latest EH changes, and in any case it is hard to imagine how the original bug could be reintroduced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41497 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-27Now that we don't output cleanups by default, the actionDuncan Sands
offset needs to be adjusted in this test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41490 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-25Allow target constants to be illegal types. The target shouldChris Lattner
know how to handle them. This fixes test/CodeGen/Generic/asm-large-immediate.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41388 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-15Convert tests using "grep -c ... | grep ..." to use the count script.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41100 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-15Convert tests using "| wc -l | grep ..." to use the count script.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41097 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-04This is the patch to provide clean intrinsic function overloading support in ↵Chandler Carruth
LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future. This also changes the syntax for llvm.bswap, llvm.part.set, llvm.part.select, and llvm.ct* intrinsics. They are automatically upgraded by both the LLVM ASM reader and the bitcode reader. The test cases have been updated, with special tests added to ensure the automatic upgrading is supported. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40807 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-31Change the x86 assembly output to use tab characters to separate theDan Gohman
mnemonics from their operands instead of single spaces. This makes the assembly output a little more consistent with various other compilers (f.e. GCC), and slightly easier to read. Also, update the regression tests accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40648 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-17Don't use * in XFAIL line unless you want it to XFAIL on everything. I don't ↵Tanya Lattner
believe you can use true regular expressions here. It will just look for those keywords. Please test this on sparc and see if they still are xfailed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39975 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-17XFAIL these on sparc-solarisGabor Greif
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39969 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-17For PR1558:Reid Spencer
Move tests that have C/C++ sources into the appropriate directory. This allows them to be selected for testing based on whether llvm-gcc is present or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39963 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-16Remove the trailing semicolon from function declarations in LLVM,Dan Gohman
where it's interpreted as a comment, not part of the syntax. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39920 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13Skeleton of post-RA scheduler; doesn't do anything yet.Dale Johannesen
Change name of -sched option and DEBUG_TYPE to pre-RA-sched; adjust testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39816 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-09remove this bogus t-tChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38464 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-06Test that byte offsets are used to index into the listDuncan Sands
of filter ids, and not simply the id index. Testing this requires at least 128 type infos! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37941 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-05avoid ambiguity in target selectionChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37927 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-29Convert .cvsignore filesJohn Criswell
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37801 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-15Workaround for PR1508.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37597 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-06"Simplified" testcase for PR1422.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37462 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-22Test assumes tail merging is off; this must now be explicit.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37286 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-17add testcase for 128-bit add/subChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37170 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-15Fix an infinite recursion in GetNegatedExpression.Lauro Ramos Venancio
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37086 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-08move to CodeGen/ARM/2007-05-07-tailmerge-1.llChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36918 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-07Fix test case.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36911 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-07Handle some non-exit blocks in tail merging.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36907 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-05the sparc v8 backend handles this correctlyChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36801 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-05unxfail this, llc doesn't support this feature yet, so don't run it.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36796 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-05Check that the right eh personality function is used.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36788 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04Test that the eh lowering code can handle constant folded bitcasts.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36746 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01Split target dependent test portions to target-specific directories.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36612 91177308-0d34-0410-b5e6-96231b3b80d8