| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-print-before=<Pass Name>
Dump IR before running pass <Pass Name>.
-print-before-all
Dump IR before running each pass.
-print-after-all
Dump IR after running each pass.
These are helpful when tracking down a miscompilation. It is easy to
get IR dumps and do diffs on them, etc.
To make this work well, add a new getPrinterPass API to Pass so that
each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass
suitable for dumping out the kind of object the Pass works on.
llvm-svn: 100143
|
|
|
|
|
|
| |
label due to one or other reason.
llvm-svn: 100134
|
|
|
|
|
|
| |
all together.
llvm-svn: 100133
|
|
|
|
|
|
|
|
| |
zero.
- Do not try to infer GV alignment unless its type is sized. It's not possible to infer alignment if it has opaque type.
llvm-svn: 100118
|
|
|
|
| |
llvm-svn: 100117
|
|
|
|
|
|
| |
Update comment, rename a local variable.
llvm-svn: 100116
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Makes it possible to lower with floating point loads and stores.
2. Avoid unaligned loads / stores unless it's fast.
3. Fix some memcpy lowering logic bug related to when to optimize a
load from constant string into a constant.
4. Adjust x86 memcpy lowering threshold to make it more sane.
5. Fix x86 target hook so it uses vector and floating point memory
ops more effectively.
rdar://7774704
llvm-svn: 100090
|
|
|
|
| |
llvm-svn: 100065
|
|
|
|
| |
llvm-svn: 100062
|
|
|
|
| |
llvm-svn: 100058
|
|
|
|
|
|
|
|
|
|
| |
* Set the "DestA" and "DestB" according to how they're understood by the
method. I.e., if one or both of them should point to the "fall through" block,
then point to the fall through block.
* Improve the loop that removes superfluous edges to be more understandable.
llvm-svn: 100056
|
|
|
|
|
|
| |
functions. Partial fix for Radar 7424645.
llvm-svn: 100048
|
|
|
|
| |
llvm-svn: 100038
|
|
|
|
|
|
|
|
|
| |
POD-like anyway, so we don't even care about calling their d'tors (DIEBlock
being the exception).
~6% less mallocs and ~1% compile time improvement on clang -O0 -g oggenc.c
llvm-svn: 100035
|
|
|
|
| |
llvm-svn: 99999
|
|
|
|
| |
llvm-svn: 99998
|
|
|
|
| |
llvm-svn: 99995
|
|
|
|
| |
llvm-svn: 99993
|
|
|
|
| |
llvm-svn: 99992
|
|
|
|
| |
llvm-svn: 99989
|
|
|
|
| |
llvm-svn: 99986
|
|
|
|
|
|
|
|
|
| |
instructions. In addition to being a convenience,
they are faster than the old apis, particularly when
not going from an MDKindID like people should be
doing.
llvm-svn: 99982
|
|
|
|
| |
llvm-svn: 99948
|
|
|
|
| |
llvm-svn: 99938
|
|
|
|
|
|
|
|
|
| |
memmove, and memset,
e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1)
A update of langref will occur in a subsequent checkin.
llvm-svn: 99928
|
|
|
|
|
|
|
| |
only a single type of object to be allocated. Use it to make VNInfo destruction
typesafe.
llvm-svn: 99919
|
|
|
|
|
|
|
|
|
| |
create symbols. It is extremely error prone and a source of a lot
of the remaining integrated assembler bugs on x86-64.
This fixes rdar://7807601.
llvm-svn: 99902
|
|
|
|
| |
llvm-svn: 99901
|
|
|
|
| |
llvm-svn: 99899
|
|
|
|
| |
llvm-svn: 99895
|
|
|
|
| |
llvm-svn: 99883
|
|
|
|
| |
llvm-svn: 99882
|
|
|
|
|
|
|
|
|
|
| |
on all objects it has allocated, if they are all of the same size and alignment.
Use this to destruct all VNInfos allocated in LiveIntervalAnalysis (PR6653).
valnos is not reliable for this purpose, as seen in r99400
(which still leaked, and sometimes caused double frees).
llvm-svn: 99881
|
|
|
|
| |
llvm-svn: 99879
|
|
|
|
|
|
|
| |
catch-all. The "dominates" way won't catch all of the selectors which must be
changed.
llvm-svn: 99850
|
|
|
|
|
|
|
|
|
|
|
| |
transform. I.e., if a clean-up eh.selector call dominates the invoke of an
_Unwind_Resume_or_Rethrow, then we convert the eh.selector into a
catch-all. This patch, however, uses the DominatorTree information, and doesn't
go through the whole rigmarole of starting at the eh.exception call, finding the
corresponding URoR and eh.selector calls, and trying to trace through any number
of instruction types to get to them.
llvm-svn: 99846
|
|
|
|
|
|
| |
instruction, in a variable's DIE.
llvm-svn: 99845
|
|
|
|
| |
llvm-svn: 99840
|
|
|
|
| |
llvm-svn: 99836
|
|
|
|
| |
llvm-svn: 99833
|
|
|
|
|
|
| |
not stop it by using RAII.
llvm-svn: 99832
|
|
|
|
|
|
|
|
| |
AsmPrinter.cpp.
This is same as r99772 (which was reverted) with just one meaningful difference where two source lines exchanged their positions.
llvm-svn: 99816
|
|
|
|
| |
llvm-svn: 99778
|
|
|
|
| |
llvm-svn: 99774
|
|
|
|
| |
llvm-svn: 99772
|
|
|
|
|
|
|
|
|
|
| |
and those derived from them. These are obnoxious because
they were written as: PatLeaf<(bitconvert). Not having an
argument was foiling adding better type checking for operand
count matching up with what was required (in this case,
bitconvert always requires an operand!)
llvm-svn: 99759
|
|
|
|
| |
llvm-svn: 99742
|
|
|
|
|
|
| |
are cleaned up, we can remove an old fixme.
llvm-svn: 99741
|
|
|
|
|
|
|
| |
1, 1 cases which are by-far the most frequent. This shrinks the X86
isel table from 77014 -> 74657 bytes.
llvm-svn: 99740
|
|
|
|
|
|
|
| |
can cause a crash on crazy situations in msp430 when morph-node-to
is disabled.
llvm-svn: 99739
|