summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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-303-238/+286
| | | | | | 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-294-38/+88
| | | | 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
* New testcase for PR610Chris Lattner2005-07-281-0/+5
| | | | llvm-svn: 22545
* 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-283-5/+14
| | | | 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-283-14/+84
| | | | | | | | | | | | | | 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
* Run the verifier pass after all the other passes rather than before them.Reid Spencer2005-07-281-5/+4
| | | | | | | This catches mistakes in the passes rather than just verifying the bytecode input to llc. llvm-svn: 22534
* 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
* Make the verifier pass run (in debug mode) in llc. This adds a sanity checkReid Spencer2005-07-281-0/+29
| | | | | | | to llc when debugging. Also allow other passes to be run from llc. Patch contributed by Michael McCracken. llvm-svn: 22532
* Please do not reintroduce tabs.Jeff Cohen2005-07-281-3/+3
| | | | llvm-svn: 22531
* 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
* Print symbolic register names in debug dumpsChris Lattner2005-07-271-2/+4
| | | | llvm-svn: 22528
* Fix PR608:Reid Spencer2005-07-273-5/+5
| | | | | | | Previously the script assumed the version number was the last field, now it assumes it is the first sequence of digits. llvm-svn: 22527
* Eliminate all remaining tabs and trailing spaces.Jeff Cohen2005-07-2767-1254/+1254
| | | | llvm-svn: 22523
* Implement the optimization for the Red Zone on Darwin. This removes theNate Begeman2005-07-272-4/+8
| | | | | | unnecessary SP manipulation in leaf routines that don't need it. llvm-svn: 22522
* fix some warnings when compiled with 32-bit hostsChris Lattner2005-07-271-2/+2
| | | | llvm-svn: 22521
* Eliminate tabs and trailing spaces.Jeff Cohen2005-07-2764-3939/+3939
| | | | llvm-svn: 22520
* Testcase for PR607Chris Lattner2005-07-261-0/+3
| | | | llvm-svn: 22519
* add a note about the red zoneChris Lattner2005-07-261-0/+2
| | | | llvm-svn: 22518
* Wrap some long lines, fix emission of weak global variablesChris Lattner2005-07-261-8/+9
| | | | llvm-svn: 22517
* Update the PPC readmeNate Begeman2005-07-261-6/+4
| | | | llvm-svn: 22516
* ConvertibleToGEP always returns 0, remove some old crufty code whichChris Lattner2005-07-264-369/+0
| | | | | | is actually dead because of this! llvm-svn: 22515
* fix a warning on 32-bit systemsChris Lattner2005-07-251-1/+1
| | | | llvm-svn: 22513
* Fix an optimization put in for accessing static globals. This obviatesNate Begeman2005-07-251-5/+6
| | | | | | the need to build PIC. llvm-svn: 22512
* Get rid of bash specific syntax for variable dereferencing, replacing itReid Spencer2005-07-251-22/+22
| | | | | | with the more crufty (but more widely available) "eval" command. llvm-svn: 22509
* fix compile errorAndrew Lenharth2005-07-231-1/+1
| | | | llvm-svn: 22508
* PowerPC no-pic code is not quite ready for prime-timeChris Lattner2005-07-221-0/+1
| | | | llvm-svn: 22507
* No, really, it's an Alpha! And you probably thought it was a PowerPC.Misha Brukman2005-07-221-1/+1
| | | | llvm-svn: 22506
* Handle more imm forms, and load small negative i32 constants without hitting ↵Andrew Lenharth2005-07-221-2/+45
| | | | | | memory (should do the same for arbitrary zero extended small negative constants) llvm-svn: 22505
* I know PowerPC wishes it could be alpha, but it cannot. so thereAndrew Lenharth2005-07-221-1/+1
| | | | llvm-svn: 22504
* make sure we always handle small negatives wellAndrew Lenharth2005-07-221-0/+10
| | | | llvm-svn: 22503
* finally found the gcc defined constantsAndrew Lenharth2005-07-222-2/+2
| | | | llvm-svn: 22502
* Alpha has JITAndrew Lenharth2005-07-223-2/+14
| | | | llvm-svn: 22501
OpenPOWER on IntegriCloud