- Oct 14, 2011
-
-
David Greene authored
Pass the correct jobs and threads information to the builder. We were underutilizing the number of jobs and threads specified by the user. llvm-svn: 141977
-
David Greene authored
Bit just a bit more verbose about what's going on. Print options to make to aid debugging. llvm-svn: 141976
-
David Greene authored
Add a --no-install option to skip installing components. This speeds up the develop/test cycle. llvm-svn: 141975
-
David Greene authored
And a --no-gcc option to skip dragonegg and gcc builds. This greatly speeds up the develop/test cycle. llvm-svn: 141974
-
Craig Topper authored
llvm-svn: 141947
-
Jakob Stoklund Olesen authored
TableGen infers unmodeled side effects on instructions without a pattern. Fix some instruction definitions where that was overlooked. Also raise an error if a rematerializable instruction has unmodeled side effects. That doen't make any sense. llvm-svn: 141929
-
- Oct 12, 2011
-
-
Jim Grosbach authored
llvm-svn: 141786
-
- Oct 11, 2011
-
-
Eli Friedman authored
llvm-svn: 141699
-
Craig Topper authored
Fix disassembling of popcntw. Also remove some code that says it accounts for 64BIT_REXW_XD not existing, but it does exist. llvm-svn: 141642
-
- Oct 10, 2011
-
-
Jakob Stoklund Olesen authored
This should unbreak the picky buildbots. llvm-svn: 141575
-
Jakob Stoklund Olesen authored
The table is indexed by opcode, so simply removing pseudo-instructions creates a wrong mapping from opcode to table entry. Add a test case for xorps which has a very high opcode that exposes this problem. llvm-svn: 141562
-
- Oct 08, 2011
-
-
Jim Grosbach authored
llvm-svn: 141446
-
- Oct 07, 2011
-
-
David Greene authored
Multidefs are a bit unwieldy and incomplete. Remove them in favor of another mechanism, probably for loops. Revert "Make Test More Thorough" Revert "Fix a typo." Revert "Vim Support for Multidefs" Revert "Emacs Support for Multidefs" Revert "Document Multidefs" Revert "Add a Multidef Test" Revert "Update Test for Multidefs" Revert "Process Multidefs" Revert "Parser Multidef Support" Revert "Lexer Support for Multidefs" Revert "Add Multidef Data Structures" llvm-svn: 141378
-
Craig Topper authored
Revert part of r141274. Only need to change encoding for xchg %eax, %eax in 64-bit mode. This is because in 64-bit mode xchg %eax, %eax implies zeroing the upper 32-bits of RAX which makes it not a NOP. In 32-bit mode using NOP encoding is fine. llvm-svn: 141353
-
- Oct 06, 2011
-
-
Peter Collingbourne authored
llvm-svn: 141293
-
Craig Topper authored
Fix assembling of xchg %eax, %eax to not use the NOP encoding of 0x90. This was done by creating a new register group that excludes AX registers. Fixes PR10345. Also added aliases for flipping the order of the operands of xchg <reg>, %eax. llvm-svn: 141274
-
Peter Collingbourne authored
llvm-svn: 141266
-
Jakob Stoklund Olesen authored
This restores my karma after I added TRI::getSubClassWithSubReg(). Register constraints are applied 'backwards'. Starting from the register class required by an instruction operand, the correct question is: 'How can I constrain the super-register register class so all its sub-registers satisfy the instruction constraint?' The getMatchingSuperRegClass() hook answers that. We never need to go 'forwards': Starting from a super-register register class, what register class are the sub-registers in? The getSubRegisterRegClass() hook did that. llvm-svn: 141258
-
David Greene authored
Add vim highlighting support for multidefs. llvm-svn: 141238
-
David Greene authored
Add Emacs font-lock keyword support for multidefs. llvm-svn: 141237
-
- Oct 05, 2011
-
-
Jakob Stoklund Olesen authored
This function is used to constrain a register class to a sub-class that supports the given sub-register index. For example, getSubClassWithSubReg(GR32, sub_8bit) -> GR32_ABCD. The function will be used to compute register classes when emitting INSERT_SUBREG and EXTRACT_SUBREG nodes and for register class inflation of sub-register operations. The version provided by TableGen is usually adequate, but targets can override. llvm-svn: 141142
-
- Oct 04, 2011
-
-
Jakob Stoklund Olesen authored
This should unbreak the Windows build. llvm-svn: 141105
-
Jakob Stoklund Olesen authored
The set of register classes should be closed under sub-register operations and intersections. That will allow the register allocator to model combinations of constraints accurately. This patch implements the easiest form of register class inference: For every register class, and for every sub-register SubIdx, the subset of registers in RC that have a SubIdx sub-register should also be a register class. This does create some new register classes for the targets in the tree: ARM gets a new QQQQPR_with_ssub_0. This class was omitted from the .td file on purpose because it only has two registers. InstrEmitter and RegisterCoalescer have safeguards against selecting too small register classes, so it is harmless. PowerPC gets a G8RC_with_sub_32 class because LR is not a sub_32 sub-register of LR8. I think that might be an omission? X86 puts RIP in the GR64 class, and since that register doesn't have 8-bit sub-registers, we get: GR64_with_sub_8bit GR64_TC_with_sub_8bit GR64_NOREX_with_sub_8bit GR64_TC_with_sub_8bit_hi The various CodeGen classes have already been fixed so adding new register classes should not affect compile time. llvm-svn: 141084
-
Jakob Stoklund Olesen authored
There is no need to keep the primary order separate. llvm-svn: 141082
-
Jakob Stoklund Olesen authored
When TableGen starts creating its own register classes, the synthesized classes won't have a Record reference. All register classes must have a name, though. llvm-svn: 141081
-
Jakob Stoklund Olesen authored
The RecordKeeper could be shared by multiple target instances, causing duplicate record errors. llvm-svn: 141080
-
Craig Topper authored
Add support in the disassembler for ignoring the L-bit on certain VEX instructions. Mark instructions that have this behavior. Fixes PR10676. llvm-svn: 141065
-
Rafael Espindola authored
llvm-svn: 141057
-
- Oct 03, 2011
-
-
- Oct 02, 2011
-
-
Craig Topper authored
llvm-svn: 140962
-
- Oct 01, 2011
-
-
Craig Topper authored
llvm-svn: 140955
-
Craig Topper authored
Fix disassembler handling of CRC32 which is an odd instruction that uses 0xf2 as an opcode extension and allows the opsize prefix. This necessitated adding IC_XD_OPSIZE and IC_64BIT_XD_OPSIZE contexts. Unfortunately, this increases the size of the disassembler tables. Fixes PR10702. llvm-svn: 140954
-
Peter Collingbourne authored
This is the first step towards splitting LLVM and Clang's tblgen executables. llvm-svn: 140951
-
Bob Wilson authored
llvm-svn: 140928
-
Jakob Stoklund Olesen authored
All the sub-class bit vectors are computed when first creating the register bank. llvm-svn: 140905
-
Jakob Stoklund Olesen authored
This uses less memory and it reduces the complexity of sub-class operations: - hasSubClassEq() and friends become O(1) instead of O(N). - getCommonSubClass() becomes O(N) instead of O(N^2). In the future, TableGen will infer register classes. This makes it cheap to add them. llvm-svn: 140898
-
Jakob Stoklund Olesen authored
This one can also print 32-bit groups. llvm-svn: 140897
-
Jakob Stoklund Olesen authored
Use these lists instead of computing them on the fly in RegisterInfoEmitter. llvm-svn: 140895
-
- Sep 30, 2011
-
-
David Greene authored
Implement VarListElementInit:: resolveListElementReference so that lists of lists can be indexed. llvm-svn: 140882
-
Jakob Stoklund Olesen authored
llvm-svn: 140827
-