summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Remove r108639 now that it is handled by InstCombine instead.Owen Anderson2010-07-191-13/+0
| | | | llvm-svn: 108688
* Reimplement r108639 in InstCombine rather than DAGCombine.Owen Anderson2010-07-191-0/+26
| | | | llvm-svn: 108687
* X86-64: Mark WINCALL and more tail call instructions as code gen only.Daniel Dunbar2010-07-191-2/+3
| | | | llvm-svn: 108685
* X86: Mark some tail call pseduo instruction as code gen only.Daniel Dunbar2010-07-191-1/+2
| | | | llvm-svn: 108684
* X86: Mark In32/64BitMode on LEAVE[64] and SYSEXIT[64].Daniel Dunbar2010-07-192-4/+4
| | | | llvm-svn: 108683
* _[A-Z] identifiers are reserved for the implementation.Michael J. Spencer2010-07-191-1/+1
| | | | llvm-svn: 108682
* MC/X86: We now match instructions like "incl %eax" correctly for the arch we areDaniel Dunbar2010-07-192-54/+0
| | | | | | assembling; remove crufty custom cleanup code. llvm-svn: 108681
* X86: Mark MOV.*_{TC,NOREX} instruction as code gen only, they aren't real.Daniel Dunbar2010-07-192-0/+6
| | | | llvm-svn: 108680
* X86: MOV8o8a, MOV8ao8, etc. are only valid in 32-bit mode.Daniel Dunbar2010-07-191-6/+12
| | | | llvm-svn: 108679
* MC: Add WinCOFFStreamer implementation and merge common code from MachOMichael J. Spencer2010-07-193-81/+239
| | | | | | | | into MCObjectStreamer. Origonal Windows COFF implementation by Nathan Jedffords. llvm-svn: 108678
* TblGen/AsmMatcher: Add support for honoring instruction Requires<[]> ↵Daniel Dunbar2010-07-192-5/+13
| | | | | | | | attributes as part of the matcher. - Currently includes a hack to limit ourselves to "In32BitMode" and "In64BitMode", because we don't have the other infrastructure to properly deal with setting SSE, etc. features on X86. llvm-svn: 108677
* Make .align parse correctly on platforms where .align is measured in bytes.Eli Friedman2010-07-191-5/+8
| | | | llvm-svn: 108674
* Target: Give the TargetAsmParser access to the TargetMachine.Daniel Dunbar2010-07-193-9/+11
| | | | | | - Unfortunate, but necessary for now to handle subtarget instruction matching. Eventually we should factor out the lower level target machine information so we don't need to do this. llvm-svn: 108664
* MC/AsmParser: Stop playing unsafe member function pointer calls, this isn'tDaniel Dunbar2010-07-183-187/+93
| | | | | | | | portable enough. - Downside is we now double dispatch through a stub function, but this isn't performance critical. llvm-svn: 108661
* MC/AsmParser: Fix .abort and .secure_log_unique to accept arbitrary tokenDaniel Dunbar2010-07-182-25/+26
| | | | | | sequences, not just strings. llvm-svn: 108655
* MC/AsmParser: Add macro argument substitution support.Daniel Dunbar2010-07-181-8/+85
| | | | llvm-svn: 108654
* MC/AsmParser: Add basic support for macro instantiation.Daniel Dunbar2010-07-181-20/+112
| | | | llvm-svn: 108653
* MC/AsmParser: Add basic parsing support for .macro definitions.Daniel Dunbar2010-07-181-0/+96
| | | | llvm-svn: 108652
* MC/AsmParser: Add .macros_{off,on} support, not that makes sense since we don'tDaniel Dunbar2010-07-181-5/+37
| | | | | | support macros. llvm-svn: 108649
* MC/AsmParser: Use Error() instead of calling PrintMessage() directly.Daniel Dunbar2010-07-181-4/+2
| | | | llvm-svn: 108648
* MC/AsmParser: Fix TokError() to accept a Twine.Daniel Dunbar2010-07-182-1/+2
| | | | llvm-svn: 108647
* MC/AsmParser: Hide the AsmParser implementation.Daniel Dunbar2010-07-181-3/+117
| | | | llvm-svn: 108646
* MC: Move several clients to using AsmParser constructor function.Daniel Dunbar2010-07-181-6/+7
| | | | llvm-svn: 108645
* Fix struct/class mismatchDouglas Gregor2010-07-181-1/+1
| | | | llvm-svn: 108642
* Add a DAGCombine xform to fold away redundant float->double->float ↵Owen Anderson2010-07-181-0/+13
| | | | | | | | | | conversions around sqrt instructions. I am assured by people more knowledgeable than me that there are no rounding issues in eliminating this. This fixed <rdar://problem/8197504>. llvm-svn: 108639
* Added -pbqp-pre-coalescing flag to PBQP. If enabled this will cause PBQP to ↵Lang Hames2010-07-181-0/+8
| | | | | | | | | | require LoopSplitter be run prior to register allocation. Entirely for testing purposes at the moment. llvm-svn: 108634
* fullStopTag cannot happen here, it is handled aboveGabor Greif2010-07-171-3/+1
| | | | llvm-svn: 108631
* Use isPrologLabel() instead of checking the opcode directly.Bill Wendling2010-07-171-1/+1
| | | | llvm-svn: 108628
* the stackifier is global!Chris Lattner2010-07-171-2/+2
| | | | llvm-svn: 108626
* doxygenify some comments.Chris Lattner2010-07-171-19/+19
| | | | llvm-svn: 108625
* update CMakeLists.txtZhongxing Xu2010-07-171-0/+1
| | | | llvm-svn: 108620
* Removed unused inRange variable.Lang Hames2010-07-171-2/+0
| | | | llvm-svn: 108618
* LoopSplitter - intended to split live intervals over loop boundaries.Lang Hames2010-07-172-0/+918
| | | | | | | | Still very much under development. Comments and fixes will be forthcoming. (This commit includes some small tweaks to LiveIntervals & LoopInfo to support the splitter) llvm-svn: 108615
* Another attempt at getting the clang self-host to like my instcombine patch.Owen Anderson2010-07-171-0/+32
| | | | llvm-svn: 108614
* Iterating over sets of pointers in a heuristic was a bad idea. SwitchingLang Hames2010-07-172-8/+12
| | | | | | | | | | | any command line paramater changed the register allocation produced by PBQP. Turns out variety is not the spice of life. Fixed some comparators, added others. All good now. llvm-svn: 108613
* Start of .sleb128/.uleb128 parsing support.Eli Friedman2010-07-171-0/+26
| | | | llvm-svn: 108612
* Fix PR7658, a problem where type refinement can triggerChris Lattner2010-07-172-26/+27
| | | | | | | | constant replacement which was botching its handling of types. Use of getType() instead of getRawType() was causing the type map in constant folding to be updated wrong. llvm-svn: 108610
* Work-in-progress parsing for ELF .section directive.Eli Friedman2010-07-171-5/+113
| | | | llvm-svn: 108609
* Add combiner patterns to more effectively utilize the BFI (bitfield insert)Jim Grosbach2010-07-172-37/+68
| | | | | | | instruction for non-constant operands. This includes the case referenced in the README.txt regarding a bitfield copy. llvm-svn: 108608
* Add support for parsing .size directives for ELF.Eli Friedman2010-07-171-0/+24
| | | | llvm-svn: 108606
* MC/AsmParser: Lift Run() and TargetParser to base class.Daniel Dunbar2010-07-172-8/+16
| | | | | | Also, add constructor function for creating AsmParser instances. llvm-svn: 108604
* add BFI to getTargetNodeName()Jim Grosbach2010-07-171-0/+1
| | | | llvm-svn: 108603
* Fix logic think-oJim Grosbach2010-07-171-1/+1
| | | | llvm-svn: 108601
* Remove unnecessary check that was subsumed into canRealignStack.Eric Christopher2010-07-172-6/+4
| | | | llvm-svn: 108588
* Propagate alloca alignment information via variable size object frameEric Christopher2010-07-171-1/+1
| | | | | | | | information. No functional change yet. llvm-svn: 108583
* Make more explicit and add some currently disabled error messages forEric Christopher2010-07-171-4/+18
| | | | | | | | | stack realignment on ARM. Also check for function attributes as we do on X86 as well as make explicit that we're checking can as well as needs in this function. llvm-svn: 108582
* Make comment a bit more clear as well as return statement sinceEric Christopher2010-07-171-2/+2
| | | | | | needsStackRealignment is currently checking the can conditions as well. llvm-svn: 108581
* Add basic support to code-gen the ARM/Thumb2 bit-field insert (BFI) instructionJim Grosbach2010-07-166-36/+104
| | | | | | | and a combine pattern to use it for setting a bit-field to a constant value. More to come for non-constant stores. llvm-svn: 108570
* Fix whitespace.Dan Gohman2010-07-161-2/+2
| | | | llvm-svn: 108569
* Consider this function:Bill Wendling2010-07-161-2/+12
| | | | | | | | | | | | | | | | | | | | | | void foo() { __builtin_unreachable(); } It will output the following on Darwin X86: _func1: Leh_func_begin0: pushq %rbp Ltmp0: movq %rsp, %rbp Ltmp1: Leh_func_end0: This prolog adds a new Call Frame Information (CFI) row to the FDE with an address that is not within the address range of the code it describes -- part is equal to the end of the function -- and therefore results in an invalid EH frame. If we emit a nop in this situation, then the CFI row is now within the address range. llvm-svn: 108568
OpenPOWER on IntegriCloud