| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 77039
|
|
|
|
|
|
|
|
|
|
| |
- Some clients which used DOUT have moved to DEBUG. We are deprecating the
"magic" DOUT behavior which avoided calling printing functions when the
statement was disabled. In addition to being unnecessary magic, it had the
downside of leaving code in -Asserts builds, and of hiding potentially
unnecessary computations.
llvm-svn: 77019
|
|
|
|
| |
llvm-svn: 76702
|
|
|
|
| |
llvm-svn: 76598
|
|
|
|
|
|
|
|
|
| |
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").
llvm-svn: 75640
|
|
|
|
|
|
|
|
|
| |
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.
llvm-svn: 75379
|
|
|
|
|
|
| |
the [I|F]CmpInst constructors. Who knew!?
llvm-svn: 75200
|
|
|
|
|
|
|
| |
these instructions, no autoupgrade or backwards compatibility support is
provided.
llvm-svn: 74991
|
|
|
|
| |
llvm-svn: 74748
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
move loads back past a check that the load address
is valid, see new testcase. The test that went
in with 72661 has exactly this case, except that
the conditional it's moving past is checking
something else; I've settled for changing that
test to reference a global, not a pointer. It
may be possible to scan all the tests you pass and
make sure none of them are checking any component
of the address, but it's not trivial and I'm not
trying to do that here.
llvm-svn: 73632
|
|
|
|
| |
llvm-svn: 73625
|
|
|
|
| |
llvm-svn: 73398
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
integer and floating-point opcodes, introducing
FAdd, FSub, and FMul.
For now, the AsmParser, BitcodeReader, and IRBuilder all preserve
backwards compatability, and the Core LLVM APIs preserve backwards
compatibility for IR producers. Most front-ends won't need to change
immediately.
This implements the first step of the plan outlined here:
http://nondot.org/sabre/LLVMNotes/IntegerOverflow.txt
llvm-svn: 72897
|
|
|
|
|
|
|
|
| |
a single predecessor.
Patch by Jakub Staszak.
llvm-svn: 72661
|
|
|
|
| |
llvm-svn: 72589
|
|
|
|
| |
llvm-svn: 72577
|
|
|
|
|
|
| |
is, otherwise we get a <badref>.
llvm-svn: 72567
|
|
|
|
|
|
|
| |
This is useful when trying to figure out why GVN didn't eliminate redundant
loads.
llvm-svn: 72565
|
|
|
|
|
|
| |
Diagnosis and patch thanks to Jakub Staszak.
llvm-svn: 72562
|
|
|
|
|
|
|
|
| |
the optimizers about this. For example, a readonly
function with no uses cannot be removed unless it is
also marked nounwind.
llvm-svn: 71071
|
|
|
|
| |
llvm-svn: 68262
|
|
|
|
|
|
|
|
| |
Applications/Burg/burg
Applications/ClamAV/clamscan
and many other tests.
llvm-svn: 68211
|
|
|
|
| |
llvm-svn: 68172
|
|
|
|
|
|
|
| |
Also fixed a punctuation error in the header comment.
This fixes PR3775.
llvm-svn: 66542
|
|
|
|
| |
llvm-svn: 66244
|
|
|
|
| |
llvm-svn: 64363
|
|
|
|
| |
llvm-svn: 64065
|
|
|
|
| |
llvm-svn: 64062
|
|
|
|
| |
llvm-svn: 62535
|
|
|
|
|
|
| |
collapse them.
llvm-svn: 61358
|
|
|
|
| |
llvm-svn: 61354
|
|
|
|
| |
llvm-svn: 61353
|
|
|
|
|
|
| |
operator!= method.
llvm-svn: 61352
|
|
|
|
| |
llvm-svn: 61350
|
|
|
|
| |
llvm-svn: 61349
|
|
|
|
|
|
|
| |
truely deleted. These will be expanded with further checks of all of the data
structures.
llvm-svn: 61347
|
|
|
|
| |
llvm-svn: 61222
|
|
|
|
| |
llvm-svn: 61219
|
|
|
|
|
|
| |
and safe and orthogonal from turning off load pre.
llvm-svn: 61177
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with everyone's favorite error messages:
Comparing stages 2 and 3
warning: ./cc1-checksum.o differs
warning: ./cc1plus-checksum.o differs
Bootstrap comparison failure!
./c-decl.o differs
./cp/decl.o differs
./df-core.o differs
./gcc.o differs
./i386.o differs
./stor-layout.o differs
./tree-pretty-print.o differs
./tree.o differs
make[2]: *** [compare] Error 1
make[1]: *** [stage3-bubble] Error 2
See PR3227.
llvm-svn: 61169
|
|
|
|
|
|
|
|
|
| |
CFG when there is exactly one predecessor where the load is not available.
This is designed to not increase code size but still eliminate partially
redundant loads. This fires 1765 times on 403.gcc even though it doesn't
do critical edge splitting yet (the most common reason for it to fail).
llvm-svn: 61027
|
|
|
|
| |
llvm-svn: 61024
|
|
|
|
|
|
|
| |
cleans up the generated code a bit. This should have the added benefit of
not randomly renaming functions/globals like my previous patch did. :)
llvm-svn: 61023
|
|
|
|
|
|
|
|
| |
is disabled for now, as it actually pessimizes code in the abscence
of phi translation for load elimination. This slow down GVN a bit, by about 2% on 403.gcc.
llvm-svn: 61021
|
|
|
|
| |
llvm-svn: 61009
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
self-hosting LLVM:
llvm[2]: Linking Release executable opt (without symbols)
...
Undefined symbols:
"llvm::APFloat::IEEEsingle", referenced from:
__ZN4llvm7APFloat10IEEEsingleE$non_lazy_ptr in libLLVMCore.a(Constants.o)
__ZN4llvm7APFloat10IEEEsingleE$non_lazy_ptr in libLLVMCore.a(AsmWriter.o)
__ZN4llvm7APFloat10IEEEsingleE$non_lazy_ptr in libLLVMCore.a(ConstantFold.o)
"llvm::APFloat::IEEEdouble", referenced from:
__ZN4llvm7APFloat10IEEEdoubleE$non_lazy_ptr in libLLVMCore.a(Constants.o)
__ZN4llvm7APFloat10IEEEdoubleE$non_lazy_ptr in libLLVMCore.a(AsmWriter.o)
__ZN4llvm7APFloat10IEEEdoubleE$non_lazy_ptr in libLLVMCore.a(ConstantFold.o)
ld: symbol(s) not found
This is in release mode. To replicate, compile llvm and llvm-gcc in optimized
mode. Then build llvm, in optimized mode, with the newly created compiler.
llvm-svn: 60977
|
|
|
|
|
|
| |
a pretification of the IR.
llvm-svn: 60973
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of a pointer. This allows is to catch more equivalencies. For example,
the type_lists_compatible_p function used to require two iterations of
the gvn pass (!) to delete its 18 redundant loads because the first pass
would CSE all the addressing computation cruft, which would unblock the
second memdep/gvn passes from recognizing them. This change allows
memdep/gvn to catch all 18 when run just once on the function (as is
typical :) instead of just 3.
On all of 403.gcc, this bumps up the # reundandancies found from:
63 gvn - Number of instructions PRE'd
153991 gvn - Number of instructions deleted
50069 gvn - Number of loads deleted
to:
63 gvn - Number of instructions PRE'd
154137 gvn - Number of instructions deleted
50185 gvn - Number of loads deleted
+120 loads deleted isn't bad.
llvm-svn: 60799
|
|
|
|
|
|
| |
pointer stuff from it, simplifying the code a bit.
llvm-svn: 60783
|
|
|
|
|
|
|
|
|
|
|
|
| |
MemDep::getNonLocalPointerDependency method. There are
some open issues with this (missed optimizations) and
plenty of future work, but this does allow GVN to eliminate
*slightly* more loads (49246 vs 49033).
Switching over now allows simplification of the other code
path in memdep.
llvm-svn: 60780
|