Commit Graph

93 Commits

Author SHA1 Message Date
Chris Lattner
5e665f5594 Switch inliner over to use DenseMap instead of std::map for ValueMap. This
speeds up the inliner 16%.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33801 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 00:08:31 +00:00
Chris Lattner
997c74ce35 move constant folding code out of Utils/Local into libanalysis
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33681 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-30 23:46:43 +00:00
Chris Lattner
1dfdf8255e The inliner/cloner can now optionally take TargetData info, which can be
used by constant folding.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33676 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-30 23:22:39 +00:00
Chris Lattner
73259caa44 Change constant folding APIs to take an optional TargetData, and change
ConstantFoldInstOperands/ConstantFoldCall to take a pointer to an array
of operands + size, instead of an std::vector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33669 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-30 23:12:47 +00:00
Reid Spencer
e4d87aa2de For PR950:
This patch removes the SetCC instructions and replaces them with the ICmp
and FCmp instructions. The SetCondInst instruction has been removed and
been replaced with ICmpInst and FCmpInst.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32751 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-23 06:05:41 +00:00
Jeff Cohen
d41b30def3 Unbreak VC++ build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31464 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-05 19:31:28 +00:00
Chris Lattner
b57de3328d add option to isCriticalEdge
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31258 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-28 06:58:17 +00:00
Chris Lattner
27e1f90d85 Expose a smarter way to break critical edges.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31256 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-28 06:44:56 +00:00
Chris Lattner
191b0ba97e Force anything that #includes llvm/Transforms/Utils/UnifyFunctionExitNodes.h
to link in the implementation.  Thanks to Anton Korobeynikov for figuring out
what was going on here.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28660 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-02 18:40:06 +00:00
Chris Lattner
f72716d81f Implement a new method: CloneAndPruneFunctionInto, as documented.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28518 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-27 01:21:50 +00:00
Chris Lattner
b5a554ec80 Add an interface to constant fold and instruction given it's opcode, type
and operands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28516 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-27 01:17:40 +00:00
Chris Lattner
782e60150e Add a CloneModule call that exposes the mapping of values from the old module
to the new module.  Patch provided by Nick Lewycky!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28349 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-17 18:05:35 +00:00
Chris Lattner
fd50080fe2 This is a proper fix for the compiler warning. A termination condition is
not needed, as it can never be reached: an edge must exist.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28282 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-14 02:01:22 +00:00
Reid Spencer
ca960c9946 Fix an infinite loop bug that Vladimir Prus identified.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28281 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-13 18:11:32 +00:00
Chris Lattner
ebccc040e5 Remove a level of indirection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26109 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-10 21:32:11 +00:00
Chris Lattner
4c2881ecb9 Teach inline function how to update the callgraph when it makes changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25318 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-14 20:05:06 +00:00
Chris Lattner
a4c29d2037 Allow the code cloning interfaces to capture some important info about the
code being cloned if the client wants.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25281 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-13 18:39:17 +00:00
John Criswell
bd9d37026a Move some constant folding functions into LLVMAnalysis since they are used
by Analysis and Transformation passes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24038 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-27 16:00:10 +00:00
Chris Lattner
cc0f703f42 allow demotion to volatile values
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23472 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-27 19:38:43 +00:00
Chris Lattner
c5406b55d5 add a new function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23443 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-26 05:26:32 +00:00
Chris Lattner
bb20372e70 add a helper
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22823 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17 06:34:37 +00:00
Nate Begeman
a83ba0f5c9 Fix a fixme in CondPropagate.cpp by moving a PhiNode optimization into
BasicBlock's removePredecessor routine.  This requires shuffling around
the definition and implementation of hasContantValue from Utils.h,cpp into
Instructions.h,cpp


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22664 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-04 23:24:19 +00:00
Misha Brukman
34695381d6 Remove trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21412 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-21 20:59:05 +00:00
Chris Lattner
1fca5ff62b Convert 'struct' to 'class' in various places to adhere to the coding standards
and work better with VC++.  Patch contributed by Morten Ofstad!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17281 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-27 16:14:51 +00:00
Chris Lattner
c8717b1624 Add support for the unreachable instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17039 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-16 18:06:43 +00:00
Chris Lattner
7f820b157d Add an optional argument to PromoteMemToReg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16346 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-15 01:02:30 +00:00
Misha Brukman
bd8aeb61ec Moved to include/llvm/Support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14350 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-23 17:24:53 +00:00
Alkis Evlogimenos
2b6d2eb2d0 Declare function defined in namespace llvm as gcc-3.4 doesn't accept a definition in a namespace of a non-declared function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13602 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-19 19:17:48 +00:00
Misha Brukman
de41aab1f7 Aggregating function arguments is now an option. Default is `no', as before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13142 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-23 23:54:34 +00:00
Chris Lattner
a2631b0225 Add new interfaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12918 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 19:28:32 +00:00
Chris Lattner
268316ee14 The code extractor needs dominator information, so we provide it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12482 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-18 03:47:46 +00:00
Chris Lattner
e454c0d607 Make this header file self-contained
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12480 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-18 03:14:56 +00:00
Chris Lattner
8f71b63bea cleanup comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12463 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-17 01:29:36 +00:00
Chris Lattner
2ed3063625 Remove dead file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12371 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 02:13:57 +00:00
Chris Lattner
cbf99ee973 Move DemoteRegToStack prototype out of DemoteRegToStack.h to this file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12367 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 02:13:07 +00:00
Misha Brukman
7ace0409aa Add prototype for ExtractCodeRegion()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12069 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-02 00:20:32 +00:00
Misha Brukman
a8a06367f8 Add ability to extract a single basic block into a new function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12052 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-01 18:27:13 +00:00
Misha Brukman
4977a163b4 New Function-level transformation utils.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11938 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-28 03:33:30 +00:00
Chris Lattner
cb2b3e5005 Check in header file I forgot before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11115 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-04 03:59:08 +00:00
Chris Lattner
77ab3f1c89 llvm::ConstantFoldInstruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10787 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12 18:25:56 +00:00
Chris Lattner
abbc2dd779 Add new function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10529 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-19 05:56:28 +00:00
Brian Gaeke
d0fde30ce8 Put all LLVM code into the llvm namespace, as per bug 109.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-11 22:41:34 +00:00
Chris Lattner
aeef8c70f0 Include forms of SplitCriticalEdge which work correctly with pred/succ iterators
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9856 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-10 04:42:13 +00:00
Chris Lattner
d9c5c5e12f Move isCriticalEdge & SplitCritical into this file. While we're at it, change
the interface to SplitCriticalEdge so that it splits an edge if it is critical,
otherwise just returns false and noops if not.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9852 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-10 04:10:27 +00:00
John Criswell
6fbcc26f14 Added LLVM copyright header (for lack of a better term).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9304 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20 20:19:47 +00:00
Chris Lattner
43f820d1f7 Change the interface to PromoteMemToReg to also take a DominatorTree
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8883 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-05 21:20:13 +00:00
Chris Lattner
48486893f4 Standardize header file comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8782 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-30 18:37:50 +00:00
Chris Lattner
b912491329 Cleanup header file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8622 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-20 14:35:38 +00:00
Chris Lattner
f46057be77 Expand the pass to unify all of the unwind blocks as well
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8456 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-10 20:34:51 +00:00
Chris Lattner
a04e51f4c0 Fix an FLAT OUT WRONG comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8263 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 19:37:29 +00:00