summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix PR2748. Avoid coalescing physical register with virtual register which ↵Evan Cheng2008-09-112-0/+70
| | | | | | | | | | | would create illegal extract_subreg. e.g. vr1024 = extract_subreg vr1025, 1 ... vr1024 = mov8rr AH If vr1024 is coalesced with AH, the extract_subreg is now illegal since AH does not have a super-reg whose sub-register 1 is AH. llvm-svn: 56118
* Fix a bug in ANY_EXTEND handling that was breaking 403.gcc on X86-64 in fast ↵Owen Anderson2008-09-111-2/+7
| | | | | | isel. llvm-svn: 56117
* Fix comment typo.Duncan Sands2008-09-111-1/+1
| | | | llvm-svn: 56116
* Intrinsics don't touch internal global variablesDuncan Sands2008-09-111-2/+4
| | | | | | | (unless passed one via a parameter), even if they are IntrWriteMem. llvm-svn: 56115
* Fix a copy+paste bug that Duncan spotted. For severalDan Gohman2008-09-111-1/+1
| | | | | | | cases it was still getting lucky and detecting overflow but it was clearly incorrect. llvm-svn: 56113
* Fix PR2783 - coalescer bug. Missing a TargetRegisterInfo::isVirtualRegister ↵Evan Cheng2008-09-111-1/+2
| | | | | | check. llvm-svn: 56112
* Intrinsics don't read these kinds of globalDuncan Sands2008-09-111-5/+7
| | | | | | variables. llvm-svn: 56105
* Fix a 80 column violation.Evan Cheng2008-09-111-1/+2
| | | | llvm-svn: 56097
* The version of AtomicSDNode::AtomicSDNode used (only) forDale Johannesen2008-09-111-6/+6
| | | | | | | | | | | | | cmp-and-swap reversed the Cmp and Swap arguments; comments make it clear this is unintentional. Unfortunately, the x86 BE had a compensating reversal, which is removed here. PPC is OK. From inspection of the Alpha code I think it is OK, but if somebody has that platform please check it out. I cannot test on that platform. llvm-svn: 56091
* If ISD::ANY_EXTEND fails, try ISD::ZERO_EXTEND and ISD::SIGN_EXTEND before ↵Owen Anderson2008-09-111-0/+7
| | | | | | | | giving up. This fixes 445.gobmk on X86-64 in fast isel. llvm-svn: 56088
* Succumb utterly to compatibility and implementDale Johannesen2008-09-111-4/+4
| | | | | | | __sync_fetch_and_nand as ANDC, even though that's not what nand means. llvm-svn: 56087
* Propagate subreg index when promoting a load to a copy.Evan Cheng2008-09-111-0/+7
| | | | llvm-svn: 56085
* In my analysis for r56076 I missed the case where the originalDan Gohman2008-09-111-1/+2
| | | | | | multiplication overflows. llvm-svn: 56082
* Fix an icmp+sdiv optimization to check for and handle an overflowDan Gohman2008-09-101-1/+16
| | | | | | condition. This fixes PR2740. llvm-svn: 56076
* X86FastISel support for double->float and float->double casts.Dan Gohman2008-09-101-0/+43
| | | | llvm-svn: 56070
* FastISel support for i1 PHI nodes.Dan Gohman2008-09-101-2/+7
| | | | llvm-svn: 56069
* FastISel support for i1 constants.Dan Gohman2008-09-101-2/+10
| | | | llvm-svn: 56068
* Fix a bug in the coalescer where it didn't check if a live interval existed ↵Owen Anderson2008-09-101-1/+1
| | | | | | | | before trying to manipulate it. This was exposed by fast isel's handling of shifts on X86-64. With this, FreeBench/pcompress2 passes on X86-64 in fast isel. llvm-svn: 56067
* Add X86FastISel support for static allocas, and refencesDan Gohman2008-09-105-77/+105
| | | | | | | to static allocas. As part of this change, refactor the address mode code for laods and stores. llvm-svn: 56066
* Fix PR2664 - spiller GetRegForReload wasn't respecting sub-register indices ↵Evan Cheng2008-09-101-2/+4
| | | | | | on machine operands. llvm-svn: 56065
* Fix a fastcc + sret bug. If fastcc and sret, callee doesn't need to pop the ↵Evan Cheng2008-09-101-2/+4
| | | | | | hidden struct ptr; Re-enable fastcc. llvm-svn: 56061
* Handle new intrinsics with vector arguments.Dale Johannesen2008-09-101-0/+5
| | | | | | Patch by Paul Redmond. llvm-svn: 56059
* Add a break statement that I accidentally deleted whenDan Gohman2008-09-101-0/+1
| | | | | | | I shuffled the fast-isel command-line options around. This fixes a bunch of fast-isel failures. llvm-svn: 56057
* fix white spaces.Devang Patel2008-09-101-5/+5
| | | | llvm-svn: 56056
* Fix name.Duncan Sands2008-09-101-1/+1
| | | | llvm-svn: 56055
* Add trampoline support for the new FastCC callingDuncan Sands2008-09-101-0/+1
| | | | | | | convention (not related to recent Ada testsuite failures). llvm-svn: 56054
* Turn off the new FastCC for the moment. It causesDuncan Sands2008-09-101-2/+0
| | | | | | | a slew of Ada testsuite failures on x86-32 linux. Seems to be related to the use of float. llvm-svn: 56053
* Remove unnecessary bit-wise AND from the limited precision work.Bill Wendling2008-09-101-6/+4
| | | | llvm-svn: 56049
* Fix 80 col violation.Daniel Dunbar2008-09-101-1/+2
| | | | llvm-svn: 56048
* Fix a warning about comparing signed and unsigned values.Dan Gohman2008-09-101-1/+1
| | | | llvm-svn: 56040
* Fix typo.Evan Cheng2008-09-101-2/+2
| | | | llvm-svn: 56037
* Check that both operands are f32 before attempting to lower.Bill Wendling2008-09-101-0/+1
| | | | llvm-svn: 56036
* Implement "visitPow". This is mainly used to see if we have a pow() call of thisBill Wendling2008-09-102-4/+146
| | | | | | | | | | | form: powf(10.0f, x); If this is the case, and also we want limited precision floating-point calculations, then lower to do the limited-precision stuff. llvm-svn: 56035
* A few more places where FPOW is being ignored.Evan Cheng2008-09-091-7/+13
| | | | llvm-svn: 56032
* Change -fast-isel-no-abort to -fast-isel-abort, which now defaultsDan Gohman2008-09-091-7/+12
| | | | | | | | to being off by default. Also, add assertion checks to check that the various fast-isel-related command-line options are only used when -fast-isel itself is enabled. llvm-svn: 56029
* Legalizer was missing code that expand fpow to a libcall.Evan Cheng2008-09-091-10/+12
| | | | llvm-svn: 56028
* Adding 6-, 12-, and 18-bit limited-precision floating-point support for exp2Bill Wendling2008-09-091-26/+111
| | | | | | function. llvm-svn: 56025
* Move the uglier parts of deciding not to emit aDale Johannesen2008-09-092-15/+25
| | | | | | | | | UsedDirective for some symbols in llvm.used into Darwin-specific code. I've decided LessPrivateGlobal is potentially a useful abstraction and left it in the target-independent area, with improved comment. llvm-svn: 56024
* Add support for 6-, 12-, and 18-bit limited precision calculations of exp forBill Wendling2008-09-091-7/+134
| | | | | | floating-point numbers. llvm-svn: 56023
* Add a new option, -fast-isel-verbose, that can be used withDan Gohman2008-09-091-15/+21
| | | | | | | -fast-isel-no-abort to get a dump of all unhandled instructions, without an abort. llvm-svn: 56021
* Clear preference when it no longer makes sense.Evan Cheng2008-09-091-0/+8
| | | | llvm-svn: 56019
* if loop induction variable is always sign or zero extended then Devang Patel2008-09-091-1/+118
| | | | | | extend the type of induction variable. llvm-svn: 56017
* Add assertion check.Devang Patel2008-09-091-1/+1
| | | | llvm-svn: 56016
* fix overflow check.Devang Patel2008-09-091-2/+1
| | | | llvm-svn: 56011
* Clean this up, based on Evan's suggestions.Owen Anderson2008-09-091-2/+2
| | | | llvm-svn: 56009
* - Add support for 6-, 12-, and 18-bit limited precision floating-point "log"Bill Wendling2008-09-091-112/+216
| | | | | | | values. - Refactored some of the code. llvm-svn: 56008
* Fix PR2757. Ignore liveinterval register allocation preference if the ↵Evan Cheng2008-09-091-1/+1
| | | | | | preference register is not in the right register class. This can happen due to sub-register coalescing. llvm-svn: 56006
* Make safer variant of alias resolution routine to be defaultAnton Korobeynikov2008-09-097-10/+9
| | | | llvm-svn: 56005
* Simplify this some more. No functionality change.Duncan Sands2008-09-091-15/+8
| | | | llvm-svn: 56003
* Resolve aliases, when possibleAnton Korobeynikov2008-09-091-0/+22
| | | | llvm-svn: 56001
OpenPOWER on IntegriCloud