- Jun 05, 2009
-
-
Dan Gohman authored
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
-
- May 31, 2009
-
-
Owen Anderson authored
a single predecessor. Patch by Jakub Staszak. llvm-svn: 72661
-
- May 29, 2009
-
-
Bill Wendling authored
llvm-svn: 72589
-
Torok Edwin authored
llvm-svn: 72577
-
Torok Edwin authored
is, otherwise we get a <badref>. llvm-svn: 72567
-
Torok Edwin authored
This is useful when trying to figure out why GVN didn't eliminate redundant loads. llvm-svn: 72565
-
Owen Anderson authored
Diagnosis and patch thanks to Jakub Staszak. llvm-svn: 72562
-
- May 06, 2009
-
-
Duncan Sands authored
the optimizers about this. For example, a readonly function with no uses cannot be removed unless it is also marked nounwind. llvm-svn: 71071
-
- Apr 02, 2009
-
-
Owen Anderson authored
llvm-svn: 68262
-
- Apr 01, 2009
-
-
Dan Gohman authored
Applications/Burg/burg Applications/ClamAV/clamscan and many other tests. llvm-svn: 68211
-
Owen Anderson authored
llvm-svn: 68172
-
- Mar 10, 2009
-
-
John Criswell authored
Also fixed a punctuation error in the header comment. This fixes PR3775. llvm-svn: 66542
-
- Mar 06, 2009
-
-
Devang Patel authored
llvm-svn: 66244
-
- Feb 12, 2009
-
-
Chris Lattner authored
llvm-svn: 64363
-
- Feb 08, 2009
-
-
Bill Wendling authored
llvm-svn: 64065
-
Bill Wendling authored
llvm-svn: 64062
-
- Jan 19, 2009
-
-
Chris Lattner authored
llvm-svn: 62535
-
- Dec 23, 2008
-
-
Owen Anderson authored
llvm-svn: 61358
-
- Dec 22, 2008
-
-
Bill Wendling authored
llvm-svn: 61354
-
Bill Wendling authored
llvm-svn: 61353
-
Bill Wendling authored
llvm-svn: 61352
-
Bill Wendling authored
llvm-svn: 61350
-
Bill Wendling authored
llvm-svn: 61349
-
Bill Wendling authored
truely deleted. These will be expanded with further checks of all of the data structures. llvm-svn: 61347
-
- Dec 18, 2008
-
-
Bill Wendling authored
llvm-svn: 61222
-
Bill Wendling authored
llvm-svn: 61219
-
Chris Lattner authored
and safe and orthogonal from turning off load pre. llvm-svn: 61177
-
Bill Wendling authored
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
-
- Dec 15, 2008
-
-
Chris Lattner authored
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
-
Owen Anderson authored
llvm-svn: 61024
-
Chris Lattner authored
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
-
Owen Anderson authored
Add support for slow-path GVN with full phi construction for scalars. This 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
-
- Dec 14, 2008
-
-
Owen Anderson authored
llvm-svn: 61009
-
- Dec 13, 2008
-
-
Bill Wendling authored
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
-
Chris Lattner authored
a pretification of the IR. llvm-svn: 60973
-
- Dec 09, 2008
-
-
Chris Lattner authored
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
-
Chris Lattner authored
pointer stuff from it, simplifying the code a bit. llvm-svn: 60783
-
Chris Lattner authored
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
-
Chris Lattner authored
llvm-svn: 60779
-
- Dec 05, 2008
-
-
Chris Lattner authored
1. Merge the 'None' result into 'Normal', making loads and stores return their dependencies on allocations as Normal. 2. Split the 'Normal' result into 'Clobber' and 'Def' to distinguish between the cases when memdep knows the value is produced from when we just know if may be changed. 3. Move some of the logic for determining whether readonly calls are CSEs into memdep instead of it being in GVN. This still leaves verification that the arguments are hte same to GVN to let it know about value equivalences in different contexts. 4. Change memdep's call/call dependency analysis to use getModRefInfo(CallSite,CallSite) instead of doing something very weak. This only really matters for things like DSA, but someday maybe we'll have some other decent context sensitive analyses :) 5. This reimplements the guts of memdep to handle the new results. 6. This simplifies GVN significantly: a) readonly call CSE is slightly simpler b) I eliminated the "getDependencyFrom" chaining for load elimination and load CSE doesn't have to worry about volatile (they are always clobbers) anymore. c) GVN no longer does any 'lastLoad' caching, leaving it to memdep. 7. The logic in DSE is simplified a bit and sped up. A potentially unsafe case was eliminated. llvm-svn: 60607
-