#
03eb0de9 |
| 04-Mar-2014 |
Chandler Carruth <chandlerc@gmail.com> |
[Modules] Move GetElementPtrTypeIterator into the IR library. As its name might indicate, it is an iterator over the types in an instruction in the IR.... You see where this is going.
Another step o
[Modules] Move GetElementPtrTypeIterator into the IR library. As its name might indicate, it is an iterator over the types in an instruction in the IR.... You see where this is going.
Another step of modularizing the support library.
llvm-svn: 202815
show more ...
|
#
73523021 |
| 13-Jan-2014 |
Chandler Carruth <chandlerc@gmail.com> |
[PM] Split DominatorTree into a concrete analysis result object which can be used by both the new pass manager and the old.
This removes it from any of the virtual mess of the pass interfaces and le
[PM] Split DominatorTree into a concrete analysis result object which can be used by both the new pass manager and the old.
This removes it from any of the virtual mess of the pass interfaces and lets it derive cleanly from the DominatorTreeBase<> template. In turn, tons of boilerplate interface can be nuked and it turns into a very straightforward extension of the base DominatorTree interface.
The old analysis pass is now a simple wrapper. The names and style of this split should match the split between CallGraph and CallGraphWrapperPass. All of the users of DominatorTree have been updated to match using many of the same tricks as with CallGraph. The goal is that the common type remains the resulting DominatorTree rather than the pass. This will make subsequent work toward the new pass manager significantly easier.
Also in numerous places things became cleaner because I switched from re-running the pass (!!! mid way through some other passes run!!!) to directly recomputing the domtree.
llvm-svn: 199104
show more ...
|
#
5ad5f15c |
| 13-Jan-2014 |
Chandler Carruth <chandlerc@gmail.com> |
[cleanup] Move the Dominators.h and Verifier.h headers into the IR directory. These passes are already defined in the IR library, and it doesn't make any sense to have the headers in Analysis.
Long
[cleanup] Move the Dominators.h and Verifier.h headers into the IR directory. These passes are already defined in the IR library, and it doesn't make any sense to have the headers in Analysis.
Long term, I think there is going to be a much better way to divide these matters. The dominators code should be fully separated into the abstract graph algorithm and have that put in Support where it becomes obvious that evn Clang's CFGBlock's can use it. Then the verifier can manually construct dominance information from the Support-driven interface while the Analysis library can provide a pass which both caches, reconstructs, and supports a nice update API.
But those are very long term, and so I don't want to leave the really confusing structure until that day arrives.
llvm-svn: 199082
show more ...
|
Revision tags: llvmorg-3.4.0, llvmorg-3.4.0-rc3 |
|
#
a41a7b3e |
| 10-Dec-2013 |
Justin Bogner <mail@justinbogner.com> |
Transforms: Don't create bad branch weights when folding a switch
This avoids creating branch weight metadata of length one when we fold cases into the default of a switch instruction, which was tri
Transforms: Don't create bad branch weights when folding a switch
This avoids creating branch weight metadata of length one when we fold cases into the default of a switch instruction, which was triggering an assert.
llvm-svn: 196845
show more ...
|
Revision tags: llvmorg-3.4.0-rc2, llvmorg-3.4.0-rc1 |
|
#
8e10fdbc |
| 18-Nov-2013 |
Adrian Prantl <aprantl@apple.com> |
Debug info: Let LowerDbgDeclare perfom the dbg.declare -> dbg.value lowering only for load/stores to scalar allocas. The resulting values confuse the backend and don't add anything because we can des
Debug info: Let LowerDbgDeclare perfom the dbg.declare -> dbg.value lowering only for load/stores to scalar allocas. The resulting values confuse the backend and don't add anything because we can describe array-allocas with a dbg.declare intrinsic just fine.
rdar://problem/15464571
llvm-svn: 195052
show more ...
|
#
90dd90af |
| 21-Oct-2013 |
Bill Wendling <isanbard@gmail.com> |
Don't eliminate a partially redundant load if it's in a landing pad.
A landing pad can be jumped to only by the unwind edge of an invoke instruction. If we eliminate a partially redundant load in a
Don't eliminate a partially redundant load if it's in a landing pad.
A landing pad can be jumped to only by the unwind edge of an invoke instruction. If we eliminate a partially redundant load in a landing pad, it will create a basic block that violates this constraint. It then leads to other problems down the line if it tries to merge that basic block with the landing pad. Avoid this by not eliminating the load in a landing pad.
PR17621
llvm-svn: 193064
show more ...
|
#
4fea22c6 |
| 19-Oct-2013 |
Bill Wendling <isanbard@gmail.com> |
Perform an intelligent splice of the predecessor with the single successor.
If the predecessor's being spliced into a landing pad, then we need the PHIs to come first and the rest of the predecessor
Perform an intelligent splice of the predecessor with the single successor.
If the predecessor's being spliced into a landing pad, then we need the PHIs to come first and the rest of the predecessor's code to come *after* the landing pad instruction.
llvm-svn: 193035
show more ...
|
#
ea564946 |
| 02-Oct-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Remove the very substantial, largely unmaintained legacy PGO infrastructure.
This was essentially work toward PGO based on a design that had several flaws, partially dating from a time when LLVM had
Remove the very substantial, largely unmaintained legacy PGO infrastructure.
This was essentially work toward PGO based on a design that had several flaws, partially dating from a time when LLVM had a different architecture, and with an effort to modernize it abandoned without being completed. Since then, it has bitrotted for several years further. The result is nearly unusable, and isn't helping any of the modern PGO efforts. Instead, it is getting in the way, adding confusion about PGO in LLVM and distracting everyone with maintenance on essentially dead code. Removing it paves the way for modern efforts around PGO.
Among other effects, this removes the last of the runtime libraries from LLVM. Those are being developed in the separate 'compiler-rt' project now, with somewhat different licensing specifically more approriate for runtimes.
llvm-svn: 191835
show more ...
|
#
30d249a1 |
| 24-Sep-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Push analysis passes to InstSimplify when they're around anyways.
llvm-svn: 191309
|
#
e407736a |
| 09-Sep-2013 |
Bob Wilson <bob.wilson@apple.com> |
Revert patches to add case-range support for PR1255.
The work on this project was left in an unfinished and inconsistent state. Hopefully someone will eventually get a chance to implement this featu
Revert patches to add case-range support for PR1255.
The work on this project was left in an unfinished and inconsistent state. Hopefully someone will eventually get a chance to implement this feature, but in the meantime, it is better to put things back the way the were. I have left support in the bitcode reader to handle the case-range bitcode format, so that we do not lose bitcode compatibility with the llvm 3.3 release.
This reverts the following commits: 155464, 156374, 156377, 156613, 156704, 156757, 156804 156808, 156985, 157046, 157112, 157183, 157315, 157384, 157575, 157576, 157586, 157612, 157810, 157814, 157815, 157880, 157881, 157882, 157884, 157887, 157901, 158979, 157987, 157989, 158986, 158997, 159076, 159101, 159100, 159200, 159201, 159207, 159527, 159532, 159540, 159583, 159618, 159658, 159659, 159660, 159661, 159703, 159704, 160076, 167356, 172025, 186736
llvm-svn: 190328
show more ...
|
#
a2626555 |
| 14-Aug-2013 |
Mark Lacey <mark.lacey@apple.com> |
Fix small typo: s/succ/Succ/
llvm-svn: 188415
|
#
8d642de1 |
| 12-Aug-2013 |
Peter Collingbourne <peter@pcc.me.uk> |
Reapply r188119 now that the bug it exposed is fixed.
llvm-svn: 188217
|
#
3dcdb89d |
| 10-Aug-2013 |
Arnold Schwaighofer <aschwaighofer@apple.com> |
Revert r188119 "Kill some duplicated code for removing unreachable BBs."
It is breaking builbots with libgmalloc enabled on Mac OS X.
$ cd llvm ; mkdir release ; cd release $ ../configure --enable-
Revert r188119 "Kill some duplicated code for removing unreachable BBs."
It is breaking builbots with libgmalloc enabled on Mac OS X.
$ cd llvm ; mkdir release ; cd release $ ../configure --enable-optimized —prefix=$PWD/install $ make $ make check $ Release+Asserts/bin/llvm-lit -v --param use_gmalloc=1 --param \ gmalloc_path=/usr/lib/libgmalloc.dylib \ ../test/Instrumentation/DataFlowSanitizer/args-unreachable-bb.ll
llvm-svn: 188142
show more ...
|
#
32090aba |
| 09-Aug-2013 |
Peter Collingbourne <peter@pcc.me.uk> |
Kill some duplicated code for removing unreachable BBs.
This moves removeUnreachableBlocksFromFn from SimplifyCFGPass.cpp to Utils/Local.cpp and uses it to replace the implementation of llvm::remove
Kill some duplicated code for removing unreachable BBs.
This moves removeUnreachableBlocksFromFn from SimplifyCFGPass.cpp to Utils/Local.cpp and uses it to replace the implementation of llvm::removeUnreachableBlocks, which appears to do a strict subset of what removeUnreachableBlocksFromFn does.
Differential Revision: http://llvm-reviews.chandlerc.com/D1334
llvm-svn: 188119
show more ...
|
#
87dc6076 |
| 01-Aug-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Teach getOrEnforceKnownAlignment about address spaces
llvm-svn: 187629
|
#
f64212b2 |
| 23-Jul-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Fix spelling
llvm-svn: 186997
|
#
8e1a6e7d |
| 22-Jul-2013 |
Jakub Staszak <kubastaszak@gmail.com> |
Remove trailing spaces.
llvm-svn: 186890
|
#
e773c080 |
| 11-Jul-2013 |
Duncan Sands <baldrick@free.fr> |
TryToSimplifyUncondBranchFromEmptyBlock was checking that any common predecessors of the two blocks it is attempting to merge supply the same incoming values to any phi in the successor block. This
TryToSimplifyUncondBranchFromEmptyBlock was checking that any common predecessors of the two blocks it is attempting to merge supply the same incoming values to any phi in the successor block. This change allows merging in the case where there is one or more incoming values that are undef. The undef values are rewritten to match the non-undef value that flows from the other edge. Patch by Mark Lacey.
llvm-svn: 186069
show more ...
|
Revision tags: llvmorg-3.3.1-rc1 |
|
#
af0dea13 |
| 04-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size.
llvm-svn: 185606
|
#
983a16c0 |
| 28-Jun-2013 |
Manman Ren <mren@apple.com> |
Debug Info: clean up usage of Verify.
No functionality change. It should suffice to check the type of a debug info metadata, instead of calling Verify. For cases where we know the type of a DI metad
Debug Info: clean up usage of Verify.
No functionality change. It should suffice to check the type of a debug info metadata, instead of calling Verify. For cases where we know the type of a DI metadata, use assert.
Also update testing cases to make them conform to the format of DI classes.
llvm-svn: 185135
show more ...
|
#
b8c608ea |
| 26-Jun-2013 |
Eric Christopher <echristo@gmail.com> |
Revert "Debug Info: clean up usage of Verify." as it's breaking bots.
This reverts commit r185020
llvm-svn: 185032
|
#
aa00ce0e |
| 26-Jun-2013 |
Manman Ren <mren@apple.com> |
Debug Info: clean up usage of Verify.
No functionality change. It should suffice to check the type of a debug info metadata, instead of calling Verify.
llvm-svn: 185020
|
Revision tags: llvmorg-3.3.0, llvmorg-3.3.0-rc3, llvmorg-3.3.0-rc2, llvmorg-3.3.0-rc1 |
|
#
d00333a4 |
| 26-Apr-2013 |
Adrian Prantl <aprantl@apple.com> |
fix a typo that due to cu&paste quadrupled itself rdar://problem/13056109
llvm-svn: 180618
|
#
29b9de7b |
| 26-Apr-2013 |
Adrian Prantl <aprantl@apple.com> |
Bugfix for the debug intrinsic handling in InstCombiner: Since we can't guarantee that the original dbg.declare instrinsic is removed by LowerDbgDeclare(), we need to make sure that we are not insert
Bugfix for the debug intrinsic handling in InstCombiner: Since we can't guarantee that the original dbg.declare instrinsic is removed by LowerDbgDeclare(), we need to make sure that we are not inserting the same dbg.value intrinsic over and over. This removes tons of redundant DIEs when compiling optimized code.
rdar://problem/13056109
llvm-svn: 180615
show more ...
|
#
2a066afc |
| 22-Mar-2013 |
Evgeniy Stepanov <eugeni.stepanov@gmail.com> |
Fix llvm::removeUnreachableBlocks to handle unreachable loops.
llvm-svn: 177713
|