| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Patch contributed by m-s.
llvm-svn: 55167
|
| |
|
|
|
|
| |
slowdown in bzip2.
llvm-svn: 55113
|
| |
|
|
| |
llvm-svn: 55087
|
| |
|
|
| |
llvm-svn: 55035
|
| |
|
|
| |
llvm-svn: 54979
|
| |
|
|
|
|
| |
predicate, swap the order of the operands.
llvm-svn: 54907
|
| |
|
|
|
|
| |
produce an xor by 127.
llvm-svn: 54906
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In particular, Collector was confusing to implementors. Several
thought that this compile-time class was the place to implement
their runtime GC heap. Of course, it doesn't even exist at runtime.
Specifically, the renames are:
Collector -> GCStrategy
CollectorMetadata -> GCFunctionInfo
CollectorModuleMetadata -> GCModuleInfo
CollectorRegistry -> GCRegistry
Function::getCollector -> getGC (setGC, hasGC, clearGC)
Several accessors and nested types have also been renamed to be
consistent. These changes should be obvious.
llvm-svn: 54899
|
| |
|
|
| |
llvm-svn: 54878
|
| |
|
|
| |
llvm-svn: 54877
|
| |
|
|
|
|
|
|
| |
the predicate.
Also, make this optz'n apply in more cases where it's safe to do so.
llvm-svn: 54876
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
returning an std::string by value, it fills in a SmallString/SmallVector
passed in. This significantly reduces string thrashing in some cases.
More specifically, this:
- Adds an operator<< and a print method for APInt that allows you to
directly send them to an ostream.
- Reimplements APInt::toString to be much simpler and more efficient
algorithmically in addition to not thrashing strings quite as much.
This speeds up llvm-dis on kc++ by 7%, and may also slightly speed up the
asmprinter. This also fixes a bug I introduced into the asmwriter in a
previous patch w.r.t. alias printing.
llvm-svn: 54873
|
| |
|
|
|
|
| |
deprecated for almost a year; it's finally time for them to go away.
llvm-svn: 54822
|
| |
|
|
| |
llvm-svn: 54821
|
| |
|
|
| |
llvm-svn: 54813
|
| |
|
|
|
|
|
|
| |
instcombine
by ~10% on some testcases.
llvm-svn: 54811
|
| |
|
|
| |
llvm-svn: 54804
|
| |
|
|
| |
llvm-svn: 54792
|
| |
|
|
|
|
| |
the cast opeation.
llvm-svn: 54786
|
| |
|
|
| |
llvm-svn: 54780
|
| |
|
|
|
|
|
|
|
| |
invalidating the iterator by deleting the current use. This fixes a segfault on
64 bit linux reported in PR2675.
Also remove an unneeded if.
llvm-svn: 54778
|
| |
|
|
|
|
|
| |
can have a non-negative result; for example, -16%16 is 0. Also,
clarify the related comments. This fixes PR2670.
llvm-svn: 54767
|
| |
|
|
|
|
|
| |
track individual leaf values in such cases, so it needs to treat
struct values as normal values in this case.
llvm-svn: 54760
|
| |
|
|
| |
llvm-svn: 54754
|
| |
|
|
| |
llvm-svn: 54710
|
| |
|
|
| |
llvm-svn: 54707
|
| |
|
|
|
|
|
|
|
| |
do for scalars. Patch contributed by Nicolas Capens
This also generalizes the previous xforms to work on long double, now that
isExactlyValue works for long double.
llvm-svn: 54653
|
| |
|
|
|
|
|
| |
names. This can save a lot of allocations if you aren't going to be
looking at the output.
llvm-svn: 54546
|
| |
|
|
|
|
| |
postfixing it with a number.
llvm-svn: 54468
|
| |
|
|
|
|
|
| |
r53941 (but this was not noticed due to the lack of a basic test for
SRETPromotion).
llvm-svn: 54467
|
| |
|
|
| |
llvm-svn: 54464
|
| |
|
|
|
|
| |
when it meant to be emitting undef indices.
llvm-svn: 54417
|
| |
|
|
|
|
| |
the only use of its iv stride, the stride can be eliminated by moving it to another stride. If the scale is negative, swap the predicate instead of using a inverse predicate.
llvm-svn: 54415
|
| |
|
|
| |
llvm-svn: 54408
|
| |
|
|
|
|
| |
matters, the result is undefined anyway.
llvm-svn: 54396
|
| |
|
|
|
|
| |
tracking down that this was breaking llvm-gcc bootstrap on Linux.
llvm-svn: 54394
|
| |
|
|
|
|
| |
instead of having it call getIterationCount again.
llvm-svn: 54380
|
| |
|
|
|
|
| |
looks bogus. Please see PR2629 for details on why this is breaking things.
llvm-svn: 54372
|
| |
|
|
| |
llvm-svn: 54350
|
| |
|
|
| |
llvm-svn: 54266
|
| |
|
|
|
|
| |
CodeGen & Clang work coming next.
llvm-svn: 54161
|
| |
|
|
|
|
|
|
| |
partially unroll a loop when fully unrolling would not fit under the threshold.
Patch by Mikael Lepistö.
llvm-svn: 54160
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
that says "unconditional loads from this argument are safe", we now keep track
of the safety per set of indices from which loads happen. This prevents
ArgPromotion from promoting loads that aren't really valid. As an added effect,
this will now disregard the the type of the indices passed to a GEP, so
"load GEP %A, i32 1" and "load GEP %A, i64 1" will result in a single argument,
not two.
This fixes PR2598, for which a testcase has been added as well.
llvm-svn: 54159
|
| |
|
|
| |
llvm-svn: 54144
|
| |
|
|
|
|
|
|
| |
loaded.
This fixes PR2599.
llvm-svn: 54133
|
| |
|
|
| |
llvm-svn: 54128
|
| |
|
|
|
|
|
| |
command-line option, and disable it by default. It introduced performance
regressions because CodeGen is currently not able to remat such loads.
llvm-svn: 53997
|
| |
|
|
|
|
|
|
|
|
|
| |
case for this.
This allows instructions like loads from global variables declared to
be constant to be moved out of loops."
Patch by Stefanus Du Toit!
llvm-svn: 53945
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Remove the GetResultInst instruction. It is still accepted in LLVM assembly
and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove
support for return instructions with multiple values. These are auto-upgraded
to use InsertValueInst instructions.
The IRBuilder still accepts multiple-value returns, and auto-upgrades them
to InsertValueInst instructions.
llvm-svn: 53941
|
| |
|
|
|
|
|
|
|
| |
leads into a cycle involving a different PHI, LSR got stuck running
around that cycle looking for the original PHI. To avoid this, keep
track of visited PHIs and stop searching if we see one more than once.
This fixes PR2570.
llvm-svn: 53879
|