| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
so that the SCEVExpander doesn't retain a dangling pointer as its
insert position. The dangling pointer in this case wasn't ever used
to insert new instructions, but it was causing trouble with
SCEVExpander's code for automatically advancing its insert position
past debug intrinsics.
This fixes use-after-free errors that valgrind noticed in
test/Transforms/IndVarSimplify/2007-06-06-DeleteDanglesPtr.ll and
test/Transforms/IndVarSimplify/exit_value_tests.ll.
llvm-svn: 99036
|
| |
|
|
|
|
|
| |
caller, then it is not safe to optimize the call into a sibcall since
the call result has to be popped off the x87 stack.
llvm-svn: 99032
|
| |
|
|
| |
llvm-svn: 99031
|
| |
|
|
| |
llvm-svn: 99014
|
| |
|
|
|
|
|
| |
IndexModeUpd and then populates the Inst{21}=1 while populating the instructions
for disassembly.
llvm-svn: 99013
|
| |
|
|
|
|
|
|
|
|
|
|
| |
--- Reverse-merging r98889 into '.':
U lib/Target/ARM/ARMInstrNEON.td
U lib/Target/ARM/ARMISelLowering.h
U lib/Target/ARM/ARMInstrInfo.td
U lib/Target/ARM/ARMInstrVFP.td
U lib/Target/ARM/ARMISelLowering.cpp
U lib/Target/ARM/ARMInstrFormats.td
llvm-svn: 99010
|
| |
|
|
|
|
|
|
| |
use-before-def errors in SCEVExpander-produced code in sqlite3 when debug
info with optimization is enabled, though the testcases for this are
dependent on use-list order.
llvm-svn: 99001
|
| |
|
|
|
|
| |
that they are dead.
llvm-svn: 99000
|
| |
|
|
| |
llvm-svn: 98994
|
| |
|
|
|
|
| |
is valid, but not useful, when variable identified by !1 is optimized away by the optimizer.
llvm-svn: 98986
|
| |
|
|
|
|
|
|
|
| |
override prefix and only the r/m16 forms should have had that. Also for variant
one, the AT&T syntax, added suffixes to all forms. Also added the missing
64-bit form for 'CRC32 r64, r/m8'. Plus added test cases for all forms and
tweaked one test case to add the needed suffixes.
llvm-svn: 98980
|
| |
|
|
|
|
|
|
|
|
|
| |
disabled for several months (since svn r88806) and no one noticed. My fix
for pr6543 yesterday reenabled it, but broke the ARM port's code for using
TBB/TBH. Rather than adding a target hook to disable merging for Thumb2 only,
I'm just taking this out. It is not common to have identical jump tables,
the code we used to merge them was O(N^2), and it only helps code size, not
performance.
llvm-svn: 98977
|
| |
|
|
|
|
|
|
| |
- This is "extraordinarily" Darwin 'as' compatible. See the litany of FIXMEs littered about for more information.
- There are a few cases which seem to clearly be 'as' bugs which I have left unsupported, and there is one cases where we diverge but should fix if it blocks diffing .o files (Darwin 'as' ends up widening a jump unnecessarily).
- 403.gcc build, runs, and diffs equivalently to the 'as' built version now (using llvm-mc). However, it builds so slowly that I wouldn't recommend trying it quite yet. :)
llvm-svn: 98974
|
| |
|
|
|
|
| |
only" so they don't get selected by the asm matcher.
llvm-svn: 98972
|
| |
|
|
|
|
|
| |
room for it. This is in preparation for another patch which is adding NEON
subformats to facilitate disassembly.
llvm-svn: 98967
|
| |
|
|
|
|
| |
http://smooshlab.apple.com:8010/builders/clang-x86_64-darwin10-fnt/builds/703 in the nightly test suite
llvm-svn: 98958
|
| |
|
|
|
|
|
|
|
|
|
| |
This time I did a self-hosted bootstrap on Linux x86-64,
with no problems. Let's see how darwin 64-bit self-hosting
goes. At the first sign of failure I'll back this out.
Maybe the valgrind bots give me a hint of what may be wrong
(it at all).
llvm-svn: 98957
|
| |
|
|
|
|
| |
- MCAssembler is now object-file independent, although we will surely need more work to fully support ELF/COFF.
llvm-svn: 98955
|
| |
|
|
| |
llvm-svn: 98954
|
| |
|
|
| |
llvm-svn: 98953
|
| |
|
|
| |
llvm-svn: 98952
|
| |
|
|
| |
llvm-svn: 98950
|
| |
|
|
| |
llvm-svn: 98949
|
| |
|
|
| |
llvm-svn: 98948
|
| |
|
|
|
|
| |
specific not object writer specific task.
llvm-svn: 98947
|
| |
|
|
|
|
| |
and eliminate MCAsmFixup::FixedValue.
llvm-svn: 98944
|
| |
|
|
|
|
| |
changes the object writer may need to make to the assembler from the actual .o writing.
llvm-svn: 98943
|
| |
|
|
|
|
| |
evaluation / relocation handling from the actual .o writing.
llvm-svn: 98942
|
| |
|
|
| |
llvm-svn: 98941
|
| |
|
|
|
|
| |
createAsmStreamer now takes ownership of the instprinter.
llvm-svn: 98939
|
| |
|
|
|
|
| |
need them.
llvm-svn: 98937
|
| |
|
|
| |
llvm-svn: 98936
|
| |
|
|
|
|
|
|
| |
dag isel gen instead of instruction properties. This
allows the oh-so-useful behavior of matching a variadic
non-root node.
llvm-svn: 98934
|
| |
|
|
| |
llvm-svn: 98932
|
| |
|
|
|
|
| |
match. Jakob, please take a look when you get a chance.
llvm-svn: 98931
|
| |
|
|
|
|
|
| |
can't match or just have no testcases. Will remove after
confirmation from dan that they really are dead.
llvm-svn: 98930
|
| |
|
|
| |
llvm-svn: 98928
|
| |
|
|
|
|
|
|
| |
algorithm (used on x86_64) for determining whether an evaluated fixup is fully resolved (doesn't need relocation).
- Test cases will follow, once we have x86_64 relocation support.
llvm-svn: 98926
|
| |
|
|
|
|
| |
- These find the defining symbol which identifies the containing atom for a symbol or address. They are currently very slow, but will be eliminated eventually.
llvm-svn: 98925
|
| |
|
|
|
|
| |
some corner cases.
llvm-svn: 98924
|
| |
|
|
|
|
| |
made up term to refer to non-temporary labels + temporary labels in sections-which-require symbols. For Darwin, it corresponds to symbols which effectively define an atom.
llvm-svn: 98923
|
| |
|
|
| |
llvm-svn: 98920
|
| |
|
|
| |
llvm-svn: 98919
|
| |
|
|
| |
llvm-svn: 98911
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to input patterns, we can fix X86ISD::CMP and X86ISD::BT as taking
two inputs (which have to be the same type) and *returning an i32*.
This is how the SDNodes get made in the graph, but we weren't able
to model it this way due to deficiencies in the pattern language.
Now we can change things like this:
def UCOM_FpIr80: FpI_<(outs), (ins RFP80:$lhs, RFP80:$rhs), CompareFP,
- [(X86cmp RFP80:$lhs, RFP80:$rhs),
- (implicit EFLAGS)]>; // CC = ST(0) cmp ST(i)
+ [(set EFLAGS, (X86cmp RFP80:$lhs, RFP80:$rhs))]>;
and fix terrible crimes like this:
-def : Pat<(parallel (X86cmp GR8:$src1, 0), (implicit EFLAGS)),
+def : Pat<(X86cmp GR8:$src1, 0),
(TEST8rr GR8:$src1, GR8:$src1)>;
This relies on matching the result of TEST8rr (which is EFLAGS, which is
an implicit def) to the result of X86cmp, an i32.
llvm-svn: 98903
|
| |
|
|
| |
llvm-svn: 98902
|
| |
|
|
| |
llvm-svn: 98901
|
| |
|
|
| |
llvm-svn: 98889
|
| |
|
|
| |
llvm-svn: 98888
|
| |
|
|
|
|
| |
copies weirdness more straightforward. Also, add GPR <-> SPR copy support.
llvm-svn: 98887
|