summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert r134047 while investigating a llvm-gcc-i386-linux-selfhostJakob Stoklund Olesen2011-06-293-291/+138
| | | | | | miscompile. llvm-svn: 134053
* Sink SubtargetFeature and TargetInstrItineraries (renamed ↵Evan Cheng2011-06-2923-43/+39
| | | | | | MCInstrItineraries) into MC. llvm-svn: 134049
* Trim includeEvan Cheng2011-06-291-1/+0
| | | | llvm-svn: 134048
* Rewrite RAGreedy::splitAroundRegion, now with cool ASCII art.Jakob Stoklund Olesen2011-06-293-138/+291
| | | | | | | | | | | | | | | | | | | | This function has to deal with a lot of special cases, and the old version got it wrong sometimes. In particular, it would sometimes leave multiple uses in the stack interval in a single block. That causes bad code with multiple reloads in the same basic block. The new version handles block entry and exit in a single pass. It first eliminates all the easy cases, and then goes on to create a local interval for the blocks with difficult interference. Previously, we would only create the local interval for completely isolated blocks. It can happen that the stack interval becomes completely empty because we could allocate a register in all edge bundles, and the new local intervals deal with the interference. The empty stack interval is harmless, but we need to remove a SplitKit assertion that checks for empty intervals. llvm-svn: 134047
* build/Darwin: Fix epic typo fail.Daniel Dunbar2011-06-281-1/+1
| | | | llvm-svn: 134036
* Fix a CMake warning, following up to r134008.NAKAMURA Takumi2011-06-281-1/+1
| | | | llvm-svn: 134033
* Unbreak every backend.Evan Cheng2011-06-281-1/+2
| | | | llvm-svn: 134031
* Move CallFrameSetupOpcode and CallFrameDestroyOpcode to TargetInstrInfo.Evan Cheng2011-06-2832-86/+86
| | | | llvm-svn: 134030
* Hide more details in tablegen generated MCRegisterInfo ctor function.Evan Cheng2011-06-2814-32/+20
| | | | llvm-svn: 134027
* Add MCInstrInfo registeration machinery.Evan Cheng2011-06-283-1/+77
| | | | llvm-svn: 134026
* Merge XXXGenRegisterNames.inc into XXXGenRegisterInfo.incEvan Cheng2011-06-2867-120/+165
| | | | llvm-svn: 134024
* - Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo andEvan Cheng2011-06-2877-875/+903
| | | | | | | | sink them into MC layer. - Added MCInstrInfo, which captures the tablegen generated static data. Chang TargetInstrInfo so it's based off MCInstrInfo. llvm-svn: 134021
* Clean up the handling of the x87 fp stack to make it more robust.Jakob Stoklund Olesen2011-06-287-227/+531
| | | | | | | | | | | | | | | | | | | | Drop the FpMov instructions, use plain COPY instead. Drop the FpSET/GET instruction for accessing fixed stack positions. Instead use normal COPY to/from ST registers around inline assembly, and provide a single new FpPOP_RETVAL instruction that can access the return value(s) from a call. This is still necessary since you cannot tell from the CALL instruction alone if it returns anything on the FP stack. Teach fast isel to use this. This provides a much more robust way of handling fixed stack registers - we can tolerate arbitrary FP stack instructions inserted around calls and inline assembly. Live range splitting could sometimes break x87 code by inserting spill code in unfortunate places. As a bonus we handle floating point inline assembly correctly now. llvm-svn: 134018
* Reinstate r133516 "Remove some unnecessary uses of c_str()." A trailing nullChad Rosier2011-06-281-6/+6
| | | | | | | | | character in std::string was causing failures for a few ObjC and Obj-C++ tests when -flto was enabled. Revision 133999 resolved this issue. Thanks Jay! rdar://9685235 PR10210 llvm-svn: 134017
* Remove warning: 'c0' may be used uninitialized in this function.Chad Rosier2011-06-281-1/+2
| | | | llvm-svn: 134014
* Print registers by name instead of by number.Jakob Stoklund Olesen2011-06-281-6/+7
| | | | llvm-svn: 134013
* cleanup: misleading comment.Andrew Trick2011-06-281-2/+2
| | | | llvm-svn: 134010
* cmake: Our MSVC build does not support config-time build mode.Andrew Trick2011-06-281-1/+1
| | | | llvm-svn: 134008
* Implement ISD::VAARG lowering on PPC32.Roman Divacky2011-06-282-5/+290
| | | | llvm-svn: 134005
* PR10210: New method ConstantArray::getAsCString(). Use it in LTO toJay Foad2011-06-283-9/+30
| | | | | | avoid getting embedded trailing null bytes in std::strings. llvm-svn: 133999
* FileCheckify and prepare for -disable-iv-rewrite.Andrew Trick2011-06-281-7/+11
| | | | llvm-svn: 133998
* FileCheckize a couple of tests.Jakob Stoklund Olesen2011-06-282-8/+44
| | | | | | | Also and add a test for popping dead return values and avoid testing the spill precision. llvm-svn: 133997
* Cleanup. Fix a stupid variable name.Andrew Trick2011-06-281-3/+3
| | | | llvm-svn: 133996
* Cleanup. Fix a stupid variable name.Andrew Trick2011-06-281-3/+3
| | | | llvm-svn: 133995
* SCEVExpander: give new insts a name that identifies the reponsible pass.Andrew Trick2011-06-285-9/+14
| | | | llvm-svn: 133992
* whitespaceAndrew Trick2011-06-281-8/+8
| | | | llvm-svn: 133991
* Fix typo in comment.Nick Lewycky2011-06-281-1/+1
| | | | llvm-svn: 133990
* Fix cmake build.Rafael Espindola2011-06-281-1/+1
| | | | llvm-svn: 133989
* indvars --disable-iv-rewrite: sever ties with IVUsers.Andrew Trick2011-06-282-21/+6
| | | | llvm-svn: 133988
* indvars --disable-iv-rewrite: Defer evaluating s/zext until SCEVAndrew Trick2011-06-281-40/+57
| | | | | | evaluates all other IV exprs. llvm-svn: 133982
* Fix CMake build by removing this now dead file.Chandler Carruth2011-06-281-1/+0
| | | | llvm-svn: 133981
* FileCheck-ize a test that had the strangest TCL quote I've seen yet: anChandler Carruth2011-06-281-2/+5
| | | | | | | | | | | | | | opening single quote with no closing single quote, and with {} quotes "inside" of it. This broke some of our tools that scrape test cases. Also, while here, make the test actually assert what the comment says it asserts. This was essentially authored by Nick Lewycky, and merely typed in by myself. Let me know if this is still missing the mark, but the previous test only succeeded due to the improper quoting preventing *anything* from matching the grep -- it had a '4(%...)' sequence in the output! llvm-svn: 133980
* Alternative name enum should go into the enum portion.Evan Cheng2011-06-281-14/+21
| | | | llvm-svn: 133979
* Fix a bad iterator dereference that Evan uncovered.Jakob Stoklund Olesen2011-06-281-2/+4
| | | | llvm-svn: 133978
* ARM Thumb2 asm syntax optional destination operand for binary operators.Jim Grosbach2011-06-282-9/+49
| | | | | | | | | | | | | When the destination operand is the same as the first source register operand for arithmetic instructions, the destination operand may be omitted. For example, the following two instructions are equivalent: and r1, #ff and r1, r1, #ff rdar://9672867 llvm-svn: 133973
* Remove RegClass2VRegMap from MachineRegisterInfo.Evan Cheng2011-06-272-26/+0
| | | | llvm-svn: 133967
* ARM Assembly support for Thumb mov-immediate.Jim Grosbach2011-06-275-4/+57
| | | | | | | | | | | Correctly parse the forms of the Thumb mov-immediate instruction: 1. 8-bit immediate 0-255. 2. 12-bit shifted-immediate. The 16-bit immediate "movw" form is also legal with just a "mov" mnemonic, but is not yet supported. More parser logic necessary there due to fixups. llvm-svn: 133966
* Remove RCBarriers from TargetInstrDesc.Evan Cheng2011-06-273-68/+1
| | | | llvm-svn: 133964
* Remove the experimental (and unused) pre-ra splitting pass. Greedy regalloc ↵Evan Cheng2011-06-2714-1777/+0
| | | | | | can split live ranges. llvm-svn: 133962
* indvars -disable-iv-rewrite: run RLEV after SimplifyIVUsers forAndrew Trick2011-06-271-4/+6
| | | | | | a bit more control over the order SCEVs are evaluated. llvm-svn: 133959
* Revert r133516 "Remove some unnecessary uses of c_str()."Chad Rosier2011-06-271-6/+6
| | | | | | | | This was causing compile-time failures for some of the Objc and Obj-C++ benchmarks. The specific errors were of the form: "ld: duplicate symbol …" rdar://9660124 llvm-svn: 133955
* During bottom up fast-isel, instructions emitted to materalize registers are ↵Devang Patel2011-06-274-0/+148
| | | | | | at top of basic block and do not have debug location. This may misguide debugger while entering the basic block and sometimes debugger provides semi useful view of current location to developer by picking up previous known location as current location. Assign a sensible location to the first instruction in a basic block, if it does not have one location derived from source file, so that debugger can provide meaningful user experience to developers in edge cases. llvm-svn: 133953
* Fix this test to actually check something and be able to be compiled.Eric Christopher2011-06-271-2/+2
| | | | llvm-svn: 133952
* Calculate GetBestDestForJumpOnUndef correctly.Jakub Staszak2011-06-271-1/+3
| | | | llvm-svn: 133946
* ARM Asm parsing of Thumb2 move immediate.Jim Grosbach2011-06-271-2/+3
| | | | | | | Thumb2 MOV mnemonic can accept both cc_out and predication. We don't (yet) encode the instruction properly, but this gets the parsing part. llvm-svn: 133945
* More refactoring. Move getRegClass from TargetOperandInfo to TargetInstrInfo.Evan Cheng2011-06-2718-63/+54
| | | | llvm-svn: 133944
* Add support for alternative register names, useful for instructions whose ↵Owen Anderson2011-06-2714-55/+268
| | | | | | | | operands are logically equivalent to existing registers, but happen to be printed specially. For example, an instruciton that prints d0[0] instead of s0. Patch by Jim Grosbach. llvm-svn: 133940
* Add exception necessitated by 133938.Jim Grosbach2011-06-271-1/+1
| | | | llvm-svn: 133939
* ARM assembly carry set/clear condition code aliases for 'hi/lo'Jim Grosbach2011-06-271-0/+2
| | | | llvm-svn: 133938
* ARM assembler support for ldmfd/stmfd mnemonics.Jim Grosbach2011-06-272-0/+10
| | | | llvm-svn: 133936
OpenPOWER on IntegriCloud