| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Commit a new LoopStrengthReduce pass that can use scalar evolutions and | Nate Begeman | 2005-07-30 | 1 | -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 that | Nate Begeman | 2005-07-30 | 3 | -238/+286 |
| | | | | | | | other passes may use it. llvm-svn: 22557 | ||||
| * | Use a custom expander for all FP to int conversions, as the X86 only has | Chris Lattner | 2005-07-30 | 1 | -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 where | Chris Lattner | 2005-07-30 | 1 | -3/+9 |
| | | | | | | | both the src and dest values are legal llvm-svn: 22555 | ||||
| * | support near allocations for the JIT | Andrew Lenharth | 2005-07-29 | 4 | -38/+88 |
| | | | | | llvm-svn: 22554 | ||||
| * | turn off GOT on archs that didn't use it (not that it appeard to harm them ↵ | Andrew Lenharth | 2005-07-29 | 3 | -3/+3 |
| | | | | | | | much with it on) llvm-svn: 22553 | ||||
| * | Implement a FIXME: move a bunch of cruft for handling FP_TO_*INT operations | Chris Lattner | 2005-07-29 | 1 | -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 Lattner | 2005-07-29 | 1 | -8/+36 |
| | | | | | llvm-svn: 22550 | ||||
| * | Use a custom expander to compile this: | Chris Lattner | 2005-07-29 | 1 | -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_*INT | Chris Lattner | 2005-07-29 | 1 | -0/+18 |
| | | | | | llvm-svn: 22548 | ||||
| * | allow a target to request that unknown FP_TO_*INT conversion be promoted to | Chris Lattner | 2005-07-29 | 1 | -1/+74 |
| | | | | | | | a larger integer destination. llvm-svn: 22547 | ||||
| * | instead of having all conversions be handled by one case value, and then have | Chris Lattner | 2005-07-28 | 1 | -64/+86 |
| | | | | | | | subcases inside, break things out earlier. llvm-svn: 22546 | ||||
| * | New testcase for PR610 | Chris Lattner | 2005-07-28 | 1 | -0/+5 |
| | | | | | llvm-svn: 22545 | ||||
| * | support bsr, and more .td simplification | Andrew Lenharth | 2005-07-28 | 6 | -48/+76 |
| | | | | | llvm-svn: 22543 | ||||
| * | new is not a valid default anywhere, so make this pure virtual | Andrew Lenharth | 2005-07-28 | 3 | -5/+14 |
| | | | | | llvm-svn: 22542 | ||||
| * | Fix a problem in getDirectoryContents where sub-directory names were | Reid Spencer | 2005-07-28 | 1 | -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 now | Andrew Lenharth | 2005-07-28 | 2 | -70/+96 |
| | | | | | llvm-svn: 22538 | ||||
| * | Like constants, globals on some platforms are GOT relative. This means they ↵ | Andrew Lenharth | 2005-07-28 | 3 | -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 that | Chris Lattner | 2005-07-28 | 1 | -1/+2 |
| | | | | | | | have to write arguments to the stack llvm-svn: 22536 | ||||
| * | Specify the correct number of operands | Chris Lattner | 2005-07-28 | 1 | -3/+3 |
| | | | | | llvm-svn: 22535 | ||||
| * | Run the verifier pass after all the other passes rather than before them. | Reid Spencer | 2005-07-28 | 1 | -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 Begeman | 2005-07-28 | 1 | -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 check | Reid Spencer | 2005-07-28 | 1 | -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 Cohen | 2005-07-28 | 1 | -3/+3 |
| | | | | | llvm-svn: 22531 | ||||
| * | Fix some comments | Nate Begeman | 2005-07-27 | 2 | -4/+2 |
| | | | | | llvm-svn: 22530 | ||||
| * | Fix debug info to not print out recently freed memory. | Chris Lattner | 2005-07-27 | 1 | -1/+1 |
| | | | | | llvm-svn: 22529 | ||||
| * | Print symbolic register names in debug dumps | Chris Lattner | 2005-07-27 | 1 | -2/+4 |
| | | | | | llvm-svn: 22528 | ||||
| * | Fix PR608: | Reid Spencer | 2005-07-27 | 3 | -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 Cohen | 2005-07-27 | 67 | -1254/+1254 |
| | | | | | llvm-svn: 22523 | ||||
| * | Implement the optimization for the Red Zone on Darwin. This removes the | Nate Begeman | 2005-07-27 | 2 | -4/+8 |
| | | | | | | | unnecessary SP manipulation in leaf routines that don't need it. llvm-svn: 22522 | ||||
| * | fix some warnings when compiled with 32-bit hosts | Chris Lattner | 2005-07-27 | 1 | -2/+2 |
| | | | | | llvm-svn: 22521 | ||||
| * | Eliminate tabs and trailing spaces. | Jeff Cohen | 2005-07-27 | 64 | -3939/+3939 |
| | | | | | llvm-svn: 22520 | ||||
| * | Testcase for PR607 | Chris Lattner | 2005-07-26 | 1 | -0/+3 |
| | | | | | llvm-svn: 22519 | ||||
| * | add a note about the red zone | Chris Lattner | 2005-07-26 | 1 | -0/+2 |
| | | | | | llvm-svn: 22518 | ||||
| * | Wrap some long lines, fix emission of weak global variables | Chris Lattner | 2005-07-26 | 1 | -8/+9 |
| | | | | | llvm-svn: 22517 | ||||
| * | Update the PPC readme | Nate Begeman | 2005-07-26 | 1 | -6/+4 |
| | | | | | llvm-svn: 22516 | ||||
| * | ConvertibleToGEP always returns 0, remove some old crufty code which | Chris Lattner | 2005-07-26 | 4 | -369/+0 |
| | | | | | | | is actually dead because of this! llvm-svn: 22515 | ||||
| * | fix a warning on 32-bit systems | Chris Lattner | 2005-07-25 | 1 | -1/+1 |
| | | | | | llvm-svn: 22513 | ||||
| * | Fix an optimization put in for accessing static globals. This obviates | Nate Begeman | 2005-07-25 | 1 | -5/+6 |
| | | | | | | | the need to build PIC. llvm-svn: 22512 | ||||
| * | Get rid of bash specific syntax for variable dereferencing, replacing it | Reid Spencer | 2005-07-25 | 1 | -22/+22 |
| | | | | | | | with the more crufty (but more widely available) "eval" command. llvm-svn: 22509 | ||||
| * | fix compile error | Andrew Lenharth | 2005-07-23 | 1 | -1/+1 |
| | | | | | llvm-svn: 22508 | ||||
| * | PowerPC no-pic code is not quite ready for prime-time | Chris Lattner | 2005-07-22 | 1 | -0/+1 |
| | | | | | llvm-svn: 22507 | ||||
| * | No, really, it's an Alpha! And you probably thought it was a PowerPC. | Misha Brukman | 2005-07-22 | 1 | -1/+1 |
| | | | | | llvm-svn: 22506 | ||||
| * | Handle more imm forms, and load small negative i32 constants without hitting ↵ | Andrew Lenharth | 2005-07-22 | 1 | -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 there | Andrew Lenharth | 2005-07-22 | 1 | -1/+1 |
| | | | | | llvm-svn: 22504 | ||||
| * | make sure we always handle small negatives well | Andrew Lenharth | 2005-07-22 | 1 | -0/+10 |
| | | | | | llvm-svn: 22503 | ||||
| * | finally found the gcc defined constants | Andrew Lenharth | 2005-07-22 | 2 | -2/+2 |
| | | | | | llvm-svn: 22502 | ||||
| * | Alpha has JIT | Andrew Lenharth | 2005-07-22 | 3 | -2/+14 |
| | | | | | llvm-svn: 22501 | ||||
| * | Alpha JIT (beta) | Andrew Lenharth | 2005-07-22 | 9 | -3/+673 |
| | | | | | llvm-svn: 22500 | ||||
| * | simpilfy instruction encoding (and make the lines way shorter, aka Misha ↵ | Andrew Lenharth | 2005-07-22 | 3 | -223/+281 |
| | | | | | | | happification) llvm-svn: 22499 | ||||

