- Mar 15, 2011
-
-
Eli Friedman authored
of pointers in an std::map. llvm-svn: 127650
-
Evan Cheng authored
zext(undef) = 0, because the top bits will be zero. llvm-svn: 127649
-
Sean Callanan authored
in the instruction tables and fixed a few bugs that were causing decode conflicts. Rudimentary tests are coming up in the next patch. llvm-svn: 127646
-
Sean Callanan authored
instruction set. This code adds support for the VEX prefix and for the YMM registers accessible on AVX-enabled architectures. Instruction table support that enables AVX instructions for the disassembler is in an upcoming patch. llvm-svn: 127644
-
Andrew Trick authored
This function performed acrobatics to prove no-self-wrap, which we now have for free. llvm-svn: 127643
-
Johnny Chen authored
register operand was erroneously added. Remove an incorrect assert which triggers the bug. rdar://problem/9131529 llvm-svn: 127642
-
Bill Wendling authored
and then go kablooie. The problem was that it was tracking the PHI nodes anew each time into this function. But it didn't need to. And because the recursion didn't know that a PHINode was visited before, it would go ahead and call itself. There is a testcase, but unfortunately it's too big to add. This problem will go away with the EH rewrite. <rdar://problem/8856298> llvm-svn: 127640
-
Andrew Trick authored
This needs review. llvm-svn: 127638
-
Jim Grosbach authored
Also more cleanly separate the ARM vs. Thumb functionality. Previously, the encoding would be incorrect for some Thumb instructions (the indirect calls). llvm-svn: 127637
-
Eric Christopher authored
normal version. Fixes rdar://9123638 llvm-svn: 127636
-
Bill Wendling authored
can. As Nate pointed out, VTBL isn't super performant, but it *has* to be better than this: _shuf: @ BB#0: @ %entry push {r4, r7, lr} add r7, sp, #4 sub sp, #12 mov r4, sp bic r4, r4, #7 mov sp, r4 mov r2, sp vmov d16, r0, r1 orr r0, r2, #6 orr r3, r2, #7 vst1.8 {d16[0]}, [r3] vst1.8 {d16[5]}, [r0] subs r4, r7, #4 orr r0, r2, #5 vst1.8 {d16[4]}, [r0] orr r0, r2, #4 vst1.8 {d16[4]}, [r0] orr r0, r2, #3 vst1.8 {d16[0]}, [r0] orr r0, r2, #2 vst1.8 {d16[2]}, [r0] orr r0, r2, #1 vst1.8 {d16[1]}, [r0] vst1.8 {d16[3]}, [r2] vldr.64 d16, [sp] vmov r0, r1, d16 mov sp, r4 pop {r4, r7, pc} The "illegal" testcase in vext.ll is no longer illegal. <rdar://problem/9078775> llvm-svn: 127630
-
- Mar 14, 2011
-
-
Jakob Stoklund Olesen authored
Use the opportunity to get rid of the trailing underscore variable names. llvm-svn: 127618
-
Jakob Stoklund Olesen authored
Remove the unused reserved_ bit vector, no functional change intended. This doesn't break 'svn blame', this file really is all my fault. llvm-svn: 127607
-
Jim Grosbach authored
llvm-svn: 127601
-
Evan Cheng authored
llvm-svn: 127600
-
Evan Cheng authored
llvm-svn: 127598
-
Evan Cheng authored
llvm-svn: 127595
-
Andrew Trick authored
llvm-svn: 127593
-
Andrew Trick authored
llvm-svn: 127591
-
Andrew Trick authored
properties. Added the self-wrap flag for SCEV::AddRecExpr. A slew of temporary FIXMEs indicate the intention of the no-self-wrap flag without changing behavior in this revision. llvm-svn: 127590
-
Andrew Trick authored
llvm-svn: 127589
-
Justin Holewinski authored
- Emit all arrays as type .b8 and proper sizes in bytes to conform to the output of nvcc llvm-svn: 127584
-
Justin Holewinski authored
llvm-svn: 127578
-
Che-Liang Chiou authored
llvm-svn: 127577
-
Jin-Gu Kang authored
Early CSE pass so this patch reverts it to original source code. llvm-svn: 127574
-
- Mar 13, 2011
-
-
Che-Liang Chiou authored
llvm-svn: 127569
-
Jin-Gu Kang authored
load and store reference same memory location, the memory location is represented by getelementptr with two uses (load and store) and the getelementptr's base is alloca with single use. At this point, instructions from alloca to store can be removed. (this pattern is generated when bitfield is accessed.) For example, %u = alloca %struct.test, align 4 ; [#uses=1] %0 = getelementptr inbounds %struct.test* %u, i32 0, i32 0;[#uses=2] %1 = load i8* %0, align 4 ; [#uses=1] %2 = and i8 %1, -16 ; [#uses=1] %3 = or i8 %2, 5 ; [#uses=1] store i8 %3, i8* %0, align 4 llvm-svn: 127565
-
Jakob Stoklund Olesen authored
Use the virtual register number as a cache tag instead. They are not reused. llvm-svn: 127561
-
Jakob Stoklund Olesen authored
This allows the allocator to free any resources used by the virtual register, including physical register assignments. llvm-svn: 127560
-
- Mar 12, 2011
-
-
Oscar Fuentes authored
llvm-svn: 127554
-
Benjamin Kramer authored
llvm-svn: 127548
-
Duncan Sands authored
llvm-gcc-i386-linux-selfhost and llvm-x86_64-linux-checks buildbots. The original log entry: Remove optimization emitting a reference insted of label difference, since it can create more relocations. Removed isBaseAddressKnownZero method, because it is no longer used. llvm-svn: 127540
-
Jin-Gu Kang authored
llvm-svn: 127539
-
Jakob Stoklund Olesen authored
llvm-svn: 127530
-
Jakob Stoklund Olesen authored
Live range splitting can create a number of small live ranges containing only a single real use. Spill these small live ranges along with the large range they are connected to with copies. This enables memory operand folding and maximizes the spill to fill distance. Work in progress with known bugs. llvm-svn: 127529
-
Sean Callanan authored
disassembler's disassembler map. llvm-svn: 127527
-
Jakob Stoklund Olesen authored
There are too many compatibility problems with using mixed types in std::upper_bound, and I don't want to spend 110 lines of boilerplate setting up a call to a 10-line function. Binary search is not /that/ hard to implement correctly. I tried terminating the binary search with a linear search, but that actually made the algorithm slower against my expectation. Most live intervals have less than 4 segments. The early test against endIndex() does pay, and this version is 25% faster than plain std::upper_bound(). llvm-svn: 127522
-
Eric Christopher authored
Go ahead and add them on when we might want to use them and let later passes remove them. Fixes rdar://9118569 llvm-svn: 127518
-
Jim Grosbach authored
llvm-svn: 127516
-
Jim Grosbach authored
actual instruction as the non-Darwin defs, but have different call-clobber semantics and so need separate patterns. They don't need to duplicate the encoding information, however. llvm-svn: 127515
-