summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* DebugInfoFinder::processModule was foiling my plot byChris Lattner2010-04-021-5/+20
| | | | | | | | | materializing an MDNode for every debugloc. don't do that! :) "clang -g -S t.c" really no longer makes mdnodes for location tuples now. llvm-svn: 100224
* Switch the code generator (except the JIT) onto the new DebugLocChris Lattner2010-04-021-18/+0
| | | | | | | | | | | | | | | representation. This eliminates the 'DILocation' MDNodes for file/line/col tuples from -O0 -g codegen. This remove the old DebugLoc class, making it a typedef for DebugLoc, I'll rename NewDebugLoc next. I didn't update the JIT to use the new apis, so it will continue to work, but be as slow as before. Someone should eventually do this or, better yet, rip out the JIT debug info stuff and build the JIT on top of MC. llvm-svn: 100209
* Revert 100204. It broke a bunch of tests and apparently changed what passes ↵Evan Cheng2010-04-022-75/+0
| | | | | | are run during codegen. llvm-svn: 100207
* Let's try this again. Re-apply 100143 including an apparent missingDavid Greene2010-04-022-0/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | <string> include. For some reason the buildbot choked on this while my builds did not. It's probably due to a difference in system headers. --- Add some switches helpful for debugging: -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: 100204
* Revert r100143.Eric Christopher2010-04-012-75/+0
| | | | llvm-svn: 100146
* Add some switches helpful for debugging:David Greene2010-04-012-0/+75
| | | | | | | | | | | | | | | | | | | | | | | -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
* s/getNameStr/getName/Benjamin Kramer2010-03-311-3/+3
| | | | llvm-svn: 100011
* microoptimize this hot method, also making it more Chris Lattner2010-03-311-3/+2
| | | | | | consistent with other similar ones. llvm-svn: 99997
* reapply my timer rewrite with a change for PassManager to store Chris Lattner2010-03-302-13/+16
| | | | | | timers by pointer instead of by-value. llvm-svn: 99871
* revert r99862 which is causing FNT failures.Chris Lattner2010-03-302-16/+13
| | | | llvm-svn: 99870
* fairly major rewrite of various timing related stuff.Chris Lattner2010-03-302-13/+16
| | | | llvm-svn: 99862
* rename pred_const_iterator to const_pred_iterator for consistency's sakeGabor Greif2010-03-254-14/+14
| | | | llvm-svn: 99567
* rename use_const_iterator to const_use_iterator for consistency's sakeGabor Greif2010-03-253-3/+3
| | | | llvm-svn: 99564
* Reapply r99451 with a fix to move the NoInline check to the cost functionsEric Christopher2010-03-251-2/+4
| | | | | | instead of InlineFunction. llvm-svn: 99483
* Finally land the InvokeInst operand reordering.Gabor Greif2010-03-241-1/+1
| | | | | | | | | | | | I have audited all getOperandNo calls now, fixing hidden assumptions. CallSite related uglyness will be eliminated successively. Note this patch has a long and griveous history, for all the back-and-forths have a look at CallSite.h's log. llvm-svn: 99399
* Don't back past debug info intrinsics; SCEVExpander's strategyDan Gohman2010-03-231-12/+1
| | | | | | | for ignoring debug info intrinsics everywhere else is to advance past them, and it needs to be consistent. llvm-svn: 99332
* backing out r99170 because it still fails on clang-x86_64-darwin10-fntGabor Greif2010-03-221-1/+1
| | | | llvm-svn: 99171
* Now that hopefully all direct accesses to InvokeInst operands are fixedGabor Greif2010-03-221-1/+1
| | | | | | we can reapply the InvokeInst operand reordering patch. (see r98957). llvm-svn: 99170
* Fix more places to more thoroughly ignore debug intrinsics. This fixesDan Gohman2010-03-191-5/+13
| | | | | | | | use-before-def errors in SCEVExpander-produced code in sqlite3 when debug info with optimization is enabled, though the testcases for this are dependent on use-list order. llvm-svn: 99001
* back out r98957, it broke ↵Gabor Greif2010-03-191-1/+1
| | | | | | http://smooshlab.apple.com:8010/builders/clang-x86_64-darwin10-fnt/builds/703 in the nightly test suite llvm-svn: 98958
* Recommit r80858 again (which has been backed out in r80871).Gabor Greif2010-03-191-1/+1
| | | | | | | | | | | This time I did a self-hosted bootstrap on Linux x86-64, with no problems. Let's see how darwin 64-bit self-hosting goes. At the first sign of failure I'll back this out. Maybe the valgrind bots give me a hint of what may be wrong (it at all). llvm-svn: 98957
* FP16 constfoldingAnton Korobeynikov2010-03-191-0/+25
| | | | llvm-svn: 98911
* Simplify this code.Dan Gohman2010-03-181-16/+8
| | | | llvm-svn: 98853
* Define placement new wrappers for BumpPtrAllocator andDan Gohman2010-03-182-24/+21
| | | | | | | RecyclingAllocator to allow client code to be simpler, and simplify several clients. llvm-svn: 98847
* Add the ability to "intern" FoldingSetNodeID data into aDan Gohman2010-03-181-16/+16
| | | | | | | | | | | | BumpPtrAllocator-allocated region to allow it to be stored in a more compact form and to avoid the need for a non-trivial destructor call. Use this new mechanism in ScalarEvolution instead of FastFoldingSetNode to avoid leaking memory in the case where a FoldingSetNodeID uses heap storage, and to reduce overall memory usage. llvm-svn: 98829
* Reapply r98755 with a thinko which miscompiled gengtype fixed.Dan Gohman2010-03-182-34/+35
| | | | llvm-svn: 98793
* Revert 98755, which may be causing trouble.Dan Gohman2010-03-172-35/+34
| | | | llvm-svn: 98762
* Change SCEVNAryExpr's operand array from a SmallVector to a plainDan Gohman2010-03-172-34/+35
| | | | | | | | | | pointer and length, and allocate the arrays in ScalarEvolution's BumpPtrAllocator, so that they get released when their owning SCEV gets released. SCEVs are immutable, so they don't need to worry about operand array resizing. This fixes a memory leak reported in PR6637. llvm-svn: 98755
* Treat copysignl like the other copysign functions.Duncan Sands2010-03-151-1/+1
| | | | llvm-svn: 98542
* Fix a typo in ValueTracking that's causing instcombine to delete needed ↵Evan Cheng2010-03-131-1/+1
| | | | | | shift instructions. llvm-svn: 98416
* Do not ignore arg_size() impact while counting bb instructions.Devang Patel2010-03-131-3/+2
| | | | llvm-svn: 98408
* Remove extra parameter.Devang Patel2010-03-131-5/+4
| | | | llvm-svn: 98403
* Do not overestimate code size reduction in presense of debug info.Devang Patel2010-03-131-6/+11
| | | | | | Use CodeMetrics.analyzeBasicBlock() to estimate BB size. llvm-svn: 98401
* When constant folding GEP of GEP, do not crash if an index ofDuncan Sands2010-03-121-1/+13
| | | | | | the inner GEP is not a ConstantInt. llvm-svn: 98359
* Add a DominatorTree argument to isLCSSA so that it doesn't have toDan Gohman2010-03-101-9/+2
| | | | | | | compute a set of reachable blocks for itself each time it is called, which is fairly frequently. llvm-svn: 98179
* Constant-fold GEP-of-GEP into a single GEP.Dan Gohman2010-03-101-0/+11
| | | | llvm-svn: 98178
* Avoid analyzing instructions in blocks not reachable from the entry block.Dan Gohman2010-03-091-2/+9
| | | | | | They are lots of trouble, and they don't matter. This fixes PR6559. llvm-svn: 98103
* Try to keep the cached inliner costs around for a bit longer for big functions.Jakob Stoklund Olesen2010-03-091-0/+42
| | | | | | | | | | | | | | | The Caller cost info would be reset everytime a callee was inlined. If the caller has lots of calls and there is some mutual recursion going on, the caller cost info could be calculated many times. This patch reduces inliner runtime from 240s to 0.5s for a function with 20000 small function calls. This is a more conservative version of r98089 that doesn't break the clang test CodeGenCXX/temp-order.cpp. That test relies on rather extreme inlining for constant folding. llvm-svn: 98099
* Revert r98089, it was breaking a clang test.Jakob Stoklund Olesen2010-03-091-36/+0
| | | | llvm-svn: 98094
* Try to keep the cached inliner costs around for a bit longer for big functions.Jakob Stoklund Olesen2010-03-091-0/+36
| | | | | | | | | | | The Caller cost info would be reset everytime a callee was inlined. If the caller has lots of calls and there is some mutual recursion going on, the caller cost info could be calculated many times. This patch reduces inliner runtime from 240s to 0.5s for a function with 20000 small function calls. llvm-svn: 98089
* Permit inlining into huge functions. This heuristic is ancient, and inliningJakob Stoklund Olesen2010-03-091-5/+0
| | | | | | can sometimes help reduce function size. llvm-svn: 98088
* Make isLCSSA ignore uses in blocks not reachable from the entry block,Dan Gohman2010-03-091-3/+14
| | | | | | as LCSSA no longer transforms such uses. llvm-svn: 98033
* Another place where debug info affected codegen.Dale Johannesen2010-03-091-0/+2
| | | | llvm-svn: 98026
* Start using DIFile. See updated SourceLevelDebugging.html for more information.Devang Patel2010-03-091-24/+25
| | | | | | | | | This patch updates LLVMDebugVersion to 8. Debug info descriptors encoded using LLVMDebugVersion 7 is supported. Corresponding llvmgcc and clang FE commits are required. llvm-svn: 98020
* Introduce DIFile. This will be used to represent header files and source ↵Devang Patel2010-03-081-0/+23
| | | | | | file(s) in debug info. llvm-svn: 97994
* Derive DIType from DIScope. This simplifies getContext() where for members ↵Devang Patel2010-03-081-1/+9
| | | | | | the context is a type. This also eliminates need of CompileUnitMaps maintained by dwarf writer. llvm-svn: 97990
* Remove DbgNode checks in constructor. Debug descriptors are intended to be ↵Devang Patel2010-03-081-9/+0
| | | | | | light weight wrappers. llvm-svn: 97988
* Avoid using DIDescriptor.isNull(). Devang Patel2010-03-081-81/+64
| | | | | | This is a first step towards eliminating checks in Descriptor constructors. llvm-svn: 97975
* Revert r97947.Devang Patel2010-03-081-64/+81
| | | | llvm-svn: 97963
* Avoid using DIDescriptor.isNull().Devang Patel2010-03-081-81/+64
| | | | | | This is a first step towards eliminating unncessary constructor checks in light weight DIDescriptor wrappers. llvm-svn: 97947
OpenPOWER on IntegriCloud