- Jul 30, 2012
-
-
Craig Topper authored
llvm-svn: 160950
-
Craig Topper authored
Remove check for sub class of X86Inst from filter function since caller guaranteed it. Replace another sub class check with ShouldBeEmitted flag since it was factored in there already. llvm-svn: 160949
-
Craig Topper authored
llvm-svn: 160948
-
Craig Topper authored
Remove check for f256mem from has256BitOperands as nothing depended on it and it isn't the only 256-bit memory type anyway. llvm-svn: 160946
-
Craig Topper authored
llvm-svn: 160945
-
- Jul 27, 2012
-
-
Craig Topper authored
llvm-svn: 160852
-
Jakob Stoklund Olesen authored
These tables were indexed by [register][subreg index] which made them, very large and sparse. Replace them with lists of sub-register indexes that match the existing lists of sub-registers. MCRI::getSubReg() becomes a very short linear search, like getSubRegIndex() already was. llvm-svn: 160843
-
Jakob Stoklund Olesen authored
Now that the weird X86 sub_ss and sub_sd sub-register indexes are gone, there is no longer a need for the CompositeIndices construct in .td files. Sub-register index composition can be specified on the SubRegIndex itself using the ComposedOf field. Also enforce unique names for sub-registers in TableGen. The same sub-register cannot be available with multiple sub-register indexes. llvm-svn: 160842
-
- Jul 26, 2012
-
-
Craig Topper authored
llvm-svn: 160775
-
- Jul 25, 2012
-
-
Jakob Stoklund Olesen authored
This simplifies MCRegisterInfo and shrinks the target descriptions a bit more. llvm-svn: 160758
-
- Jul 23, 2012
-
-
Eric Christopher authored
redirection in the system call. Patch by Andy Gibbs. llvm-svn: 160644
-
Sylvestre Ledru authored
llvm-svn: 160621
-
- Jul 20, 2012
-
-
Daniel Dunbar authored
subprocesses. llvm-svn: 160556
-
- Jul 19, 2012
-
-
Richard Trieu authored
is one more that MRM_DF which is 55. Previously, it held value 45, the same as MRM_D0. llvm-svn: 160465
-
Jim Grosbach authored
llvm-svn: 160463
-
- Jul 18, 2012
-
-
Craig Topper authored
Make x86 asm parser to check for xmm vs ymm for index register in gather instructions. Also fix Intel syntax for gather instructions to use 'DWORD PTR' or 'QWORD PTR' to match gas. llvm-svn: 160420
-
- Jul 17, 2012
-
-
Jim Grosbach authored
A standalone pattern defined in a multiclass expansion should handle null_frag references just like patterns on instructions. Follow-up to r160333. llvm-svn: 160384
-
Jim Grosbach authored
Define a 'null_frag' SDPatternOperator node, which if referenced in an instruction Pattern, results in the pattern being collapsed to be as-if '[]' had been specified instead. This allows supporting a multiclass definition where some instaniations have ISel patterns associated and others do not. For example, multiclass myMulti<RegisterClass rc, SDPatternOperator OpNode = null_frag> { def _x : myI<(outs rc:), (ins rc:), []>; def _r : myI<(outs rc:), (ins rc:), [(set rc:, (OpNode rc:))]>; } defm foo : myMulti<GRa, not>; defm bar : myMulti<GRb>; llvm-svn: 160333
-
Owen Anderson authored
Defer checking for registers in the MC AsmMatcher until the after user-defined match classes have been checked. This allows the creation of MatchClass's that are supersets of a register class. llvm-svn: 160327
-
- Jul 12, 2012
-
-
Jim Grosbach authored
Make sure the tblgen'erated asm matcher correctly returns numoperands+1 as the ErrorInfo when the problem was that there weren't enough operands specified. rdar://9142751 llvm-svn: 160144
-
Craig Topper authored
llvm-svn: 160110
-
- Jul 09, 2012
-
-
Andrew Trick authored
llvm-svn: 159959
-
- Jul 07, 2012
-
-
Andrew Trick authored
subtarget CPU descriptions and support new features of MachineScheduler. MachineModel has three categories of data: 1) Basic properties for coarse grained instruction cost model. 2) Scheduler Read/Write resources for simple per-opcode and operand cost model (TBD). 3) Instruction itineraties for detailed per-cycle reservation tables. These will all live side-by-side. Any subtarget can use any combination of them. Instruction itineraries will not change in the near term. In the long run, I expect them to only be relevant for in-order VLIW machines that have complex contraints and require a precise scheduling/bundling model. Once itineraries are only actively used by VLIW-ish targets, they could be replaced by something more appropriate for those targets. This tablegen backend rewrite sets things up for introducing MachineModel type #2: per opcode/operand cost model. llvm-svn: 159891
-
Andrew Trick authored
llvm-svn: 159890
-
Andrew Trick authored
llvm-svn: 159889
-
- Jul 02, 2012
-
-
Chandler Carruth authored
'|&' bash syntax. We have lots of users with a bash on their system which doesn't support this syntax, and as bash is still significantly faster, we should support them. The test suite has already been updated to cope with this. llvm-svn: 159580
-
Chandler Carruth authored
llvm-svn: 159543
-
Andrew Trick authored
Reapplies r159406 with minor cleanup. The regressions appear to have been spurious. llvm-svn: 159541
-
Chandler Carruth authored
This is directly cloned from the logic in the TCL test bits of lit. Hopefully will fix most of the windows build bot fallout. llvm-svn: 159528
-
- Jun 29, 2012
-
-
Andrew Trick authored
This reverts commit r159406. I noticed a performance regression so I'll back out for now. llvm-svn: 159411
-
Andrew Trick authored
The TargetInstrInfo::getNumMicroOps API does not change, but soon it will be used by MachineScheduler. Now each subtarget can specify the number of micro-ops per itinerary class. For ARM, this is currently always dynamic (-1), because it is used for load/store multiple which depends on the number of register operands. Zero is now a valid number of micro-ops. This can be used for nop pseudo-instructions or instructions that the hardware can squash during dispatch. llvm-svn: 159406
-
- Jun 28, 2012
-
-
Alexey Samsonov authored
llvm-svn: 159334
-
Richard Trieu authored
llvm-svn: 159316
-
- Jun 27, 2012
-
-
Anshuman Dasgupta authored
Patch by Ivan Llopard! llvm-svn: 159281
-
Jim Grosbach authored
Don't override a custom diagnostic w/ a generic InvalidOperand, all else being equal. llvm-svn: 159238
-
- Jun 26, 2012
-
-
Manman Ren authored
Support the following intrinsics: llvm.x86.avx2.gather.d.pd, llvm.x86.avx2.gather.q.pd llvm.x86.avx2.gather.d.pd.256, llvm.x86.avx2.gather.q.pd.256 llvm.x86.avx2.gather.d.ps, llvm.x86.avx2.gather.q.ps llvm.x86.avx2.gather.d.ps.256, llvm.x86.avx2.gather.q.ps.256 Modified Disassembler to handle VSIB addressing mode. llvm-svn: 159221
-
Tim Northover authored
When generating selection tables for Pat instances, TableGen relied on an output Instruction's Pattern field being set to infer whether a chain should be added. This patch adds additional logic to check various flag fields so that correct code can be generated even if Pattern is unset. llvm-svn: 159217
-
Eric Christopher authored
llvm-svn: 159178
-
- Jun 23, 2012
-
-
Jim Grosbach authored
"Invalid operand" may be a completely correct diagnostic, but it's often insufficiently specific to really help identify and fix the problem in assembly source. Allow a target to specify a more-specific diagnostic kind for each AsmOperandClass derived definition and use that to provide more detailed diagnostics when an operant of that class resulted in a match failure. rdar://8987109 llvm-svn: 159050
-
- Jun 22, 2012
-
-
Hal Finkel authored
Original commit message: Allow up to 64 functional units per processor itinerary. This patch changes the type used to hold the FU bitset from unsigned to uint64_t. This will be needed for some upcoming PowerPC itineraries. llvm-svn: 159027
-