summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Change a place to use an arbitrary value instead of null, when possibleChris Lattner2005-08-021-3/+3
| | | | llvm-svn: 22605
* one more hunk that got droppedChris Lattner2005-08-021-3/+2
| | | | llvm-svn: 22596
* This hunk accidentally got dropped. Patch by Jim LaskeyChris Lattner2005-08-021-67/+0
| | | | llvm-svn: 22595
* Update to use the new MathExtras.h support for log2 computation.Chris Lattner2005-08-0211-188/+108
| | | | | | Patch contributed by Jim Laskey! llvm-svn: 22594
* Update to use the new MathExtras.h support for log2 computation.Chris Lattner2005-08-021-22/+15
| | | | | | Patch contributed by Jim Laskey! llvm-svn: 22592
* add a pass name to make debugging dumps nicerChris Lattner2005-08-021-0/+4
| | | | llvm-svn: 22588
* Fix grammar: it's == "it is".Misha Brukman2005-08-021-1/+1
| | | | llvm-svn: 22587
* Like the comment says, do not insert cast instructions before phi nodesChris Lattner2005-08-021-0/+4
| | | | llvm-svn: 22586
* It's dangerous coding on Mondays.Jeff Cohen2005-08-021-8/+5
| | | | llvm-svn: 22585
* This code was very close, but not quite right. It did not take intoChris Lattner2005-08-021-3/+10
| | | | | | | | consideration the case where a reference in an unreachable block could occur. This fixes Transforms/SimplifyCFG/2005-08-01-PHIUpdateFail.ll, something I ran into while bugpoint'ing another pass. llvm-svn: 22584
* Implement SetInterruptFunction for Windows.Jeff Cohen2005-08-021-1/+25
| | | | llvm-svn: 22582
* add a comment, make a check more lenientChris Lattner2005-08-021-8/+10
| | | | llvm-svn: 22581
* Simplify for loop, clear a per-loop map after processing each loopChris Lattner2005-08-021-1/+2
| | | | llvm-svn: 22580
* Implement sys::SetInterruptFunction on Unix, stub it on win32 so that theChris Lattner2005-08-022-2/+22
| | | | | | build will not fail llvm-svn: 22578
* Add a commentChris Lattner2005-08-021-0/+10
| | | | | | | Make LSR ignore GEP's that have loop variant base values, as we currently cannot codegen them llvm-svn: 22576
* Fix an iterator invalidation problemChris Lattner2005-08-021-1/+3
| | | | llvm-svn: 22575
* 200.sixtrack prints FP numbers with a very strange notation that uses DChris Lattner2005-08-021-3/+21
| | | | | | | instead of E for exponentials (e.g. 1.234D-43). Add support for this notation. llvm-svn: 22574
* update function codes to reflect /su flags that have been added since this ↵Andrew Lenharth2005-08-011-12/+12
| | | | | | was written llvm-svn: 22571
* Fix casts from long to sbyte on ppcChris Lattner2005-08-011-1/+1
| | | | llvm-svn: 22570
* use llabs not absAndrew Lenharth2005-08-011-3/+3
| | | | llvm-svn: 22569
* one cannot allocate a global, until one is done initializing the global pointersAndrew Lenharth2005-08-011-5/+5
| | | | llvm-svn: 22568
* ConstantInt::get only works for arguments < 128.Chris Lattner2005-08-011-2/+6
| | | | | | | | | | SimplifyLibCalls probably has to be audited to make sure it does not make this mistake elsewhere. Also, if this code knows that the type will be unsigned, obviously one arm of this is dead. Reid, can you take a look into this further? llvm-svn: 22566
* Keep tabs and trailing spaces out.Jeff Cohen2005-07-306-58/+59
| | | | llvm-svn: 22565
* Fix VC++ build problems.Jeff Cohen2005-07-301-0/+1
| | | | llvm-svn: 22564
* fix float->long conversions on x86Chris Lattner2005-07-301-3/+10
| | | | llvm-svn: 22563
* fix a typeoChris Lattner2005-07-301-1/+1
| | | | llvm-svn: 22561
* Ack, typoNate Begeman2005-07-301-1/+1
| | | | llvm-svn: 22560
* Change the fp to integer code to not perform 2-byte stores followed byChris Lattner2005-07-301-7/+4
| | | | | | | | | | | | | | | 1 byte loads and other operations. This is bad for store-forwarding on common CPUs. We now do this: fnstcw WORD PTR [%ESP] mov %AX, WORD PTR [%ESP] instead of: fnstcw WORD PTR [%ESP] mov %AL, BYTE PTR [%ESP + 1] llvm-svn: 22559
* Commit a new LoopStrengthReduce pass that can use scalar evolutions andNate Begeman2005-07-301-179/+517
| | | | | | | | target data to decide which loop induction variables to strength reduce and how to do so. This work is mostly by Chris Lattner, with tweaks by me to get it working on some of MultiSource. llvm-svn: 22558
* Break SCEVExpander out of IndVarSimplify into its own .h/.cpp file so thatNate Begeman2005-07-302-238/+106
| | | | | | other passes may use it. llvm-svn: 22557
* Use a custom expander for all FP to int conversions, as the X86 only hasChris Lattner2005-07-301-71/+41
| | | | | | | FP-to-int-in-memory: this exposes the load from the stored slot to the selection dag, allowing it to be folded into other operaions. llvm-svn: 22556
* Allow targets to have custom expanders for FP_TO_*INT conversions whereChris Lattner2005-07-301-3/+9
| | | | | | both the src and dest values are legal llvm-svn: 22555
* support near allocations for the JITAndrew Lenharth2005-07-293-37/+85
| | | | llvm-svn: 22554
* turn off GOT on archs that didn't use it (not that it appeard to harm them ↵Andrew Lenharth2005-07-293-3/+3
| | | | | | much with it on) llvm-svn: 22553
* Implement a FIXME: move a bunch of cruft for handling FP_TO_*INT operationsChris Lattner2005-07-291-27/+17
| | | | | | | that the X86 does not support to the legalizer. This allows it to be better optimized, etc, and will help with SSE support. llvm-svn: 22551
* Don't forget to diddle with the control word when performing an FISTP64.Chris Lattner2005-07-291-8/+36
| | | | llvm-svn: 22550
* Use a custom expander to compile this:Chris Lattner2005-07-291-13/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | long %test4(double %X) { %tmp.1 = cast double %X to long ; <long> [#uses=1] ret long %tmp.1 } to this: _test4: sub %ESP, 12 fld QWORD PTR [%ESP + 16] fistp QWORD PTR [%ESP] mov %EDX, DWORD PTR [%ESP + 4] mov %EAX, DWORD PTR [%ESP] add %ESP, 12 ret instead of this: _test4: sub %ESP, 28 fld QWORD PTR [%ESP + 32] fstp QWORD PTR [%ESP] call ___fixdfdi add %ESP, 28 ret llvm-svn: 22549
* Allow targets to define custom expanders for FP_TO_*INTChris Lattner2005-07-291-0/+18
| | | | llvm-svn: 22548
* allow a target to request that unknown FP_TO_*INT conversion be promoted toChris Lattner2005-07-291-1/+74
| | | | | | a larger integer destination. llvm-svn: 22547
* instead of having all conversions be handled by one case value, and then haveChris Lattner2005-07-281-64/+86
| | | | | | subcases inside, break things out earlier. llvm-svn: 22546
* support bsr, and more .td simplificationAndrew Lenharth2005-07-286-48/+76
| | | | llvm-svn: 22543
* new is not a valid default anywhere, so make this pure virtualAndrew Lenharth2005-07-282-0/+12
| | | | llvm-svn: 22542
* Fix a problem in getDirectoryContents where sub-directory names wereReid Spencer2005-07-281-6/+14
| | | | | | | | | appended to a path string that didn't end in a slash, yielding invalid path names. Path contribute by Nicholas Riley. llvm-svn: 22539
* get lazy JITing working. Some of shootout runs nowAndrew Lenharth2005-07-282-70/+96
| | | | llvm-svn: 22538
* Like constants, globals on some platforms are GOT relative. This means they ↵Andrew Lenharth2005-07-282-14/+78
| | | | | | | | | | | | | | have to be allocated near the GOT, which new doesn't do. So break out the allocate into a new function. Also move GOT index handling into JITResolver. This lets it update the mapping when a Lazy function is JITed. It doesn't managed the table, just the mapping. Note that this is still non-ideal, as any function that takes a function address should also take a GOT index, but that is a lot of changes. The relocation resolve process updates any GOT entry it sees is out of date. llvm-svn: 22537
* Eliminate an extra copy from R1 that Nate noticed on function calls thatChris Lattner2005-07-281-1/+2
| | | | | | have to write arguments to the stack llvm-svn: 22536
* Specify the correct number of operandsChris Lattner2005-07-281-3/+3
| | | | llvm-svn: 22535
* Fold constant adds into loads and stores to frame indices.Nate Begeman2005-07-281-17/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the following code: double %ext(int %A.0__, long %A.1__) { %A_addr = alloca %typedef.DComplex ; <%typedef.DComplex*> [#uses=2] %tmp.1 = cast %typedef.DComplex* %A_addr to int* ; <int*> [#uses=1] store int %A.0__, int* %tmp.1 %tmp.2 = getelementptr %typedef.DComplex* %A_addr, int 0, uint 1 ; <double*> [#uses=2] %tmp.3 = cast double* %tmp.2 to long* ; <long*> [#uses=1] store long %A.1__, long* %tmp.3 %tmp.5 = load double* %tmp.2 ; <double> [#uses=1] ret double %tmp.5 } We now generate: _ext: .LBB_ext_0: ; stw r3, -12(r1) stw r4, -8(r1) stw r5, -4(r1) lfd f1, -8(r1) blr Instead of: _ext: .LBB_ext_0: ; stw r3, -12(r1) addi r2, r1, -12 stw r4, 4(r2) stw r5, 8(r2) lfd f1, 4(r2) blr This also fires hundreds of times on MultiSource. llvm-svn: 22533
* Fix some commentsNate Begeman2005-07-272-4/+2
| | | | llvm-svn: 22530
* Fix debug info to not print out recently freed memory.Chris Lattner2005-07-271-1/+1
| | | | llvm-svn: 22529
OpenPOWER on IntegriCloud