History log of /llvm-project/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp (Results 226 – 250 of 355)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-3.4.0-rc3, llvmorg-3.4.0-rc2, llvmorg-3.4.0-rc1
# f5a3eaea 04-Oct-2013 Hal Finkel <hfinkel@anl.gov>

UpdatePHINodes in BasicBlockUtils should not crash on duplicate predecessors

UpdatePHINodes has an optimization to reuse an existing PHI node, where it
first deletes all of its entries and then repl

UpdatePHINodes in BasicBlockUtils should not crash on duplicate predecessors

UpdatePHINodes has an optimization to reuse an existing PHI node, where it
first deletes all of its entries and then replaces them. Unfortunately, in the
case where we had duplicate predecessors (which are allowed so long as the
associated PHI entries have the same value), the loop removing the existing PHI
entries from the to-be-reused PHI would assert (if that PHI was not the one
which had the duplicates).

llvm-svn: 192001

show more ...


# 44fee4e0 01-Oct-2013 Rafael Espindola <rafael.espindola@gmail.com>

Remove several unused variables.

Patch by Alp Toker.

llvm-svn: 191757


# aa664d9b 06-Aug-2013 Tom Stellard <thomas.stellard@amd.com>

Factor FlattenCFG out from SimplifyCFG

Patch by: Mei Ye

llvm-svn: 187764


# 0b68245e 27-Jul-2013 Nick Lewycky <nicholas@mxc.ca>

Reimplement isPotentiallyReachable to make nocapture deduction much stronger.
Adds unit tests for it too.

Split BasicBlockUtils into an analysis-half and a transforms-half, and put the
analysis bits

Reimplement isPotentiallyReachable to make nocapture deduction much stronger.
Adds unit tests for it too.

Split BasicBlockUtils into an analysis-half and a transforms-half, and put the
analysis bits into a new Analysis/CFG.{h,cpp}. Promote isPotentiallyReachable
into llvm::isPotentiallyReachable and move it into Analysis/CFG.

llvm-svn: 187283

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


Revision tags: llvmorg-3.3.0, llvmorg-3.3.0-rc3, llvmorg-3.3.0-rc2, llvmorg-3.3.0-rc1
# 190db2f2 14-Jan-2013 Jakub Staszak <kubastaszak@gmail.com>

Remove trailing spaces.

llvm-svn: 172489


# 9fb823bb 02-Jan-2013 Chandler Carruth <chandlerc@gmail.com>

Move all of the header files which are involved in modelling the LLVM IR
into their new header subdirectory: include/llvm/IR. This matches the
directory structure of lib, and begins to correct a long

Move all of the header files which are involved in modelling the LLVM IR
into their new header subdirectory: include/llvm/IR. This matches the
directory structure of lib, and begins to correct a long standing point
of file layout clutter in LLVM.

There are still more header files to move here, but I wanted to handle
them in separate commits to make tracking what files make sense at each
layer easier.

The only really questionable files here are the target intrinsic
tablegen files. But that's a battle I'd rather not fight today.

I've updated both CMake and Makefile build systems (I think, and my
tests think, but I may have missed something).

I've also re-sorted the includes throughout the project. I'll be
committing updates to Clang, DragonEgg, and Polly momentarily.

llvm-svn: 171366

show more ...


Revision tags: llvmorg-3.2.0, llvmorg-3.2.0-rc3
# ed0881b2 03-Dec-2012 Chandler Carruth <chandlerc@gmail.com>

Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module

Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.

Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]

llvm-svn: 169131

show more ...


Revision tags: llvmorg-3.2.0-rc2, llvmorg-3.2.0-rc1
# 8eb77d84 19-Oct-2012 Evgeniy Stepanov <eugeni.stepanov@gmail.com>

Move SplitBlockAndInsertIfThen to BasicBlockUtils.

llvm-svn: 166278


# cdfe20b9 08-Oct-2012 Micah Villmow <villmow@gmail.com>

Move TargetData to DataLayout.

llvm-svn: 165402


# 8bcc9711 29-Aug-2012 Benjamin Kramer <benny.kra@googlemail.com>

Make MemoryBuiltins aware of TargetLibraryInfo.

This disables malloc-specific optimization when -fno-builtin (or -ffreestanding)
is specified. This has been a problem for a long time but became more

Make MemoryBuiltins aware of TargetLibraryInfo.

This disables malloc-specific optimization when -fno-builtin (or -ffreestanding)
is specified. This has been a problem for a long time but became more severe
with the recent memory builtin improvements.

Since the memory builtin functions are used everywhere, this required passing
TLI in many places. This means that functions that now have an optional TLI
argument, like RecursivelyDeleteTriviallyDeadFunctions, won't remove dead
mallocs anymore if the TLI argument is missing. I've updated most passes to do
the right thing.

Fixes PR13694 and probably others.

llvm-svn: 162841

show more ...


# 249716e8 27-Jul-2012 Evan Cheng <evan.cheng@apple.com>

Teach CodeGenPrep to look past bitcast when it's duplicating return instruction
into predecessor blocks to enable tail call optimization.

rdar://11958338

llvm-svn: 160894


# f0ad3606 25-Jun-2012 Eli Bendersky <eli.bendersky@intel.com>

The name (and comment describing) of llvm::GetFirstDebuigLocInBasicBlock no longer represents what the function does. Therefore, the function is removed and its functionality is folded into the only

The name (and comment describing) of llvm::GetFirstDebuigLocInBasicBlock no longer represents what the function does. Therefore, the function is removed and its functionality is folded into the only place in the code-base where it was being used.

llvm-svn: 159133

show more ...


Revision tags: llvmorg-3.1.0, llvmorg-3.1.0-rc3, llvmorg-3.1.0-rc2, llvmorg-3.1.0-rc1
# b48ed1a4 17-Jan-2012 David Blaikie <dblaikie@gmail.com>

Remove unreachable code. (replace with llvm_unreachable to help GCC where necessary)

llvm-svn: 148284


# f5b32e52 09-Dec-2011 Jakub Staszak <kubastaszak@gmail.com>

SplitBlockPredecessors uses ArrayRef instead of Data and Size.

llvm-svn: 146277


Revision tags: llvmorg-3.0.0, llvmorg-3.0.0-rc4, llvmorg-3.0.0-rc3, llvmorg-3.0.0-rc2, llvmorg-3.0.0-rc1
# d3e65e70 24-Aug-2011 Rafael Espindola <rafael.espindola@gmail.com>

Fix a crashing bug in SplitBlock when it is called on a block with no
dominator information even though dominators were previously computed.

Patch by Nick Sumner.

llvm-svn: 138449


# 38d81308 19-Aug-2011 Bill Wendling <isanbard@gmail.com>

If we're splitting the landing pad block and assigning it only one predecessor,
then don't split it a second time, since that block will be dead.

llvm-svn: 138153


# ca7d3096 19-Aug-2011 Bill Wendling <isanbard@gmail.com>

Add SplitLandingPadPredecessors().

SplitLandingPadPredecessors is similar to SplitBlockPredecessors in that it
splits the current block and attaches a set of predecessors to the new basic
block. How

Add SplitLandingPadPredecessors().

SplitLandingPadPredecessors is similar to SplitBlockPredecessors in that it
splits the current block and attaches a set of predecessors to the new basic
block. However, it differs from SplitBlockPredecessors in that it's specifically
designed to handle landing pad blocks.

Two new basic blocks are created: one that is has the vector of predecessors as
its predecessors and one that has the remaining predecessors as its
predecessors. Those two new blocks then receive a cloned copy of the landingpad
instruction from the original block. The landingpad instructions are joined in a
PHI, etc. Like SplitBlockPredecessors, it updates the LLVM IR, AliasAnalysis,
DominatorTree, DominanceFrontier, LoopInfo, and LCCSA analyses.

llvm-svn: 138014

show more ...


# b267e2a7 18-Aug-2011 Bill Wendling <isanbard@gmail.com>

Split out the updating of PHI nodes after splitting the BB into a separate
function.

llvm-svn: 137979


# ec3823dc 18-Aug-2011 Bill Wendling <isanbard@gmail.com>

Use this fantzy ArrayRef thing to pass in the list of predecessors.

llvm-svn: 137978


# 6029135a 18-Aug-2011 Bill Wendling <isanbard@gmail.com>

Use static instead of anonymous namespace.

llvm-svn: 137959


# 0a693f47 18-Aug-2011 Bill Wendling <isanbard@gmail.com>

Split out the analysis updating code into a helper function. No intended
functionality change.

llvm-svn: 137926


# 79a6873d 17-Aug-2011 Bill Wendling <isanbard@gmail.com>

Increment the insertion iterator to beyond the landingpad instruction.

llvm-svn: 137872


# 61ea0e46 23-Jun-2011 Jay Foad <jay.foad@gmail.com>

Reinstate r133513 (reverted in r133700) with an additional fix for a
-Wshorten-64-to-32 warning in Instructions.h.

llvm-svn: 133708


# 96513120 23-Jun-2011 Eric Christopher <echristo@apple.com>

Revert r133513:

"Reinstate r133435 and r133449 (reverted in r133499) now that the clang
self-hosted build failure has been fixed (r133512)."

Due to some additional warnings.

llvm-svn: 133700


12345678910>>...15