summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Move the include of MachineLocation.h into MachineModuleInfo.hDan Gohman2008-10-161-1/+0
| | | | | | | | because it declares a std::vector<MachineMove>, and strict concept checking requires the definition of MachineMove to be available. llvm-svn: 57617
* Fix a subtle bug in DeadMachineInstructionElim's livenessDan Gohman2008-10-161-1/+4
| | | | | | | computation. A def of a register doesn't necessarily kill live super-registers. llvm-svn: 57614
* Fix the predicate for memop64 to be a regular load, not justDan Gohman2008-10-161-1/+1
| | | | | | an unindexed load. llvm-svn: 57612
* Teach instcombine's visitLoad to scan back several instructionsDan Gohman2008-10-151-10/+46
| | | | | | | | | | | | | | to find opportunities for store-to-load forwarding or load CSE, in the same way that visitStore scans back to do DSE. Also, define a new helper function for testing whether the addresses of two memory accesses are known to have the same value, and use it in both visitStore and visitLoad. These two changes allow instcombine to eliminate loads in code produced by front-ends that frequently emit obviously redundant addressing for memory references. llvm-svn: 57608
* Correct the name of isTrapping in comments.Dan Gohman2008-10-151-1/+1
| | | | llvm-svn: 57606
* Also properly handle linking of strong alias and weak globalAnton Korobeynikov2008-10-151-25/+39
| | | | llvm-svn: 57595
* Properly handle linking of strong alias with weak function, this fixes PR2883Anton Korobeynikov2008-10-151-1/+1
| | | | llvm-svn: 57594
* Fix a missing space after the return type in invoke statements.Dan Gohman2008-10-151-3/+3
| | | | | | This fixes PR2894. llvm-svn: 57589
* move PR1941 here.Chris Lattner2008-10-151-0/+14
| | | | llvm-svn: 57586
* move PR1604 here.Chris Lattner2008-10-151-0/+17
| | | | llvm-svn: 57582
* move PR1488 into this file.Chris Lattner2008-10-151-0/+33
| | | | llvm-svn: 57579
* regenerateNuno Lopes2008-10-153-337/+339
| | | | llvm-svn: 57577
* fix memleak in GetForwardRefForGlobal()Nuno Lopes2008-10-151-0/+1
| | | | llvm-svn: 57576
* regenerateNuno Lopes2008-10-153-339/+343
| | | | llvm-svn: 57575
* fix memleak in getTypeVal()Nuno Lopes2008-10-151-1/+3
| | | | llvm-svn: 57574
* regenerateNuno Lopes2008-10-153-342/+344
| | | | llvm-svn: 57573
* fix memleak in ResolveTypeTo()Nuno Lopes2008-10-151-0/+1
| | | | llvm-svn: 57572
* Now that predicates can be composed, simplify several ofDan Gohman2008-10-153-205/+135
| | | | | | | | | | | | | the predicates by extending simple predicates to create more complex predicates instead of duplicating the logic for the simple predicates. This doesn't reduce much redundancy in DAGISelEmitter.cpp's generated source yet; that will require improvements to DAGISelEmitter.cpp's instruction sorting, to make it more effectively group nodes with similar predicates together. llvm-svn: 57565
* regenerateChris Lattner2008-10-152-1483/+1521
| | | | llvm-svn: 57561
* Fix the .ll grammar rules to allow any type before an 'i32', not just anChris Lattner2008-10-151-32/+49
| | | | | | | integer type. Invalid things like 'float 42' are now rejected by the semantic analysis in the productions not the parser. This fixes PR2733. llvm-svn: 57560
* regenerateChris Lattner2008-10-153-1467/+1446
| | | | llvm-svn: 57559
* Eliminate the "IntType ::= INTTYPE" production, just use Chris Lattner2008-10-151-10/+9
| | | | | | INTTYPE everywhere. llvm-svn: 57558
* add a noteChris Lattner2008-10-151-0/+30
| | | | llvm-svn: 57557
* add support for folding immediates into stores when they Chris Lattner2008-10-151-20/+20
| | | | | | | are due to argument passing in calls. This is significant because it hits all immediate arguments to calls on x86-32. llvm-svn: 57556
* fold immediates into stores in simple cases, this produces diffs like Chris Lattner2008-10-151-30/+46
| | | | | | | | | | this: - movl $0, %eax - movl %eax, _yy_n_chars + movl $0, _yy_n_chars llvm-svn: 57555
* fold compare of null pointer into compare with 0.Chris Lattner2008-10-151-0/+4
| | | | llvm-svn: 57553
* Some minor cleanups:Chris Lattner2008-10-151-40/+30
| | | | | | | | | | | | | 1. Compute action in X86SelectSelect based on MVT instead of type. 2. Use TLI.getValueType(..) instead of MVT::getVT(..) because the former handles pointers and the later doesn't. 3. Don't pass TLI into isTypeLegal, since it already has access to it as an ivar. #2 gives fast isel some minor new functionality: handling load/stores of pointers. llvm-svn: 57552
* Use switch on VT instead of Type* comparisons.Chris Lattner2008-10-151-19/+18
| | | | llvm-svn: 57551
* Use X86FastEmitCompare for FCMP_OEQ and FCMP_UNE: it doesn'tChris Lattner2008-10-151-17/+8
| | | | | | change the generated code, but makes the code simpler. llvm-svn: 57550
* refactor compare emission out into a new X86FastEmitCompare method,Chris Lattner2008-10-151-29/+49
| | | | | | | | which makes it easy to share the compare/imm folding logic with 'setcc'. This shaves a bunch of instructions off the common select case, which happens a lot in llvm-gcc. llvm-svn: 57549
* Fold immediates into compares when possible, producing "cmp $4, %eax" instead ofChris Lattner2008-10-151-3/+36
| | | | | | loading 4 into a register and then doing the compare. llvm-svn: 57548
* more minor refactoring of X86SelectBranch, no functionality change.Chris Lattner2008-10-151-13/+11
| | | | llvm-svn: 57547
* factor buildmi calls in X86SelectBranchChris Lattner2008-10-151-89/+30
| | | | llvm-svn: 57546
* factor some more BuildMI's in X86SelectCmpChris Lattner2008-10-151-92/+30
| | | | llvm-svn: 57545
* factor some BuildMI calls, no functionality change.Chris Lattner2008-10-151-46/+56
| | | | llvm-svn: 57544
* Adjust whitespace in debug messages to be more consistentDan Gohman2008-10-152-5/+5
| | | | | | with other debug messages. llvm-svn: 57543
* - Add target lowering hooks that specify which setcc conditions are illegal,Evan Cheng2008-10-153-26/+66
| | | | | | | | | | | i.e. conditions that cannot be checked with a single instruction. For example, SETONE and SETUEQ on x86. - Teach legalizer to implement *illegal* setcc as a and / or of a number of legal setcc nodes. For now, only implement FP conditions. e.g. SETONE is implemented as SETO & SETNE, SETUEQ is SETUO | SETEQ. - Move x86 target over. llvm-svn: 57542
* FastISel support for exception-handling constructs.Dan Gohman2008-10-145-57/+159
| | | | | | | | | - Move the EH landing-pad code and adjust it so that it works with FastISel as well as with SDISel. - Add FastISel support for @llvm.eh.exception and @llvm.eh.selector. llvm-svn: 57539
* Prevent assert when using '"' in names (via hexadecimal).Daniel Dunbar2008-10-141-2/+1
| | | | | | Update LangRef to mention \xx quoting in names. llvm-svn: 57538
* Change getLLVMName to use raw_ostream & PrintLLVMName.Daniel Dunbar2008-10-141-59/+15
| | | | | | | | - Avoids duplicated quotification code. - Remove QuoteNameIfNeeded. - No functionality change. llvm-svn: 57537
* Accept -march=i586, because gcc does (a synonymDale Johannesen2008-10-141-0/+1
| | | | | | | | for pentium). Fixes gcc.target/i386/20000720-1.c gcc.target/i386/pr26826.c llvm-svn: 57528
* Rename LoadX to LoadExt.Evan Cheng2008-10-1412-51/+51
| | | | llvm-svn: 57526
* Update ARM Insn encoding to get endian-ness to match the documentation (31-0 ↵Jim Grosbach2008-10-142-61/+57
| | | | | | left to right) llvm-svn: 57524
* Fix command-line option printing to print two spaces where needed,Dan Gohman2008-10-1425-40/+40
| | | | | | | | | instead of requiring all "short description" strings to begin with two spaces. This makes these strings less mysterious, and it fixes some cases where short description strings mistakenly did not begin with two spaces. llvm-svn: 57521
* Combine (fcmp cc0 x, y) | (fcmp cc1 x, y) into a single fcmp when possible.Evan Cheng2008-10-141-1/+41
| | | | llvm-svn: 57515
* - Somehow I forgot about one / une.Evan Cheng2008-10-141-9/+21
| | | | | | | - Renumber fcmp predicates to match their icmp counterparts. - Try swapping operands to expose more optimization opportunities. llvm-svn: 57513
* Fix indentation.Evan Cheng2008-10-141-2/+2
| | | | llvm-svn: 57508
* Optimize anding of two fcmp into a single fcmp if the operands are the same. ↵Evan Cheng2008-10-141-3/+111
| | | | | | | | | e.g. uno && ueq -> ueq ord && olt -> olt ord && ueq -> oeq llvm-svn: 57507
* little optimization: reuse getPointerToGlobalIfAvailable(CGV) value in ↵Nuno Lopes2008-10-141-1/+1
| | | | | | emitGlobals() llvm-svn: 57484
* When doing the very-late shift-and address-mode optimization,Dan Gohman2008-10-131-0/+3
| | | | | | | | | | | | | | create a new DAG node to represent the new shift to keep the DAG consistent, even though it'll almost always be folded into the address. If a user of the resulting address has multiple uses, the nodes may get revisited by a later MatchAddress call, in which case DAG inconsistencies do matter. This fixes PR2849. llvm-svn: 57465
OpenPOWER on IntegriCloud