Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Cleanup whitespace. | Jush Lu | 2012-06-14 | 1 | -13/+12 |
| | | | | llvm-svn: 158443 | ||||
* | [arm-fast-isel] Add support for -arm-long-calls. | Chad Rosier | 2012-06-12 | 1 | -41/+57 |
| | | | | | | Patch by Jush Lu <jush.msn@gmail.com>. llvm-svn: 158368 | ||||
* | Re-enable the CMN instruction. | Bill Wendling | 2012-06-11 | 1 | -2/+2 |
| | | | | | | | | | We turned off the CMN instruction because it had semantics which we weren't getting correct. If we are comparing with an immediate, then it's okay to use the CMN instruction. <rdar://problem/7569620> llvm-svn: 158302 | ||||
* | [arm-fast-isel] Fix handling of the frameaddress intrinsic. If depth is 0 | Chad Rosier | 2012-06-01 | 1 | -1/+1 |
| | | | | | | then DestReg is undefined. llvm-svn: 157840 | ||||
* | [arm-fast-isel] Add support for the llvm.frameaddress() intrinsic. | Chad Rosier | 2012-05-30 | 1 | -0/+36 |
| | | | | | | Patch by Jush Lu <jush.msn@gmail.com>. llvm-svn: 157696 | ||||
* | [arm-fast-isel] Add support for non-global callee. | Chad Rosier | 2012-05-23 | 1 | -7/+17 |
| | | | | | | Patch by Jush Lu <jush.msn@gmail.com>. llvm-svn: 157336 | ||||
* | [fast-isel] Add support for selecting @llvm.trap(). | Chad Rosier | 2012-05-11 | 1 | -0/+4 |
| | | | | llvm-svn: 156646 | ||||
* | [fast-isel] Remove -disable-arm-fast-isel option. -fast-isel=0 suffices. ↵ | Chad Rosier | 2012-05-11 | 1 | -12/+2 |
| | | | | | | Minor cleanup. llvm-svn: 156632 | ||||
* | [fast-isel] Cleaner fix for when we're unable to handle a non-double multi-reg | Chad Rosier | 2012-05-11 | 1 | -4/+21 |
| | | | | | | | | retval. Hoists check before emitting the call to avoid unnecessary work. rdar://11430407 PR12796 llvm-svn: 156628 | ||||
* | [fast-isel] Rather then assert (or segfault in a non-asserts build), fall back | Chad Rosier | 2012-05-11 | 1 | -2/+4 |
| | | | | | | | | to selection DAG isel if we're unable to handle a non-double multi-reg retval. rdar://11430407 PR12796 llvm-svn: 156622 | ||||
* | The return type is an unsigned, not a bool. | Chad Rosier | 2012-05-11 | 1 | -1/+1 |
| | | | | llvm-svn: 156621 | ||||
* | Convert more uses of XXXRegisterClass to &XXXRegClass. No functional change ↵ | Craig Topper | 2012-04-20 | 1 | -12/+15 |
| | | | | | | since they are equivalent. llvm-svn: 155188 | ||||
* | Tidy up. 80 columns. | Jim Grosbach | 2012-04-06 | 1 | -1/+2 |
| | | | | llvm-svn: 154226 | ||||
* | Deduplicate ARM call-related instructions. | Jakob Stoklund Olesen | 2012-04-06 | 1 | -9/+4 |
| | | | | | | | | We had special instructions for iOS because r9 is call-clobbered, but that is represented dynamically by the register mask operands now, so there is no need for the pseudo-instructions. llvm-svn: 154144 | ||||
* | Remove unnecessary llvm:: qualifications | Craig Topper | 2012-03-27 | 1 | -1/+1 |
| | | | | llvm-svn: 153500 | ||||
* | Prune includes and replace uses of ARMRegisterInfo.h with ARMBaeRegisterInfo.h | Craig Topper | 2012-03-26 | 1 | -1/+0 |
| | | | | llvm-svn: 153422 | ||||
* | Check if we can handle the arguments of a call (and therefore the call) in | Bill Wendling | 2012-03-16 | 1 | -8/+52 |
| | | | | | | | | | | fast-isel before emitting code. If the program bails after code was emitted, then it could lead to the stack being adjusted more than once (two CALLSEQ_BEGINs emitted) but being adjuste back only once after the call. This leads to general badness and gnashing of teeth. <rdar://problem/11050630> llvm-svn: 152959 | ||||
* | [fast-isel] Address Eli's comments for r152847. Specifically, add a test case | Chad Rosier | 2012-03-15 | 1 | -9/+8 |
| | | | | | | | and still allow immediate encoding, just not with cmn. rdar://11038907 llvm-svn: 152869 | ||||
* | [fast-isel] Don't try to encode LONG_MIN using cmn instructions. | Chad Rosier | 2012-03-15 | 1 | -5/+9 |
| | | | | | | rdar://11038907 llvm-svn: 152847 | ||||
* | [fast-isel] ARMEmitCmp generates FMSTAT, which transfers the floating-point | Chad Rosier | 2012-03-07 | 1 | -4/+2 |
| | | | | | | | condition flags to CPSR. This allows us to simplify SelectCmp. Patch by Zonr Chang <zonr.xchg@gmail.com>. llvm-svn: 152243 | ||||
* | Split fpscr into two registers: FPSCR and FPSCR_NZCV. | Lang Hames | 2012-03-06 | 1 | -1/+1 |
| | | | | | | | | | The fpscr register contains both flags (set by FP operations/comparisons) and control bits. The control bits (FPSCR) should be reserved, since they're always available and needn't be defined before use. The flag bits (FPSCR_NZCV) should like to be unreserved so they can be hoisted by MachineCSE. This fixes PR12165. llvm-svn: 152076 | ||||
* | ARM use the right opcode for FP<->Integer move in fast-isel. | Jim Grosbach | 2012-03-01 | 1 | -2/+2 |
| | | | | | | rdar://10965031 llvm-svn: 151850 | ||||
* | Switch ARM target to register masks. | Jakob Stoklund Olesen | 2012-02-24 | 1 | -0/+8 |
| | | | | | | | | | | | | | I'll let the buildbots determine the compile time improvements from this change, but 464.h264ref has 5% faster codegen at -O2. This patch does cause some assembly changes. Branch folding can make different decisions about calls with dead return values. CriticalAntiDepBreaker may choose different registers because its liveness tracking is affected. MachineCopyPropagation may sometimes leave a dead copy behind. llvm-svn: 151331 | ||||
* | Make all pointers to TargetRegisterClass const since they are all pointers ↵ | Craig Topper | 2012-02-22 | 1 | -8/+8 |
| | | | | | | to static data that should not be modified. llvm-svn: 151134 | ||||
* | [fast-isel] Add support for returning non-legal types with no sign- or zero- | Chad Rosier | 2012-02-17 | 1 | -6/+6 |
| | | | | | | entend flag. llvm-svn: 150774 | ||||
* | Remove unnecessary assignment to temporary, ResultReg. | Chad Rosier | 2012-02-16 | 1 | -13/+8 |
| | | | | llvm-svn: 150737 | ||||
* | Add braces to if clause to make symmetric with associate else clause. | Chad Rosier | 2012-02-15 | 1 | -18/+19 |
| | | | | llvm-svn: 150591 | ||||
* | Use a temporary variable, rather then a series of redundant calls. | Chad Rosier | 2012-02-15 | 1 | -4/+5 |
| | | | | llvm-svn: 150536 | ||||
* | Remove unnecessary assignment to temporary, ResultReg. | Chad Rosier | 2012-02-14 | 1 | -8/+4 |
| | | | | llvm-svn: 150520 | ||||
* | [fast-isel] Add support for SUBs with non-legal types. | Chad Rosier | 2012-02-08 | 1 | -0/+5 |
| | | | | llvm-svn: 150047 | ||||
* | [fast-isel] Add support for ORs with non-legal types. | Chad Rosier | 2012-02-08 | 1 | -2/+13 |
| | | | | llvm-svn: 150045 | ||||
* | [fast-isel] Add support for indirect branches. | Chad Rosier | 2012-02-07 | 1 | -0/+13 |
| | | | | llvm-svn: 150014 | ||||
* | Convert assert(0) to llvm_unreachable | Craig Topper | 2012-02-07 | 1 | -3/+1 |
| | | | | llvm-svn: 149961 | ||||
* | [fast-isel] Add support for ADDs with non-legal types. | Chad Rosier | 2012-02-06 | 1 | -5/+34 |
| | | | | llvm-svn: 149934 | ||||
* | Persuade GCC that there is nothing worth warning about here (there isn't). | Duncan Sands | 2012-02-05 | 1 | -0/+1 |
| | | | | llvm-svn: 149834 | ||||
* | [fast-isel] Add support for URem. | Chad Rosier | 2012-02-03 | 1 | -8/+10 |
| | | | | llvm-svn: 149716 | ||||
* | [fast-isel] Rename isZExt to isSigned. No functional change intended. | Chad Rosier | 2012-02-03 | 1 | -13/+14 |
| | | | | llvm-svn: 149714 | ||||
* | [fast-isel] Add support for UDIV. | Chad Rosier | 2012-02-03 | 1 | -8/+10 |
| | | | | llvm-svn: 149712 | ||||
* | [fast-isel] Add support for FPToUI. Also add test cases for FPToSI. | Chad Rosier | 2012-02-03 | 1 | -6/+8 |
| | | | | llvm-svn: 149706 | ||||
* | [fast-isel] Add support for selecting UIToFP. | Chad Rosier | 2012-02-03 | 1 | -6/+8 |
| | | | | llvm-svn: 149704 | ||||
* | More dead code removal (using -Wunreachable-code) | David Blaikie | 2012-01-20 | 1 | -1/+0 |
| | | | | llvm-svn: 148578 | ||||
* | Fix assert. | Eric Christopher | 2012-01-11 | 1 | -2/+2 |
| | | | | llvm-svn: 147966 | ||||
* | Match SelectionDAG logic for enabling movt. | Jakob Stoklund Olesen | 2012-01-07 | 1 | -1/+5 |
| | | | | | | Darwin doesn't do static, and ELF targets only support static. llvm-svn: 147740 | ||||
* | Use getRegForValue() to materialize the address of ARM globals. | Jakob Stoklund Olesen | 2012-01-07 | 1 | -10/+0 |
| | | | | | | | | | This enables basic local CSE, giving us 20% smaller code for consumer-typeset in -O0 builds. <rdar://problem/10658692> llvm-svn: 147720 | ||||
* | Use movw+movt in ARMFastISel::ARMMaterializeGV. | Jakob Stoklund Olesen | 2012-01-07 | 1 | -29/+50 |
| | | | | | | | | | | | | | This eliminates a lot of constant pool entries for -O0 builds of code with many global variable accesses. This speeds up -O0 codegen of consumer-typeset by 2x because the constant island pass no longer has to look at thousands of constant pool entries. <rdar://problem/10629774> llvm-svn: 147712 | ||||
* | ARM target code clean up. Check for iOS, not Darwin where it makes sense. | Evan Cheng | 2011-12-20 | 1 | -8/+8 |
| | | | | llvm-svn: 146981 | ||||
* | VFP2 is required for FP loads. Noticed by inspection. | Chad Rosier | 2011-12-14 | 1 | -0/+2 |
| | | | | llvm-svn: 146569 | ||||
* | Tidy up. | Chad Rosier | 2011-12-14 | 1 | -1/+2 |
| | | | | llvm-svn: 146568 | ||||
* | Fix 80-column violation and extraneous brackets. | Chad Rosier | 2011-12-14 | 1 | -8/+9 |
| | | | | llvm-svn: 146566 | ||||
* | - Add MachineInstrBundle.h and MachineInstrBundle.cpp. This includes a function | Evan Cheng | 2011-12-14 | 1 | -2/+2 |
| | | | | | | | | | | to finalize MI bundles (i.e. add BUNDLE instruction and computing register def and use lists of the BUNDLE instruction) and a pass to unpack bundles. - Teach more of MachineBasic and MachineInstr methods to be bundle aware. - Switch Thumb2 IT block to MI bundles and delete the hazard recognizer hack to prevent IT blocks from being broken apart. llvm-svn: 146542 |