summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* remove 32 sign extend after 32 sextload and handle small negative constantAndrew Lenharth2005-03-021-4/+9
| | | | llvm-svn: 20408
* Added LSR as a beta pass for alphaAndrew Lenharth2005-03-021-0/+9
| | | | llvm-svn: 20407
* Add a temporary option for llc-beta: -enable-lsr-for-ppc, which turns onChris Lattner2005-03-021-0/+10
| | | | | | Loop Strength Reduction. llvm-svn: 20399
* Be slightly more accurate in an error message.Reid Spencer2005-03-021-1/+1
| | | | llvm-svn: 20397
* Fix a nasty order of evaluation bug that Gabor Greif ran into. Here's anChris Lattner2005-03-021-1/+2
| | | | | | | | | | | | | | | | | explanation from IRC: |sabre| I think it's an order of evaluation thing |sabre| for me, the RHS of the assignment is evaluated first |sabre| getTypeDescription checks to see if ConcreteTypeDescription[Ty] contains anything |sabre| since it doesn't, it computes and returns the value |sabre| this gets put into the map. |sabre| For you, the LHS is evaluated first. |sabre| Map[Ty] (aka ConcreteTypeDescriptions[Ty]) inserts an empty string into the map, returning a reference |sabre| getTypeDesc then sees the empty string in the map |sabre| and returns it |sabre| bork :) llvm-svn: 20394
* Fixed the following LSR bugs:Jeff Cohen2005-03-011-23/+19
| | | | | | | | | | | | | | | * Loop invariant code does not dominate the loop header, but rather the end of the loop preheader. * The base for a reduced GEP isn't a constant unless all of its operands (preceding the induction variable) are constant. * Allow induction variable elimination for the simple case after all. Also made changes recommended by Chris for properly deleting instructions. llvm-svn: 20383
* Lower llvm.isunordered(a, b) into a != a | b != b.Alkis Evlogimenos2005-03-011-3/+8
| | | | llvm-svn: 20382
* Remove tabs from file.Chris Lattner2005-02-281-3/+2
| | | | llvm-svn: 20380
* Add support to the C backend for llvm.prefetch. Patch contributed byChris Lattner2005-02-281-0/+13
| | | | | | Justin Wick! llvm-svn: 20378
* recognize llvm.prefetch. Patch contributed by Justin Wick!Chris Lattner2005-02-281-0/+3
| | | | llvm-svn: 20377
* Verify llvm.prefetch.Chris Lattner2005-02-281-0/+2
| | | | llvm-svn: 20376
* Lower prefetch to a noop, patch contributed by Justin Wick!Chris Lattner2005-02-281-0/+3
| | | | llvm-svn: 20375
* fix integer division and stuffAndrew Lenharth2005-02-281-5/+5
| | | | llvm-svn: 20372
* Fix crash in LSR due to attempt to remove original induction variable. However,Jeff Cohen2005-02-281-3/+14
| | | | | | | for reasons explained in the comments, I also deactivated this code as it needs more thought. llvm-svn: 20367
* PHI nodes were incorrectly placed when more than one GEP is reduced in a loop.Jeff Cohen2005-02-271-7/+6
| | | | llvm-svn: 20360
* First pass at improved Loop Strength Reduction. Still not yet ready for ↵Jeff Cohen2005-02-271-35/+39
| | | | | | prime time. llvm-svn: 20358
* Use const iterators where possible. Patch by Evan Jones!Chris Lattner2005-02-271-2/+2
| | | | llvm-svn: 20354
* Teach globalopt how memset/cpy/move affect memory, to allow better optimization.Chris Lattner2005-02-271-25/+40
| | | | llvm-svn: 20352
* Fix spelling, patch contributed by Gabor Greif!Chris Lattner2005-02-274-4/+4
| | | | llvm-svn: 20343
* Fix spelling, patch contributed by Gabor GreifChris Lattner2005-02-271-1/+1
| | | | llvm-svn: 20342
* Remove some stuff I checked in accidentallyChris Lattner2005-02-271-6/+0
| | | | llvm-svn: 20340
* DCE a dead functionChris Lattner2005-02-261-19/+0
| | | | llvm-svn: 20339
* Implement an isBytecodeArchive method to determine if an archive containsReid Spencer2005-02-261-0/+29
| | | | | | | bytecode file members or not. Patch Contributed By Adam Treat llvm-svn: 20338
* 1 + 100 + 51 == 152, not 52.Chris Lattner2005-02-261-0/+2
| | | | | | | | If we fold three constants together (c1+c2+c3), make sure to keep LHSC updated, instead of reusing (in this case), the 1 instead of the partial sum. llvm-svn: 20337
* remove extraneous castChris Lattner2005-02-261-2/+1
| | | | llvm-svn: 20334
* make BB labels be exported for debuging, add fp negation optimization, ↵Andrew Lenharth2005-02-253-30/+61
| | | | | | further pecimise the FP instructions llvm-svn: 20332
* Handle null a bit more carefully.Chris Lattner2005-02-251-1/+11
| | | | | | | | Actually teach dsa about select instructions. This doesn't affect the graph in any way other than not setting a spurious U marker on pointer nodes that are selected. llvm-svn: 20324
* This instruction:Chris Lattner2005-02-241-1/+2
| | | | | | | | | X = gep null, ... Used to not create a scalar map entry for X, which caused clients to barf. This is bad. llvm-svn: 20316
* Fix a bug introduced by revision 1.187 of this file.Chris Lattner2005-02-241-1/+2
| | | | llvm-svn: 20308
* fix Allocas. Really. I mean it this time.Andrew Lenharth2005-02-241-1/+6
| | | | llvm-svn: 20306
* Fix some problems where the verifier would crash on invalid input instead ofChris Lattner2005-02-242-3/+7
| | | | | | reporting the problem and exiting. llvm-svn: 20302
* Implement Transforms/SimplifyCFG/switch_thread.llChris Lattner2005-02-241-4/+190
| | | | | | | | This does a simple form of "jump threading", which eliminates CFG edges that are provably dead. This triggers 90 times in the external tests, and eliminating CFG edges is always always a good thing! :) llvm-svn: 20300
* switch instructions only allow constantints for their values, be more specific.Chris Lattner2005-02-241-1/+1
| | | | llvm-svn: 20298
* use more specific cast.Chris Lattner2005-02-241-1/+1
| | | | llvm-svn: 20297
* add more checkingChris Lattner2005-02-241-2/+6
| | | | llvm-svn: 20296
* Do not read free'd memory when printing an error message.Chris Lattner2005-02-241-1/+1
| | | | llvm-svn: 20295
* add a new method.Chris Lattner2005-02-241-0/+10
| | | | llvm-svn: 20293
* Only print out machine instructions before modulo scheduling if we are ↵Tanya Lattner2005-02-241-1/+1
| | | | | | actually doing modulo scheduling! :) llvm-svn: 20292
* Ah the problems you have to fix when you stray from the One True Way (TM)Andrew Lenharth2005-02-231-2/+2
| | | | llvm-svn: 20290
* make this more efficient. Scan up to 16 nodes, not the whole list.Chris Lattner2005-02-232-2/+2
| | | | llvm-svn: 20289
* new methodChris Lattner2005-02-231-0/+13
| | | | llvm-svn: 20288
* Reduce the amount of searching this assertion does. On a testcase of mine,Chris Lattner2005-02-231-1/+3
| | | | | | this reduces the time for -simplifycfg in a debug build from 106s to 14.82s llvm-svn: 20286
* Silence some uninit variable warnings.Chris Lattner2005-02-231-0/+2
| | | | llvm-svn: 20284
* Fixed bug in findAllcircuits. Fixed branch addition to schedule. Added debug ↵Tanya Lattner2005-02-234-92/+150
| | | | | | information. llvm-svn: 20280
* oopsAndrew Lenharth2005-02-221-1/+1
| | | | llvm-svn: 20278
* Remove use of bind_obj, deleter, and finegrainify namespacification.Chris Lattner2005-02-221-18/+15
| | | | llvm-svn: 20277
* Remove use of bind_objChris Lattner2005-02-221-2/+3
| | | | llvm-svn: 20276
* C++ is not a functional programming language.Chris Lattner2005-02-221-5/+7
| | | | llvm-svn: 20274
* dynamic stack allocasAndrew Lenharth2005-02-222-65/+154
| | | | llvm-svn: 20273
* Fix a bug in the 'store fpimm, ptr' -> 'store intimm, ptr' handling code.Chris Lattner2005-02-221-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changing 'op' here caused us to not enter the store into a map, causing reemission of the code!! In practice, a simple loop like this: no_exit: ; preds = %no_exit, %entry %indvar = phi uint [ %indvar.next, %no_exit ], [ 0, %entry ] ; <uint> [#uses=3] %tmp.4 = getelementptr "complex long double"* %P, uint %indvar, uint 0 ; <double*> [#uses=1] store double 0.000000e+00, double* %tmp.4 %indvar.next = add uint %indvar, 1 ; <uint> [#uses=2] %exitcond = seteq uint %indvar.next, %N ; <bool> [#uses=1] br bool %exitcond, label %return, label %no_exit was being code gen'd to: .LBBtest_1: # no_exit movl %edx, %esi shll $4, %esi movl $0, 4(%eax,%esi) movl $0, (%eax,%esi) incl %edx movl $0, (%eax,%esi) movl $0, 4(%eax,%esi) cmpl %ecx, %edx jne .LBBtest_1 # no_exit Note that we are doing 4 32-bit stores instead of 2. Now we generate: .LBBtest_1: # no_exit movl %edx, %esi incl %esi shll $4, %edx movl $0, (%eax,%edx) movl $0, 4(%eax,%edx) cmpl %ecx, %esi movl %esi, %edx jne .LBBtest_1 # no_exit This is much happier, though it would be even better if the increment of ESI was scheduled after the compare :-/ llvm-svn: 20265
OpenPOWER on IntegriCloud