- Oct 07, 2013
-
-
Craig Topper authored
Remove some instructions that seem to only exist to trick the filtering checks in the disassembler table creation. Just fix up the filter to let the real instruction through instead. llvm-svn: 192090
-
Craig Topper authored
llvm-svn: 192086
-
- Oct 05, 2013
-
-
Craig Topper authored
Add OPC_CheckChildSame0-3 to the DAG isel matcher. This replaces sequences of MoveChild, CheckSame, MoveParent. Saves 846 bytes from the X86 DAG isel matcher, ~300 from ARM, ~840 from Hexagon. llvm-svn: 192026
-
- Oct 04, 2013
-
-
Craig Topper authored
llvm-svn: 191941
-
Craig Topper authored
Add OPC_CheckChildSame0-3 to the DAG isel matcher. This replaces sequences of MoveChild, CheckSame, MoveParent. Saves 846 bytes from the X86 DAG isel matcher, ~300 from ARM, ~840 from Hexagon. llvm-svn: 191940
-
- Oct 03, 2013
-
-
Craig Topper authored
llvm-svn: 191874
-
Pete Cooper authored
This is useful for some ARM intrinsics such as VCVTN which does a <4 x float> <-> <4 x half> conversion. llvm-svn: 191870
-
- Oct 01, 2013
-
-
Rafael Espindola authored
Patch by Alp Toker. llvm-svn: 191757
-
Richard Sandiford authored
The old code skipped one of the sorting criteria if either pattern had no types. This could lead to cycles of the form X < Y, Y < Z, Z < X. llvm-svn: 191735
-
- Sep 30, 2013
-
-
Craig Topper authored
Filter out repeated sections from the X86 disassembler modRMTable. Saves about ~43K from a released build. Unfortunately the disassembler tables are still upwards of 800K. llvm-svn: 191652
-
Craig Topper authored
Add VEX_LIG to scalar FMA4 instructions. Use VEX_LIG in some of the inheriting checks in disassembler table generator. Make use of VEX_L_W, VEX_L_W_XS, VEX_L_W_XD contexts. Don't let VEX_L_W, VEX_L_W_XS, VEX_L_W_XD, VEX_L_W_OPSIZE inherit from their non-L forms unless VEX_LIG is set. Let VEX_L_W, VEX_L_W_XS, VEX_L_W_XD, VEX_L_W_OPSIZE inherit from all of their non-L or non-W cases. Increase ranking on VEX_L_W, VEX_L_W_XS, VEX_L_W_XD, VEX_L_W_OPSIZE so they get chosen over non-L/non-W forms. llvm-svn: 191649
-
- Sep 25, 2013
-
-
Andrew Trick authored
Ideally, the machinel model is added at the time the instructions are defined. But many instructions in X86InstrSSE.td still need a model. Without this workaround the scheduler asserts because x86 already has itinerary classes for these instructions, indicating they should be modeled by the scheduler. Since we use the new machine model for other instructions, it expects a new machine model for these too. llvm-svn: 191391
-
Craig Topper authored
llvm-svn: 191356
-
Craig Topper authored
llvm-svn: 191355
-
- Sep 24, 2013
-
-
Craig Topper authored
llvm-svn: 191280
-
Jiangning Liu authored
Patch by Ana Pazos. 1.Added support for v1ix and v1fx types. 2.Added Scalar Pairwise Reduce instructions. 3.Added initial implementation of Scalar Arithmetic instructions. llvm-svn: 191263
-
- Sep 23, 2013
-
-
Craig Topper authored
Add missing index comments to the left side of the DAG ISel matcher table for each individual case of SwitchOpcode/Type. llvm-svn: 191181
-
- Sep 22, 2013
-
-
Benjamin Kramer authored
This makes using array_pod_sort significantly safer. The implementation relies on function pointer casting but that should be safe as we're dealing with void* here. llvm-svn: 191175
-
- Sep 16, 2013
-
-
Tim Northover authored
libc++ didn't seem to like a non-const call operator. llvm-svn: 190797
-
Tim Northover authored
TableGen was sorting the entries in some of its internal data structures by pointer. This order filtered through to the final matching table and affected the diagnostics produced on bad assembly occasionally. It also turns out STL algorithms are ridiculously easy to misuse on containers with custom order methods. (No bugs before, or now that I know of, but plenty in the middle). This should fix the sanitizer bot, which ends up with weird pointers. llvm-svn: 190793
-
Tim Northover authored
llvm-svn: 190792
-
Benjamin Kramer authored
llvm-svn: 190770
-
- Sep 12, 2013
-
-
Joey Gouly authored
The 'Deprecated' class allows you to specify a SubtargetFeature that the instruction is deprecated on. The 'ComplexDeprecationPredicate' class allows you to define a custom predicate that is called to check for deprecation. For example: ComplexDeprecationPredicate<"MCR"> would mean you would have to define the following function: bool getMCRDeprecationInfo(MCInst &MI, MCSubtargetInfo &STI, std::string &Info) Which returns 'false' for not deprecated, and 'true' for deprecated and store the warning message in 'Info'. The MCTargetAsmParser constructor was chaned to take an extra argument of the MCInstrInfo class, so out-of-tree targets will need to be changed. llvm-svn: 190598
-
- Sep 11, 2013
-
-
Benjamin Kramer authored
Cuts down the bloat in the AArch64 asm writer a bit. llvm-svn: 190527
-
Benjamin Kramer authored
Otherwise SequenceToOffsetTable will sort by pointer and becomes non-deterministic. llvm-svn: 190514
-
- Sep 03, 2013
-
-
Vincent Lejeune authored
llvm-svn: 189839
-
- Aug 30, 2013
-
-
Jim Grosbach authored
llvm-svn: 189618
-
Jim Grosbach authored
llvm-svn: 189617
-
- Aug 29, 2013
-
-
Craig Topper authored
llvm-svn: 189567
-
- Aug 28, 2013
-
-
Rui Ueyama authored
Re-submitting r189416 with fix for Windows build on where strcasecmp is not defined. llvm-svn: 189501
-
Craig Topper authored
llvm-svn: 189448
-
Rui Ueyama authored
This reverts r189416. llvm-svn: 189424
-
Rui Ueyama authored
Link.exe's command line options are case-insensitive. This patch adds a new attribute to OptTable to let the option parser to compare options, ignoring case. Command lines are generally case-insensitive on Windows. CL.exe is an exception. So this new attribute should be useful for other commands running on Windows. Differential Revision: http://llvm-reviews.chandlerc.com/D1485 llvm-svn: 189416
-
- Aug 23, 2013
-
-
Jakob Stoklund Olesen authored
This field specifies registers that are preserved across function calls, but that should not be included in the generates SaveList array. This can be used ot generate regmasks for architectures that save registers through other means, like SPARC's register windows. llvm-svn: 189084
-
- Aug 22, 2013
-
-
Elena Demikhovsky authored
llvm-svn: 189005
-
Tim Northover authored
Back in the mists of time (2008), it seems TableGen couldn't handle the patterns necessary to match ARM's CMOV node that we convert select operations to, so we wrote a lot of fairly hairy C++ to do it for us. TableGen can deal with it now: there were a few minor differences to CodeGen (see tests), but nothing obviously worse that I could see, so we should probably address anything that *does* come up in a localised manner. llvm-svn: 188995
-
- Aug 16, 2013
-
-
Aaron Ballman authored
llvm-svn: 188524
-
- Aug 14, 2013
-
-
Jack Carter authored
Added v8f16 to ValueTypes.h, ValueTypes.cpp, ValueTypes.td, and CodeGenTarget.cpp Patch by Daniel Sanders llvm-svn: 188326
-
- Aug 12, 2013
-
-
Richard Sandiford authored
Apparently caused a failure on Darwin llvm-svn: 188166
-
Richard Sandiford authored
clang bootstraps intermittently failed for me due a difference in the MCK_Reg ordering in ARMGenAsmMatcher.inc. E.g. in my latest run the stage 1 and stage 3 versions were the same but the stage 2 one was different (though still functionally correct). This meant that the .o comparison failed. MCK_Regs were assigned by iterating over a std::set< std::set<Record*> >, and since std::set is sorted lexicographically, the order depended on the order of the pointer values. This patch replaces the pointer ordering with LessRecordByID. llvm-svn: 188164
-