| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle
mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes
as the shuffle mask. A value of -1 represents UNDEF.
In addition to eliminating the creation of illegal BUILD_VECTORS just to
represent shuffle masks, we are better about canonicalizing the shuffle mask,
resulting in substantially better code for some classes of shuffles.
A clean up of x86 shuffle code, and some canonicalizing in DAGCombiner is next.
llvm-svn: 69952
|
| |
|
|
|
|
|
|
| |
use ISD::EXTRACT_ELEMENT. SelectionDAG has a special fast-path for
the cast of an EXTRACT_ELEMENT with a BUILD_PAIR operand, for the
common case.
llvm-svn: 69948
|
| |
|
|
| |
llvm-svn: 69946
|
| |
|
|
|
|
| |
utility function.
llvm-svn: 69937
|
| |
|
|
|
|
|
| |
but this change makes the code more general and easier to adapt for
new purposes.
llvm-svn: 69935
|
| |
|
|
| |
llvm-svn: 69934
|
| |
|
|
| |
llvm-svn: 69919
|
| |
|
|
| |
llvm-svn: 69918
|
| |
|
|
|
|
|
|
|
|
|
| |
with the persistent insertion point, and change IndVars to make
use of it. This fixes a bug where IndVars was holding on to a
stale insertion point and forcing the SCEVExpander to continue to
use it.
This fixes PR4038.
llvm-svn: 69892
|
| |
|
|
|
|
| |
an insn from beginnin to find out the banksel operand.
llvm-svn: 69883
|
| |
|
|
|
|
| |
whitespace in the same file.
llvm-svn: 69870
|
| |
|
|
|
|
|
| |
memory operand tuples. This doesn't ever come up in normal
code however.
llvm-svn: 69848
|
| |
|
|
| |
llvm-svn: 69844
|
| |
|
|
| |
llvm-svn: 69842
|
| |
|
|
| |
llvm-svn: 69836
|
| |
|
|
| |
llvm-svn: 69816
|
| |
|
|
| |
llvm-svn: 69809
|
| |
|
|
|
|
|
|
|
|
|
| |
instructions in order to avoid inserting new ones. However, if
the cast instruction is the SCEVExpander's InsertPt, this
causes subsequently emitted instructions to be inserted near
the cast, and not at the location of the original insert point.
Fix this by adjusting the insert point in such cases.
This fixes PR4009.
llvm-svn: 69808
|
| |
|
|
|
|
| |
to better handle inserting instructions at the end of a block.
llvm-svn: 69807
|
| |
|
|
|
|
| |
The address of data frame for function can be obtained by subtracting 2 from the function begin label.
llvm-svn: 69801
|
| |
|
|
|
|
|
|
| |
the predecessors themselves. This halves the time
to optimize the testcase, beyond what my previous patch did.
llvm-svn: 69792
|
| |
|
|
|
|
| |
testcase from PR3549. More improvements to come.
llvm-svn: 69788
|
| |
|
|
| |
llvm-svn: 69752
|
| |
|
|
|
|
|
| |
practical benefit in the case of ScalarEvolution, and it's otherwise
a nuisance.
llvm-svn: 69749
|
| |
|
|
|
|
| |
This fixes a very subtle bug. vr defined by an implicit_def is allowed overlap with any register since it doesn't actually modify anything. However, if it's used as a two-address use, its live range can be extended and it can be spilled. The spiller must take care not to emit a reload for the vn number that's defined by the implicit_def. This is both a correctness and performance issue.
llvm-svn: 69743
|
| |
|
|
|
|
|
|
| |
type to truncate to should be the number of bits of the value that are
preserved, not the number that are clobbered with sign-extension.
This fixes regressions in ldecod.
llvm-svn: 69704
|
| |
|
|
| |
llvm-svn: 69680
|
| |
|
|
|
|
| |
Patch by Jay Foad!
llvm-svn: 69679
|
| |
|
|
|
|
| |
Patch by Jay Foad!
llvm-svn: 69678
|
| |
|
|
|
|
| |
Spotted by gcc-4.5.
llvm-svn: 69673
|
| |
|
|
|
|
| |
This fixes PR4002.
llvm-svn: 69672
|
| |
|
|
| |
llvm-svn: 69665
|
| |
|
|
|
|
|
| |
as they appear in LLVM IR. This isn't particularly interesting
on its own; this is just setting up some infrastructure.
llvm-svn: 69655
|
| |
|
|
| |
llvm-svn: 69651
|
| |
|
|
|
|
| |
and SCEVSignExtendExpr.
llvm-svn: 69649
|
| |
|
|
| |
llvm-svn: 69645
|
| |
|
|
|
|
| |
the code to minimize dependencies on TargetData.
llvm-svn: 69644
|
| |
|
|
| |
llvm-svn: 69643
|
| |
|
|
| |
llvm-svn: 69640
|
| |
|
|
|
|
| |
Patch by Marius Wachtler
llvm-svn: 69637
|
| |
|
|
|
|
|
| |
This makes the extra copyRegToReg calls in ScheduleDAGSDNodesEmit.cpp
unnecessary. Derived from a patch by Jakob Stoklund Olesen.
llvm-svn: 69635
|
| |
|
|
|
|
| |
broadcasted vector constants.
llvm-svn: 69634
|
| |
|
|
|
|
| |
GEP's don't usually become instructions.
llvm-svn: 69631
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
clang: error: unable to make temporary file: /etc/cc: can't make
unique filename: Permission denied
instead of
clang: error: unable to make temporary file: /etc/cc: can't make
unique filenamePermission denied
for example.
Also, audited the uses of MakeErrMsg to make the prefix strings
consistent (not end with newline/punctuation/space/": ").
llvm-svn: 69626
|
| |
|
|
| |
llvm-svn: 69624
|
| |
|
|
|
|
|
| |
in the MachineFunction class, renaming it to addLiveIn for consistency with
the same method in MachineBasicBlock. Thanks for Anton for suggesting this.
llvm-svn: 69615
|
| |
|
|
| |
llvm-svn: 69613
|
| |
|
|
| |
llvm-svn: 69607
|
| |
|
|
|
|
| |
- Find more reloads from SS.
llvm-svn: 69606
|
| |
|
|
| |
llvm-svn: 69605
|