|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| | llvm-svn: 153421 | 
| | 
| 
| 
| | llvm-svn: 152978 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Without this hook, functions w/ a completely empty body (including no
epilogue) will cause an MCEmitter assertion failure.
For example,
define internal fastcc void @empty_function() {
  unreachable
}
rdar://10947471
llvm-svn: 151673 | 
| | 
| 
| 
| 
| 
| | MSP430, PPC, PTX, Sparc, X86, XCore.
llvm-svn: 150878 | 
| | 
| 
| 
| | llvm-svn: 120228 | 
| | 
| 
| 
| | llvm-svn: 116635 | 
| | 
| 
| 
| 
| 
| 
| 
| | The only folding these load/store architectures can do is converting COPY into a
load or store, and the target independent part of foldMemoryOperand already
knows how to do that.
llvm-svn: 108099 | 
| | 
| 
| 
| | llvm-svn: 108078 | 
| | 
| 
| 
| | llvm-svn: 104421 | 
| | 
| 
| 
| 
| 
| | doesn't have to guess.
llvm-svn: 103194 | 
| | 
| 
| 
| | llvm-svn: 103193 | 
| | 
| 
| 
| 
| 
| 
| | MachineBasicBlock::canFallThrough(), which is target-independent and more
thorough.
llvm-svn: 90634 | 
| | 
| 
| 
| | llvm-svn: 86423 | 
| | 
| 
| 
| | llvm-svn: 86408 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | load of a GV from constantpool and then add pc. It allows the code sequence to
  be rematerializable so it would be hoisted by machine licm.
- Add a late pass to break these pseudo instructions into a number of real
  instructions. Also move the code in Thumb2 IT pass that breaks up t2MOVi32imm
  to this pass. This is done before post regalloc scheduling to allow the
  scheduler to proper schedule these instructions. It also allow them to be
  if-converted and shrunk by later passes.
llvm-svn: 86304 | 
| | 
| 
| 
| | llvm-svn: 78666 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | - This change also makes it possible to switch between ARM / Thumb on a
  per-function basis.
- Fixed thumb2 routine which expand reg + arbitrary immediate. It was using
  using ARM so_imm logic.
- Use movw and movt to do reg + imm when profitable.
- Other code clean ups and minor optimizations.
llvm-svn: 77300 | 
| | 
| 
| 
| 
| 
| | sub-target.
llvm-svn: 77174 | 
| | 
| 
| 
| | llvm-svn: 77173 | 
| | 
| 
| 
| | llvm-svn: 76960 | 
| | 
| 
| 
| 
| 
| | elimination more exactly for Thumb-2 to get better code gen.
llvm-svn: 76919 | 
| | 
| 
| 
| 
| 
| | that don't allow negative offsets. During frame elimination convert *i12 opcode to a *i8 when necessary due to a negative offset.
llvm-svn: 76883 | 
| | 
| 
| 
| 
| 
| | shared between ARM and Thumb2. Not yet activated because register information must be generalized first.
llvm-svn: 75010 | 
|  | Thumb1InstrInfo, Thumb2InstrInfo, Thumb1RegisterInfo and Thumb2RegisterInfo. Move methods from ARMInstrInfo to ARMBaseInstrInfo to prepare for sharing with Thumb2.
llvm-svn: 74731 |