| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
| |
conforms to the ABI, but DAGCombine could in theory recognize the sequence of
zext asserts and truncates and generate incorrect code.
llvm-svn: 127754
|
| |
|
|
|
|
| |
can event.
llvm-svn: 127741
|
| |
|
|
|
|
| |
x86_64-win32.
llvm-svn: 127734
|
| |
|
|
| |
llvm-svn: 127733
|
| |
|
|
|
|
| |
are useless to Win64 target.
llvm-svn: 127732
|
| |
|
|
| |
llvm-svn: 127731
|
| |
|
|
| |
llvm-svn: 127730
|
| |
|
|
| |
llvm-svn: 127728
|
| |
|
|
|
|
|
|
| |
called at dtor context.
report_fatal_error() invokes exit(). We know report_fatal_error() might not write messages to stderr when any errors were detected on FD == 2.
llvm-svn: 127726
|
| |
|
|
|
| |
FIXME: It is a temporal hack. We should detect as many "special file name" as possible.
llvm-svn: 127724
|
| |
|
|
|
|
|
| |
for workaround.
FIXME: We should use sys::fs::unique_file() in future.
llvm-svn: 127723
|
| |
|
|
| |
llvm-svn: 127721
|
| |
|
|
| |
llvm-svn: 127720
|
| |
|
|
|
|
|
|
|
|
|
| |
chose is having a non-memcpy/memset use and being larger than any native integer
type. Originally I chose having an access of a size smaller than the total size
of the alloca, but this caused some minor issues on the spirit benchmark where
SRoA runs again after some inlining.
This fixes <rdar://problem/8613163>.
llvm-svn: 127718
|
| |
|
|
| |
llvm-svn: 127717
|
| |
|
|
| |
llvm-svn: 127716
|
| |
|
|
| |
llvm-svn: 127715
|
| |
|
|
| |
llvm-svn: 127714
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. The ARM Darwin *r9 call instructions were pseudo-ized recently.
Modify the ARMDisassemblerCore.cpp file to accomodate the change.
2. The disassembler was unnecessarily adding 8 to the sign-extended imm24:
imm32 = SignExtend(imm24:'00', 32); // A8.6.23 BL, BLX (immediate)
// Encoding A1
It has no business doing such. Removed the offending logic.
Add test cases to arm-tests.txt.
llvm-svn: 127707
|
| |
|
|
| |
llvm-svn: 127705
|
| |
|
|
|
|
|
| |
accept. If a value in the mask is out of range, it uses the value 0, for VTBL,
or leaves the value unchanged, for VTBX.
llvm-svn: 127700
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
defs.
After live range splitting, an original value may be available in multiple
registers. Tracing back through the registers containing the same value, find
the best place to insert a spill, determine if the value has already been
spilled, or discover a reaching def that may be rematerialized.
This is only the analysis part. The information is not used for anything yet.
llvm-svn: 127698
|
| |
|
|
| |
llvm-svn: 127697
|
| |
|
|
|
|
| |
On Win32 console, emitting char to col#79 causes linefeed, and the cursor will not return to col#79 upper line with backspace.
llvm-svn: 127696
|
| |
|
|
| |
llvm-svn: 127694
|
| |
|
|
| |
llvm-svn: 127691
|
| |
|
|
| |
llvm-svn: 127684
|
| |
|
|
| |
llvm-svn: 127683
|
| |
|
|
| |
llvm-svn: 127681
|
| |
|
|
| |
llvm-svn: 127680
|
| |
|
|
|
|
|
| |
Without this cmake fails at configuration when some target pass
"native" on LLVM_LINK_COMPONENTS and that is expanded to "X86".
llvm-svn: 127679
|
| |
|
|
| |
llvm-svn: 127678
|
| |
|
|
|
|
|
|
| |
- Remove PTX 1.4 code generation
- Change type of intrinsics to .v4.i32 instead of .v4.i16
- Add and/or/xor integer instructions
llvm-svn: 127677
|
| |
|
|
|
|
| |
MCFixupKind. This is the same technique that is used elsewhere in MC.
llvm-svn: 127676
|
| |
|
|
|
|
| |
when building with assertions disabled.
llvm-svn: 127675
|
| |
|
|
| |
llvm-svn: 127674
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
memory builtins as equivalent to malloc/free.
This is different from any attribute we have. For example, you can delete the
allocators when their result is unused, but you can't collapse two calls to the
same function, even if no global/memory state has changed in between. The
noalias return states that the result does not alias any other pointer, but
instcombine optimizes malloc() as though the result is non-null for the purpose
of eliminating unused pointers.
llvm-svn: 127673
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
v2 = bitcast v1
...
v3 = bitcast v2
...
= v3
=>
v2 = bitcast v1
...
= v1
if v1 and v3 are of in the same register class.
bitcast between i32 and fp (and others) are often not nops since they
are in different register classes. These bitcast instructions are often
left because they are in different basic blocks and cannot be
eliminated by dag combine.
rdar://9104514
llvm-svn: 127668
|
| |
|
|
|
|
|
| |
nothing more than a bitcast.
- Teach tablegen to automatically infer "Bitcast" property.
llvm-svn: 127667
|
| |
|
|
|
|
| |
of pointers in an std::map.
llvm-svn: 127650
|
| |
|
|
|
|
| |
zext(undef) = 0, because the top bits will be zero.
llvm-svn: 127649
|
| |
|
|
| |
llvm-svn: 127648
|
| |
|
|
|
|
|
|
| |
VEX prefixes are working for triadic AVX
instructions. This concludes the patch set to
enable AVX support for the X86 disassebler.
llvm-svn: 127647
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
This function performed acrobatics to prove no-self-wrap, which we now
have for free.
llvm-svn: 127643
|
| |
|
|
|
|
|
|
|
|
| |
because an extra
register operand was erroneously added. Remove an incorrect assert which triggers the bug.
rdar://problem/9131529
llvm-svn: 127642
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
This needs review.
llvm-svn: 127638
|
| |
|
|
|
|
|
| |
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
|