summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/Generic
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix the third (and last known) case of code update problems due Chris Lattner2010-03-161-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | to LLVM IR changes with addr label weirdness. In the testcase, we generate references to the two bb's when codegen'ing the first function: _test1: ## @test1 leaq Ltmp0(%rip), %rax .. leaq Ltmp1(%rip), %rax Then continue to codegen the second function where the blocks get merged. We're now smart enough to emit both labels, producing this code: _test_fun: ## @test_fun ## BB#0: ## %entry Ltmp1: ## Block address taken Ltmp0: ## BB#1: ## %ret movl $-1, %eax ret Rejoice. llvm-svn: 98595
* Implement support for the case when a reference to a addr-of-bb Chris Lattner2010-03-151-0/+39
| | | | | | | | | label is generated, but then the block is deleted. Since the value is undefined, we just emit the label right after the entry label of the function. It might matter that the label is in the same section as the function was afterall. llvm-svn: 98579
* don't have i386-specific tests in CodeGen/Generic, PR6601.Chris Lattner2010-03-1422-419/+0
| | | | llvm-svn: 98508
* stop using anders-aaChris Lattner2010-03-011-1/+1
| | | | llvm-svn: 97491
* Remove this generic debug info intrinsic test. LLVM does not use this ↵Devang Patel2010-03-011-19/+0
| | | | | | llvm.dbg.stoppoint intrinsic anymore. There are tests to check new implementation, which attaches location information directly with an instruction using metadata. llvm-svn: 97464
* Preliminary patch to improve dwarf EH generation - Hooks to return ↵Anton Korobeynikov2010-02-151-1/+1
| | | | | | Personality / FDE / LSDA / TType encoding depending on target / options (e.g. code model / relocation model) - MCIzation of Dwarf EH printer to use encoding information - Stub generation for ELF target (needed for indirect references) - Some other small changes here and there llvm-svn: 96285
* move tests that depend on the x86 backend out of codegen/generic,Chris Lattner2010-02-0910-379/+1
| | | | | | and remove a few old and unreduced ones. Fixes PR5624. llvm-svn: 95656
* make target independent.Chris Lattner2010-02-091-1/+0
| | | | llvm-svn: 95655
* merge a target-specific add test into x86 directory.Chris Lattner2010-02-091-10/+0
| | | | llvm-svn: 95654
* merge two tests, make target independent.Chris Lattner2010-02-092-56/+40
| | | | llvm-svn: 95651
* just remove this test, it is not reduced, is not clear what its testing for andChris Lattner2010-01-241-2870/+0
| | | | | | it is dying due to fragility in the asmprinter .s comments. llvm-svn: 94372
* remove this test.Chris Lattner2010-01-231-14/+0
| | | | llvm-svn: 94276
* Fix test.Evan Cheng2010-01-231-1/+1
| | | | llvm-svn: 94272
* APInt'fy TargetLowering::SimplifySetCC to fix PR5963.Evan Cheng2010-01-071-0/+16
| | | | llvm-svn: 92943
* Delete useless trailing semicolons.Dan Gohman2010-01-051-1/+1
| | | | llvm-svn: 92740
* While this test is testing a problem in the generic part of codegen,Duncan Sands2009-11-271-37/+0
| | | | | | | | | the problem only shows for msp430 and pic16 which is why it specifies them using -march. But it is wrong to put such tests in CodeGen/Generic, since not everyone builds these targets. Put a copy of the test in each of the target test directories. llvm-svn: 90005
* Convert test to FileCheck.Benjamin Kramer2009-11-221-2/+6
| | | | llvm-svn: 89589
* Don't leave temporary files in the test directory.Jakob Stoklund Olesen2009-11-211-2/+2
| | | | llvm-svn: 89531
* Fix PR5558, which was caused by a wrong fix for PR3393 (see commit 63048),Duncan Sands2009-11-201-0/+37
| | | | | | | | which was an expensive checks failure due to a bug in the checking. This patch in essence reverts the original fix for PR3393, and refixes it by a tweak to the way expensive checking is done. llvm-svn: 89454
* Added a testcase for PR5495.Lang Hames2009-11-161-0/+75
| | | | llvm-svn: 88946
* 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
OpenPOWER on IntegriCloud