- Aug 29, 2012
-
-
Craig Topper authored
llvm-svn: 162829
-
Craig Topper authored
llvm-svn: 162828
-
Craig Topper authored
llvm-svn: 162826
-
Andrew Trick authored
llvm-svn: 162825
-
Andrew Trick authored
Adding arbitrary records to ARM.td would break basic-arm-instructions.s because selection of nop vs mov r0,r0 was ambiguous (this will be tested by a subsequent addition to ARM.td). An imperfect but sensible fix is to give precedence to match rules that have more constraints. llvm-svn: 162824
-
Jush Lu authored
llvm-svn: 162823
-
Andrew Trick authored
I have tested the fix, but have not been successfull in generating a robust unit test. This can only be exposed through particular register assignments. llvm-svn: 162821
-
Andrew Trick authored
llvm-svn: 162820
-
NAKAMURA Takumi authored
llvm-svn: 162819
-
Jakob Stoklund Olesen authored
WHen running with -verify-machineinstrs, check that tied operands come in matching use/def pairs, and that they are consistent with MCInstrDesc when it applies. llvm-svn: 162816
-
Chandler Carruth authored
This only fires if using a recent enough CMake -- compiler-rt uses a few of the more advanced features that not everyone needs. Please let me know if anyone sees issues with this. I'll be updating documentation and other stuff to tell people about this. Many thanks to Alexey for doing a ton of work to get ASan's CMake build into a really fantastic shape. =] llvm-svn: 162815
-
Jakob Stoklund Olesen authored
The isTied bit is set automatically when a tied use is added and MCInstrDesc indicates a tied operand. The tie is broken when one of the tied operands is removed. llvm-svn: 162814
-
NAKAMURA Takumi authored
llvm-svn: 162813
-
NAKAMURA Takumi authored
libprofile: [CMake] Let libprofile_rt be not loadable_module but shared library. Autoconf's one does so. llvm-svn: 162812
-
NAKAMURA Takumi authored
FIXME: profile_rt.dll could be built on win32. llvm-svn: 162811
-
Jack Carter authored
llvm-svn: 162808
-
Chad Rosier authored
llvm-svn: 162807
-
Michael Liao authored
llvm-svn: 162805
-
Jim Grosbach authored
Invalidate the instruction cache right before we start actually executing code, otherwise we can miss some that came later. This is still not quite right for a truly lazilly compiled environment, but it's closer. llvm-svn: 162803
-
Manman Ren authored
This patch implements ProfileDataLoader which loads profile data generated by -insert-edge-profiling and updates branch weight metadata accordingly. Patch by Alastair Murray. llvm-svn: 162799
-
- Aug 28, 2012
-
-
Jack Carter authored
on the size of the extraction and its position in the 64 bit word. This patch allows support of the dext transformations with mips64 direct object output. 0 <= msb < 32 0 <= lsb < 32 0 <= pos < 32 1 <= size <= 32 DINS The field is entirely contained in the right-most word of the doubleword 32 <= msb < 64 0 <= lsb < 32 0 <= pos < 32 2 <= size <= 64 DINSM The field straddles the words of the doubleword 32 <= msb < 64 32 <= lsb < 64 32 <= pos < 64 1 <= size <= 32 DINSU The field is entirely contained in the left-most word of the doubleword llvm-svn: 162782
-
Jack Carter authored
delimited. llvm-mc -disassemble access these through the -mattr option. llvm-objdump -disassemble had no such way to set the attribute so some instructions were just not recognized for disassembly. This patch accepts llvm-mc mechanism for specifying the attributes. llvm-svn: 162781
-
Michael Liao authored
llvm-svn: 162780
-
Jack Carter authored
transformed to the final instruction variant. An example would be dsrll which is transformed into dsll32 if the shift value is greater than 32. For direct object output we need to do this transformation in the codegen. If the instruction was inside branch delay slot, it was being missed. This patch corrects this oversight. llvm-svn: 162779
-
Roman Divacky authored
traceback table on PowerPC64. This helps gdb handle exceptions. The other mandatory fields are ignored by gdb and harder to implement so just add there a FIXME. Patch by Bill Schmidt. PR13641. llvm-svn: 162778
-
Akira Hatanaka authored
Fix a couple of bugs in mips' long branch pass. This patch was supposed to be committed along with r162731, so I don't have a new test case. llvm-svn: 162777
-
Jakob Stoklund Olesen authored
While in SSA form, a MachineInstr can have pairs of tied defs and uses. The tied operands are used to represent read-modify-write operands that must be assigned the same physical register. Previously, tied operand pairs were computed from fixed MCInstrDesc fields, or by using black magic on inline assembly instructions. The isTied flag makes it possible to add tied operands to any instruction while getting rid of (some of) the inlineasm magic. Tied operands on normal instructions are needed to represent predicated individual instructions in SSA form. An extra <tied,imp-use> operand is required to represent the output value when the instruction predicate is false. Adding a predicate to: %vreg0<def> = ADD %vreg1, %vreg2 Will look like: %vreg0<tied,def> = ADD %vreg1, %vreg2, pred:3, %vreg7<tied,imp-use> The virtual register %vreg7 is the value given to %vreg0 when the predicate is false. It will be assigned the same physreg as %vreg0. This commit adds the isTied flag and sets it based on MCInstrDesc when building an instruction. The flag is not used for anything yet. llvm-svn: 162774
-
Jakob Stoklund Olesen authored
Register operands are manipulated by a lot of target-independent code, and it is not always possible to preserve target flags. That means it is not safe to use target flags on register operands. None of the targets in the tree are using register operand target flags. External targets should be using immediate operands to annotate instructions with operand modifiers. llvm-svn: 162770
-
Bill Wendling authored
character instead of always the last character. llvm-svn: 162767
-
Hal Finkel authored
Add subtargets for Freescale e500mc (32-bit) and e5500 (64-bit) to the PowerPC backend. Patch by Tobias von Koch. llvm-svn: 162764
-
Benjamin Kramer authored
No test case, undefined shifts get folded early, but can occur when other transforms generate a constant. Thanks to Duncan for bringing this up. llvm-svn: 162755
-
Benjamin Kramer authored
llvm-svn: 162751
-
Nadav Rotem authored
Make sure that we don't call getZExtValue on values > 64 bits. Thanks Benjamin for noticing this. llvm-svn: 162749
-
Nadav Rotem authored
Teach InstCombine to canonicalize [SU]div+[AL]shl patterns. For example: %1 = lshr i32 %x, 2 %2 = udiv i32 %1, 100 rdar://12182093 llvm-svn: 162743
-
Bill Wendling authored
it here, then a 'register-memory' version would wrongly get the commutative flag. <rdar://problem/12180135> llvm-svn: 162741
-
Craig Topper authored
llvm-svn: 162740
-
Craig Topper authored
llvm-svn: 162738
-
NAKAMURA Takumi authored
llvm-svn: 162736
-
Michael Liao authored
- Add a target-specific DAG optimization to recognize a pattern PTEST-able. Such a pattern is a OR'd tree with X86ISD::OR as the root node. When X86ISD::OR node has only its flag result being used as a boolean value and all its leaves are extracted from the same vector, it could be folded into an X86ISD::PTEST node. llvm-svn: 162735
-
Jakob Stoklund Olesen authored
Both single-instruction and multi-instruction patterns can be checked for missing mayLoad / mayStore, and hasSideEffects flags. llvm-svn: 162734
-