Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Use raw_ostream throughout the AsmPrinter. | Owen Anderson | 2008-08-21 | 55 | -150/+353 |
| | | | | llvm-svn: 55092 | ||||
* | Fix an N^2 issue handling constant resolution due to RAUW in large arrays | Chris Lattner | 2008-08-21 | 2 | -13/+132 |
| | | | | | | | this speeds up the bcreader from 6.67s to 0.12s on a testcase Daniel provided. rdar://6158117 llvm-svn: 55090 | ||||
* | Fix unused variable warnings. | Dan Gohman | 2008-08-20 | 1 | -3/+3 |
| | | | | llvm-svn: 55089 | ||||
* | Silence a compiler warning. | Evan Cheng | 2008-08-20 | 1 | -1/+2 |
| | | | | llvm-svn: 55087 | ||||
* | First cut, un-optimized (and untested) fast isel lowering of GetElementPtrInst. | Evan Cheng | 2008-08-20 | 2 | -5/+109 |
| | | | | llvm-svn: 55085 | ||||
* | Add a new ConstantExpr::getWithOperands that takes any array of operands | Chris Lattner | 2008-08-20 | 1 | -4/+4 |
| | | | | | | instead of requiring an std::vector. llvm-svn: 55084 | ||||
* | Move the handling of ANY_EXTEND, SIGN_EXTEND_INREG, and TRUNCATE | Dan Gohman | 2008-08-20 | 3 | -138/+159 |
| | | | | | | | | | | | | | out of X86ISelDAGToDAG.cpp C++ code and into tablegen code. Among other things, using tablegen for these things makes them friendlier to FastISel. Tablegen can handle the case of i8 subregs on x86-32, but currently the C++ code for that case uses MVT::Flag in a tricky way, and it happens to schedule better in some cases. So for now, leave the C++ code in place to handle the i8 case on x86-32. llvm-svn: 55078 | ||||
* | Simplify the BuildMI calls even more. | Dan Gohman | 2008-08-20 | 1 | -6/+3 |
| | | | | llvm-svn: 55077 | ||||
* | Simplify FastISel's constructor argument list, make the FastISel | Dan Gohman | 2008-08-20 | 5 | -25/+22 |
| | | | | | | | | class hold a MachineRegisterInfo member, and make the MachineBasicBlock be passed in to SelectInstructions rather than the FastISel constructor. llvm-svn: 55076 | ||||
* | Dump the instruction that foiled ISel even when -debug is not used. | Dan Gohman | 2008-08-20 | 1 | -1/+3 |
| | | | | llvm-svn: 55075 | ||||
* | Don't hoist instructions that define a physical register. | Bill Wendling | 2008-08-20 | 1 | -1/+8 |
| | | | | llvm-svn: 55074 | ||||
* | Make more use of the BuildMI API. | Dan Gohman | 2008-08-20 | 1 | -8/+2 |
| | | | | llvm-svn: 55072 | ||||
* | Minor code reorganization. | Dan Gohman | 2008-08-20 | 1 | -3/+3 |
| | | | | llvm-svn: 55071 | ||||
* | Minor whitespace cleanup. | Dan Gohman | 2008-08-20 | 1 | -1/+1 |
| | | | | llvm-svn: 55070 | ||||
* | Fix 80 column violation. | Dan Gohman | 2008-08-20 | 1 | -1/+2 |
| | | | | llvm-svn: 55069 | ||||
* | Kill off SimpleBBISel, it's replaced by FastISel. | Evan Cheng | 2008-08-20 | 3 | -78/+1 |
| | | | | llvm-svn: 55067 | ||||
* | Move the fast-path (<=i64) cases of various APInt methods inline | Chris Lattner | 2008-08-20 | 1 | -150/+40 |
| | | | | | | | and the slow-path cases out of line. This speeds up instcombine a bit in real world cases. Patch contributed by m-s. llvm-svn: 55063 | ||||
* | Disable DAGCombine's alignment inference in "fast" codegen mode. | Dan Gohman | 2008-08-20 | 2 | -9/+12 |
| | | | | llvm-svn: 55059 | ||||
* | Change the FoldingSetNodeID usage for objects which carry | Dan Gohman | 2008-08-20 | 2 | -36/+36 |
| | | | | | | | | alignment and volatility information, such as loads and stores, to reduce the number of integer values added to the FoldingSetNodeID. llvm-svn: 55058 | ||||
* | Clean up a dead return missed in r55055. | Dan Gohman | 2008-08-20 | 1 | -3/+2 |
| | | | | llvm-svn: 55057 | ||||
* | Tablegen generated code already tests the opcode value, so it's not | Dan Gohman | 2008-08-20 | 4 | -247/+183 |
| | | | | | | necessary to use dyn_cast in these predicates. llvm-svn: 55055 | ||||
* | Use BitVector instead of std::vector<unsigned char>. | Dan Gohman | 2008-08-20 | 1 | -2/+1 |
| | | | | llvm-svn: 55054 | ||||
* | It's not necessary to check if a value is null before delete[]. | Dan Gohman | 2008-08-20 | 1 | -1/+1 |
| | | | | llvm-svn: 55053 | ||||
* | Use cast instead of dyn_cast. | Dan Gohman | 2008-08-20 | 1 | -2/+2 |
| | | | | llvm-svn: 55052 | ||||
* | Avoid an empty-if-body warning in release builds. | Dan Gohman | 2008-08-20 | 1 | -1/+2 |
| | | | | llvm-svn: 55050 | ||||
* | Fix indentation. | Dan Gohman | 2008-08-20 | 1 | -2/+2 |
| | | | | llvm-svn: 55049 | ||||
* | Fix comment spacing. | Dan Gohman | 2008-08-20 | 1 | -1/+1 |
| | | | | llvm-svn: 55047 | ||||
* | Fixed shuffle optimizations to handle non power of 2 vectors | Mon P Wang | 2008-08-20 | 1 | -4/+4 |
| | | | | llvm-svn: 55035 | ||||
* | Fix FastISel to recognize that the last block in the function does | Dan Gohman | 2008-08-20 | 1 | -5/+8 |
| | | | | | | not have a fall-through successor. llvm-svn: 55033 | ||||
* | Fix a leak in the FastISel code that Chris pointed out. | Dan Gohman | 2008-08-20 | 1 | -0/+8 |
| | | | | llvm-svn: 55031 | ||||
* | Add remaining 64-bit atomic patterns for x86-64. | Dale Johannesen | 2008-08-20 | 2 | -0/+60 |
| | | | | llvm-svn: 55029 | ||||
* | Add support for running SelectionDAG if FastISel fails. This is under | Dan Gohman | 2008-08-20 | 1 | -11/+16 |
| | | | | | | | a command-line option, so that the default behavior is an abort, which is useful for exposing code that isn't supported yet. llvm-svn: 55028 | ||||
* | Fix FastISel to recognize unhandled operands, such as constants | Dan Gohman | 2008-08-20 | 1 | -0/+4 |
| | | | | | | that aren't available as virtual registers (for now). llvm-svn: 55026 | ||||
* | Revert r55018 and apply the correct "fix" for the 64-bit sub_and_fetch atomic. | Bill Wendling | 2008-08-20 | 4 | -51/+5 |
| | | | | | | Just expand it like the other X-bit sub_and_fetches. llvm-svn: 55023 | ||||
* | Get rid of a couple of dynamic_cast. | Evan Cheng | 2008-08-20 | 1 | -4/+10 |
| | | | | llvm-svn: 55022 | ||||
* | Add FastISel support for floating-point operations. | Dan Gohman | 2008-08-20 | 1 | -6/+13 |
| | | | | llvm-svn: 55021 | ||||
* | Add FastISel support for several more binary operators. | Dan Gohman | 2008-08-20 | 1 | -16/+62 |
| | | | | llvm-svn: 55020 | ||||
* | Add support for the __sync_sub_and_fetch atomics and friends for X86. The code | Bill Wendling | 2008-08-19 | 3 | -6/+54 |
| | | | | | | was already present, but not hooked up to anything. llvm-svn: 55018 | ||||
* | Add code to call FastISel, and a command-line option to enable it. | Dan Gohman | 2008-08-19 | 1 | -1/+32 |
| | | | | llvm-svn: 55015 | ||||
* | Support unconditional fall-through branches in FastISel. | Dan Gohman | 2008-08-19 | 1 | -0/+16 |
| | | | | llvm-svn: 55014 | ||||
* | Allow the fast-path spilling code to attempt folding, but still leaving out ↵ | Owen Anderson | 2008-08-19 | 1 | -59/+68 |
| | | | | | | remat and splitting. llvm-svn: 55012 | ||||
* | Instantiate FastISel for X86. | Dan Gohman | 2008-08-19 | 3 | -2/+56 |
| | | | | llvm-svn: 55011 | ||||
* | The X86 target will soon have an implementation of createFastISel. | Dan Gohman | 2008-08-19 | 2 | -0/+14 |
| | | | | llvm-svn: 55010 | ||||
* | Use the BuildMI overload that sets up a destination register | Dan Gohman | 2008-08-19 | 1 | -6/+3 |
| | | | | | | instead of the one that doesn't and then adding it manually. llvm-svn: 55006 | ||||
* | Handle the case where target-specific fastisel code doesn't have | Dan Gohman | 2008-08-19 | 1 | -0/+5 |
| | | | | | | a desired opcode. llvm-svn: 55005 | ||||
* | The fast-path still needs to set kill markers and spill/restore points as ↵ | Owen Anderson | 2008-08-19 | 1 | -0/+3 |
| | | | | | | | | | appropriate. With this patch, all of MultiSource/Applications and all of SPEC2000/2006 pass with the SimpleSpiller and this fast-path enabled. llvm-svn: 55000 | ||||
* | Add support for 8 and 16 bit forms of __sync | Dale Johannesen | 2008-08-19 | 4 | -23/+143 |
| | | | | | | | | | | builtins on X86. Change "lock" instructions to be on a separate line. This is needed to work around a bug in the Darwin assembler. llvm-svn: 54999 | ||||
* | Delete a dead field. | Gordon Henriksen | 2008-08-19 | 1 | -1/+0 |
| | | | | llvm-svn: 54995 | ||||
* | [PR2327] Leverage TargetRegisterInfo to compute frame offsets for GC metadata. | Gordon Henriksen | 2008-08-19 | 1 | -7/+5 |
| | | | | llvm-svn: 54994 | ||||
* | Update the JIT exception writer to better mimic the codegen exception writer. | Nicolas Geoffray | 2008-08-19 | 1 | -11/+10 |
| | | | | | | | Also skip indirect encoding for platforms that ask for one: we direclty write an address, not a pointer to the address. llvm-svn: 54987 |