summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/R600/SIFoldOperands.cpp
Commit message (Collapse)AuthorAgeFilesLines
* R600/SI: Replace TRI->getRegClass(Reg) with TRI->getPhysRegClass(Reg)Tom Stellard2015-05-121-2/+2
| | | | | | | TRI->getRegClass() takes a register class ID, not a register. We were using this incorrectly in a few places. llvm-svn: 237132
* Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used.Benjamin Kramer2015-03-231-1/+2
| | | | llvm-svn: 232998
* R600/SI: Fix asam errors in SIFoldOperandsTom Stellard2015-02-171-1/+2
| | | | | | | We were trying to fold into implicit uses, which led to out of bounds access of the MCInstrDesc::OpInfo arrray. llvm-svn: 229533
* R600/SI: Fix phys reg copies in SIFoldOperandsMatt Arsenault2015-02-141-3/+13
| | | | llvm-svn: 229227
* R600/SI: Allow f64 inline immediates in i64 operandsMatt Arsenault2015-02-131-1/+2
| | | | | | | This requires considering the size of the operand when checking immediate legality. llvm-svn: 229135
* Fix typoMatt Arsenault2015-01-311-1/+1
| | | | llvm-svn: 227697
* R600/SI: Add pattern for bitcasting fp immediates to integersTom Stellard2015-01-131-7/+2
| | | | | | | | The backend now assumes that all immediates are integers. This allows us to simplify immediate handling code, becasue we no longer need to handle fp and integer immediates differently. llvm-svn: 225844
* R600/SI: Commute instructions to enable more folding opportunitiesTom Stellard2015-01-071-18/+47
| | | | llvm-svn: 225410
* R600/SI: Only fold immediates that have one useTom Stellard2015-01-071-1/+8
| | | | | | | Folding the same immediate into multiple instruction will increase program size, which can hurt performance. llvm-svn: 225405
* R600/SI: Add a V_MOV_B64 pseudo instructionTom Stellard2015-01-071-0/+1
| | | | | | | This is used to simplify the SIFoldOperands pass and make it easier to fold immediates. llvm-svn: 225373
* R600/SI: Teach SIFoldOperands to split 64-bit constants when foldingTom Stellard2015-01-071-25/+37
| | | | | | | | | | | | | | | This allows folding of sequences like: s[0:1] = s_mov_b64 4 v_add_i32 v0, s0, v0 v_addc_u32 v1, s1, v1 into v_add_i32 v0, 4, v0 v_add_i32 v1, 0, v1 llvm-svn: 225369
* R600/SI: Refactor SIFoldOperands to simplify immediate foldingTom Stellard2015-01-071-25/+54
| | | | | | This will make a future patch much less intrusive. llvm-svn: 225358
* R600/SI: Add SIFoldOperands passTom Stellard2014-11-211-0/+202
This pass attempts to fold the source operands of mov and copy instructions into their uses. llvm-svn: 222581
OpenPOWER on IntegriCloud