summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/Generic
Commit message (Collapse)AuthorAgeFilesLines
* Remove the IA-64 backend.Dan Gohman2009-07-241-1/+0
| | | | llvm-svn: 76920
* remove tests for removed intrinsics.Chris Lattner2009-07-121-32/+0
| | | | llvm-svn: 75433
* Split the Add, Sub, and Mul instruction opcodes into separateDan Gohman2009-06-0411-38/+38
| | | | | | | | | | | | | | | integer and floating-point opcodes, introducing FAdd, FSub, and FMul. For now, the AsmParser, BitcodeReader, and IRBuilder all preserve backwards compatability, and the Core LLVM APIs preserve backwards compatibility for IR producers. Most front-ends won't need to change immediately. This implements the first step of the plan outlined here: http://nondot.org/sabre/LLVMNotes/IntegerOverflow.txt llvm-svn: 72897
* PR4317: Handle splits where the new block is unreachable correctly in Eli Friedman2009-06-031-0/+15
| | | | | | DominatorTreeBase::Split. llvm-svn: 72810
* Add a new codegen pass that normalizes dwarf exception handlingDuncan Sands2009-05-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | code in preparation for code generation. The main thing it does is handle the case when eh.exception calls (and, in a future patch, eh.selector calls) are far away from landing pads. Right now in practice you only find eh.exception calls close to landing pads: either in a landing pad (the common case) or in a landing pad successor, due to loop passes shifting them about. However future exception handling improvements will result in calls far from landing pads: (1) Inlining of rewinds. Consider the following case: In function @f: ... invoke @g to label %normal unwind label %unwinds ... unwinds: %ex = call i8* @llvm.eh.exception() ... In function @g: ... invoke @something to label %continue unwind label %handler ... handler: %ex = call i8* @llvm.eh.exception() ... perform cleanups ... "rethrow exception" Now inline @g into @f. Currently this is turned into: In function @f: ... invoke @something to label %continue unwind label %handler ... handler: %ex = call i8* @llvm.eh.exception() ... perform cleanups ... invoke "rethrow exception" to label %normal unwind label %unwinds unwinds: %ex = call i8* @llvm.eh.exception() ... However we would like to simplify invoke of "rethrow exception" into a branch to the %unwinds label. Then %unwinds is no longer a landing pad, and the eh.exception call there is then far away from any landing pads. (2) Using the unwind instruction for cleanups. It would be nice to have codegen handle the following case: invoke @something to label %continue unwind label %run_cleanups ... handler: ... perform cleanups ... unwind This requires turning "unwind" into a library call, which necessarily takes a pointer to the exception as an argument (this patch also does this unwind lowering). But that means you are using eh.exception again far from a landing pad. (3) Bugpoint simplifications. When bugpoint is simplifying exception handling code it often generates eh.exception calls far from a landing pad, which then causes codegen to assert. Bugpoint then latches on to this assertion and loses sight of the original problem. Note that it is currently rare for this pass to actually do anything. And in fact it normally shouldn't do anything at all given the code coming out of llvm-gcc! But it does fire a few times in the testsuite. As far as I can see this is almost always due to the LoopStrengthReduce codegen pass introducing pointless loop preheader blocks which are landing pads and only contain a branch to another block. This other block contains an eh.exception call. So probably by tweaking LoopStrengthReduce a bit this can be avoided. llvm-svn: 72276
* Help DejaGnu avoid pipe-jam by producing less output from certain test cases.Jakob Stoklund Olesen2009-05-164-4/+4
| | | | | | | | When a test fails with more than a pipeful of output on stdout AND stderr, one of the DejaGnu programs blocks. The problem can be avoided by redirecting stdout to a file. llvm-svn: 71919
* Disable the load-shrinking optimization from looking atChris Lattner2009-04-291-0/+16
| | | | | | | | | | | anything larger than 64-bits, avoiding a crash. This should really be fixed to use APInts, though type legalization happens to help us out and we get good code on the attached testcase at least. This fixes rdar://6836460 llvm-svn: 70360
* Second attempt:Bill Wendling2009-04-293-3/+3
| | | | | | | | | | | | Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'll change the JIT with a follow-up patch. llvm-svn: 70343
* r70270 isn't ready yet. Back this out. Sorry for the noise.Bill Wendling2009-04-283-3/+3
| | | | llvm-svn: 70275
* Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want toBill Wendling2009-04-283-3/+3
| | | | | | | | | | | use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'm not 100% sure if it's necessary to change it there... llvm-svn: 70270
* Revert accidental testcase reductionNate Begeman2009-04-271-4/+40
| | | | llvm-svn: 70226
* 2nd attempt, fixing SSE4.1 issues and implementing feedback from duncan.Nate Begeman2009-04-271-40/+4
| | | | | | | | | | | | | | PR2957 ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes as the shuffle mask. A value of -1 represents UNDEF. In addition to eliminating the creation of illegal BUILD_VECTORS just to represent shuffle masks, we are better about canonicalizing the shuffle mask, resulting in substantially better code for some classes of shuffles. llvm-svn: 70225
* Fix PR 4057, a crash doing float->char const folding.Dale Johannesen2009-04-241-0/+18
| | | | | | | | This particular one is undefined behavior (although this isn't related to the crash), so it will no longer do it at compile time, which seems better. llvm-svn: 69990
* Add a new "available_externally" linkage type. This is intendedChris Lattner2009-04-131-0/+10
| | | | | | | | to support C99 inline, GNU extern inline, etc. Related bugzilla's include PR3517, PR3100, & PR2933. Nothing uses this yet, but it appears to work. llvm-svn: 68940
* move a target-specific test into its directory so it isn't run if youChris Lattner2009-04-101-20/+0
| | | | | | don't configure the ARM target in. llvm-svn: 68843
* fix two problems with machine sinking:Chris Lattner2009-04-101-0/+16
| | | | | | | | | | | 1. Sinking would crash when the first instruction of a block was sunk due to iterator problems. 2. Instructions could be sunk to their current block, causing an infinite loop. This fixes PR3968 llvm-svn: 68787
* Fix PR3899: add support for extracting floats from vectorsDuncan Sands2009-03-291-0/+10
| | | | | | | when using -soft-float. Based on a patch by Jakob Stoklund Olesen. llvm-svn: 67996
* LSR shouldn't ever try to hack on integer IV's larger than 64-bits. Right nowChris Lattner2009-03-171-0/+92
| | | | | | | | | it is not APInt clean, but even when it is it needs to be evaluated carefully to determine whether it is actually profitable. This fixes a crash on PR3806 llvm-svn: 67134
* wire up support for emitting "special" values from inline asmChris Lattner2009-03-101-0/+6
| | | | | | format strings with the standard ${:foo} syntax. llvm-svn: 66527
* bug 3610: Test case.Richard Pennington2009-02-221-0/+20
| | | | llvm-svn: 65287
* Let's try to have our cake and eat it to: moveDuncan Sands2009-01-211-282/+0
| | | | | | | | this test into FrontendC to ensure that llvm-gcc is available; assemble using "llvm-gcc -xassembler" rather than "as". llvm-svn: 62683
* Don't bother running the assembler, we don't know that it will be configuredChris Lattner2009-01-201-1/+1
| | | | | | for whatever llc defaults to. This fixes PR3363 llvm-svn: 62619
* Verify Intrinsic::dbg_declare. Devang Patel2009-01-191-9/+0
| | | | llvm-svn: 62526
* The list-td and list-tdrr schedulers don't yet support physregDan Gohman2009-01-131-2/+3
| | | | | | | | | | | scheduling dependencies. Add assertion checks to help catch this. It appears the Mips target defaults to list-td, and it has a regression test that uses a physreg dependence. Such code was liable to be miscompiled, and now evokes an assertion failure. llvm-svn: 62177
* Fix a bug in ComputeLinearIndex computation handling multi-levelDan Gohman2009-01-061-0/+67
| | | | | | | | aggregate types. Don't increment the current index after reaching the end of a struct, as it will already be pointing at one-past-the end. This fixes PR3288. llvm-svn: 61828
* Delete this test; it's a duplicate of 2006-07-03-schedulers.ll.Dan Gohman2009-01-061-27/+0
| | | | llvm-svn: 61781
* Revert the changes in this testcase until Anton can fix them.Bill Wendling2008-12-241-11/+15
| | | | llvm-svn: 61414
* Update testAnton Korobeynikov2008-12-231-15/+11
| | | | llvm-svn: 61399
* For amusement, implement SADDO, SSUBO, UADDO, USUBODuncan Sands2008-12-101-0/+42
| | | | | | | | | for promoted integer types, eg: i16 on ppc-32, or i24 on any platform. Complete support for arbitrary precision integers would require handling expanded integer types, eg: i128, but I couldn't be bothered. llvm-svn: 60834
* Test add-with-overflow with fast ISel.Bill Wendling2008-11-241-0/+1
| | | | llvm-svn: 59945
* Add support for llvm.uadd.with.overflow.Bill Wendling2008-11-241-1/+18
| | | | llvm-svn: 59926
* Add generic test for add with overflow.Bill Wendling2008-11-211-0/+23
| | | | llvm-svn: 59781
* Test -pre-RA-sched=fast too, for completeness.Dan Gohman2008-11-201-0/+1
| | | | llvm-svn: 59741
* Revert r59640. It broke this test for builds that aren'tDan Gohman2008-11-191-1/+1
| | | | | | configured with llvm-gcc. llvm-svn: 59641
* Use %llvmgcc -xassembler instead of invoking as directly. This avoidsDan Gohman2008-11-191-1/+1
| | | | | | | problems for example when LLVM is built with --with-extra-options=-m64 and as defaults to x86-32 mode. llvm-svn: 59640
* A simple test for stack protectors. This should be valid on all platforms.Bill Wendling2008-11-181-0/+25
| | | | llvm-svn: 59505
* Turn on LegalizeTypes, the new type legalizationDuncan Sands2008-10-275-5/+5
| | | | | | | codegen infrastructure, by default. Please report any breakage to the mailing lists. llvm-svn: 58232
* Related to PR2911, reject as invalid non-pointer GC roots.Gordon Henriksen2008-10-251-0/+10
| | | | llvm-svn: 58143
* remove this test: it is xfailed anyway, and is failing for a reasonChris Lattner2008-10-171-18/+0
| | | | | | other than why it was xfailed. llvm-svn: 57694
* This does not fail anymoreAnton Korobeynikov2008-10-101-2/+0
| | | | llvm-svn: 57360
* This is not failing anymoreAnton Korobeynikov2008-10-101-2/+0
| | | | llvm-svn: 57347
* Split this test and move it into target-specific directories.Dan Gohman2008-10-011-9/+0
| | | | | | | This fixes failures on configurations that don't have one or the other targets enabled. llvm-svn: 56926
* Add a target triple; apparently LLVM doesn't use 64-bit Dan Gohman2008-09-081-1/+1
| | | | | | data directives on darwin. llvm-svn: 55941
* Add AsmPrinter support for i128 and larger static initializer data.Dan Gohman2008-09-081-0/+9
| | | | llvm-svn: 55919
* Add testcase from bug 2770.Rafael Espindola2008-09-081-0/+14
| | | | llvm-svn: 55897
* Turn this legalize types test on.Duncan Sands2008-09-015-11/+5
| | | | llvm-svn: 55605
* Improve support for vector casts in LLVM IR and CodeGen.Dan Gohman2008-08-141-0/+45
| | | | llvm-svn: 54784
* Don't crash printing the asm for a ConstantExpr PtrToInt just because the intNick Lewycky2008-08-081-0/+7
| | | | | | | | is narrower than the pointer. This testcase emits: .byte (((17) - 16) & 255) llvm-svn: 54517
* Fix SDISel lowering of zeroinitializer and undef to use ComputeValueVTs.Dan Gohman2008-08-041-0/+17
| | | | | | | This allows it to work correctly on nested aggregate values. This fixes PR2625. llvm-svn: 54330
* Don't look for leaf values to store when lowering stores ofDan Gohman2008-07-301-0/+18
| | | | | | empty structs. This fixes PR2612. llvm-svn: 54226
OpenPOWER on IntegriCloud