| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 98881
|
| |
|
|
|
|
|
| |
were missing it on some movq instructions and were not including the appropriate
PCrel bias.
llvm-svn: 98880
|
| |
|
|
| |
llvm-svn: 98869
|
| |
|
|
| |
llvm-svn: 98866
|
| |
|
|
| |
llvm-svn: 98864
|
| |
|
|
| |
llvm-svn: 98862
|
| |
|
|
|
|
| |
No functional changes.
llvm-svn: 98860
|
| |
|
|
|
|
|
|
| |
temporary workaround for matching inc/dec on x86_64 to the correct instruction.
- This hack will eventually be replaced with a robust mechanism for handling
matching instructions based on the available target features.
llvm-svn: 98858
|
| |
|
|
| |
llvm-svn: 98855
|
| |
|
|
| |
llvm-svn: 98853
|
| |
|
|
|
|
|
| |
RecyclingAllocator to allow client code to be simpler, and
simplify several clients.
llvm-svn: 98847
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
always create a new jump table. The intention was to avoid merging jump
tables in SelectionDAGBuilder, and to wait for the branch folding pass to
merge tables. Unfortunately, the same getJumpTableIndex() method is also
used to merge tables in branch folding, so as a result of this change
branch tables are never merged. Worse, the branch folding code is expecting
getJumpTableIndex to always return the index of an existing table, but with
this change, it never does so. In at least some cases, e.g., pr6543, this
creates references to non-existent tables.
I've fixed the problem by adding a new createJumpTableIndex function, which
will always create a new table, and I've changed getJumpTableIndex to only
look at existing tables.
llvm-svn: 98845
|
| |
|
|
|
|
|
| |
files that produce special relocation types where the
linker changes movq's into lea's.
llvm-svn: 98839
|
| |
|
|
| |
llvm-svn: 98838
|
| |
|
|
| |
llvm-svn: 98835
|
| |
|
|
|
|
|
|
| |
intrinsics. The intrinsic lookup code assumes that this check has been done
and assumes the names are at least 6 characters long. Valgrind complained
about this. pr6638.
llvm-svn: 98831
|
| |
|
|
| |
llvm-svn: 98830
|
| |
|
|
|
|
|
|
|
|
|
|
| |
BumpPtrAllocator-allocated region to allow it to be stored in a more
compact form and to avoid the need for a non-trivial destructor call.
Use this new mechanism in ScalarEvolution instead of
FastFoldingSetNode to avoid leaking memory in the case where a
FoldingSetNodeID uses heap storage, and to reduce overall memory
usage.
llvm-svn: 98829
|
| |
|
|
|
|
| |
format a size_t.
llvm-svn: 98819
|
| |
|
|
| |
llvm-svn: 98810
|
| |
|
|
| |
llvm-svn: 98793
|
| |
|
|
|
|
| |
need this for accessing to symbol modifiers.
llvm-svn: 98791
|
| |
|
|
|
|
|
|
| |
symbol differences, basically whether the assembler should attempt to understand atoms when using scattered symbols.
Also, avoid some virtual call overhead.
llvm-svn: 98789
|