summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/Generic
Commit message (Collapse)AuthorAgeFilesLines
* Fix PR5421 by APInt'izing switch lowering.Chris Lattner2009-11-071-2/+16
| | | | llvm-svn: 86354
* Declare sin & cos as readonly so they match the code in SelectionDAGBuildNate Begeman2009-11-031-4/+4
| | | | llvm-svn: 85853
* Revert the main portion of r31856. It was causing BranchFoldingDan Gohman2009-10-221-2/+2
| | | | | | | | | | | | to break up CFG diamonds by banishing one of the blocks to the end of the function, which is bad for code density and branch size. This does pessimize MultiSource/Benchmarks/Ptrdist/yacr2, the benchmark cited as the reason for the change, however I've examined the code and it looks more like a case of gaming a particular branch than of being generally applicable. llvm-svn: 84803
* Convert more tests to avoid llvm-as.Dan Gohman2009-09-112-2/+2
| | | | llvm-svn: 81545
* Change tests from "opt %s" to "opt < %s" so that opt doesn't see theDan Gohman2009-09-114-5/+5
| | | | | | | | input filename so that opt doesn't print the input filename in the output so that grep lines in the tests don't unintentionally match strings in the input filename. llvm-svn: 81537
* Eliminate more uses of llvm-as and llvm-dis.Dan Gohman2009-09-09152-165/+165
| | | | llvm-svn: 81293
* Use opt -S instead of piping bitcode output through llvm-dis.Dan Gohman2009-09-082-3/+3
| | | | llvm-svn: 81257
* Change these tests to feed the assembly files to opt directly, insteadDan Gohman2009-09-084-5/+5
| | | | | | of using llvm-as, now that opt supports this. llvm-svn: 81226
* Remove obsolete -f flags.Dan Gohman2009-08-253-4/+4
| | | | llvm-svn: 79992
* Split test into 3.Dale Johannesen2009-08-241-10/+0
| | | | llvm-svn: 79926
* Make linkerprivate work for ARM and PPC. Testcase coversDale Johannesen2009-08-241-0/+10
| | | | | | | | | all Darwin targets; could be split into separate tests for the chip subdirectories, but from Chris' last mail on testing I assume he'd rather have only one test. Generic seems to be the best available, maybe there should be a Darwin subdirectory? llvm-svn: 79877
* 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
OpenPOWER on IntegriCloud