Chris Lattner
69dacfce54
print aliases before functions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36459 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 02:24:10 +00:00
Anton Korobeynikov
8b0a8c84da
Implement aliases. This fixes PR1017 and it's dependent bugs. CFE part
...
will follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36435 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 14:27:10 +00:00
Chris Lattner
1a34b7bf9a
simplify some code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36427 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 05:49:09 +00:00
Jeff Cohen
dc4cb35105
Have compiler enforce this.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36353 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22 22:16:55 +00:00
Christopher Lamb
43c7f37942
PR400 work phase 1. Add attributed load/store instructions for volatile/align to LLVM.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36349 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22 19:24:39 +00:00
Reid Spencer
b90909e405
For PR1136:
...
Add reference counting to ParamAttrsList and make use of it in Function,
CallInst and InvokeInst classes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36346 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22 17:28:03 +00:00
Reid Spencer
4f859aa532
For PR1146:
...
Make ParamAttrsList objects unique. You can no longer directly create or
destroy them but instead must go through the ParamAttrsList::get()
interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36327 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22 05:46:44 +00:00
Reid Spencer
c67bdc288a
Revert Christopher Lamb's load/store alignment changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36309 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-21 18:36:27 +00:00
Christopher Lamb
2330e4d4c4
add support for alignment attributes on load/store instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36301 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-21 08:16:25 +00:00
Devang Patel
3831c553e3
Reset vertex.
...
Fix http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070416/048092.html
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36294 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-21 00:36:45 +00:00
Chris Lattner
d1458f1d30
Fix a bug that prevented the JIT from working correctly after llvm_shutdown.
...
Pass info objects are initialized by static ctors, so deleting them at
llvm_shutdown time prevents resurrection from working.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36292 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-21 00:12:18 +00:00
Chris Lattner
cd070759c4
Fix regressions introduced by my previous patch: opt calls verifier in a
...
way that the "Mod" ivar was not getting set.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36291 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-20 23:59:29 +00:00
Chris Lattner
a5f5a9c8e2
Fix a problem where primitive types lose their name after llvm_shutdown is called.
...
This also reduces the amount of work done at static construction time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36285 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-20 22:33:47 +00:00
Chris Lattner
19b6dcdfa9
catch a case that was biting jeffc
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36284 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-20 21:48:08 +00:00
Chris Lattner
8dcd2f1a5b
don't access argument list of prototypes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36238 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-18 00:57:22 +00:00
Chris Lattner
4d8c16f15a
eliminate a use of Instruction::getPrev(), patch by Gabor Greif in 2005.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36197 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-17 17:36:12 +00:00
Chris Lattner
18feb92e91
merge several fields in GlobalValue to use the same word, move CallingConv
...
field into SubclassData in Value. This shrinks GlobalVAlue from 48->40
bytes, Function from 88->76, and GlobalVariable from 76->68. This trims
4640 bytes off my testcase, reading a bc file without materializing any
functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36192 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-17 04:31:29 +00:00
Chris Lattner
f8dfef7437
The (negative) offset from a SymbolTableListTraits-using ilist to its container
...
object is always constant. As such, evaluate it at compile time instead of storing
it as an ivar in SymbolTableListTraits. This shrinks every SymbolTableListTraits
ilist by a word, shrinking BasicBlock from 44->40 bytes, Function from 96->88 bytes,
and Module from 60->52 bytes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36189 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-17 04:04:14 +00:00
Chris Lattner
17fcdd5e1b
Refactor SymbolTableListTraits to only have a single pointer in it, instead
...
of two. This shrinkifies Function by 8 bytes (104->96) and Module by 8
bytes (68->60). On a testcase of mine, this reduces the memory used to
read a module header from 565680b to 561024, a little over 4K.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36188 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-17 03:26:42 +00:00
Devang Patel
6b1df0e863
Proivde getAnalysis<FPAnalysis>(Func) support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36159 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-16 20:56:24 +00:00
Devang Patel
f4bd76a035
Do not assert during analysis implementation initialization.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36158 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-16 20:44:16 +00:00
Devang Patel
693941bb6e
Print and delete on the fly pass managers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36157 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-16 20:39:59 +00:00
Devang Patel
0ed8df38c2
Update module pass manager to support module passes that require
...
function passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36154 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-16 20:27:05 +00:00
Devang Patel
569a6fd9d5
Give each pass manager chance to manage lower level analysis pass, which is
...
pass required by one of pass managed by the manager.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36153 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-16 20:12:57 +00:00
Anton Korobeynikov
bed2946a96
Removed tabs everywhere except autogenerated & external files. Add make
...
target for tabs checking.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36146 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-16 18:10:23 +00:00
Reid Spencer
9c15de11f1
Don't return 0 if the len == 5, let the assert handle that case.
...
Thanks, Chris.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36139 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-16 16:56:54 +00:00
Reid Spencer
085659f040
Fix test/CodeGen/Generic/vector-constantexpr.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36123 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-16 07:08:44 +00:00
Reid Spencer
2db15e2b42
For PR1328:
...
Don't assert everytime an intrinsic name isn't recognized. Instead, make
the assert optional when callin getIntrinsicID(). This allows the assembler
to handle invalid intrinsic names gracefully.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36120 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-16 06:54:34 +00:00
Owen Anderson
e934fefd6b
Tabs -> Spaces
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36094 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-15 23:14:18 +00:00
Owen Anderson
3dc6776b33
Remove ImmediateDominator analysis. The same information can be obtained from DomTree. A lot of code for
...
constructing ImmediateDominator is now folded into DomTree construction.
This is part of the ongoing work for PR217.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36063 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-15 08:47:27 +00:00
Owen Anderson
9a341ff3c1
Fix some unsafe code. Also, tabs -> spaces.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36035 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-14 23:57:00 +00:00
Owen Anderson
690c684fc6
Make ETForest depend on DomTree rather than IDom. This is the first step
...
in the long process that will be fixing PR 217.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36034 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-14 23:49:24 +00:00
Chris Lattner
6f771d4351
add GetElementPtrInst::hasAllZeroIndices, a long-overdue helper method.
...
Writing it twice in the same day was too much for me.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35978 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-14 00:12:57 +00:00
Lauro Ramos Venancio
c763552299
Implement the "thread_local" keyword.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35950 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-12 18:32:50 +00:00
Reid Spencer
f75b874957
For PR1284:
...
Implement the "part_set" intrinsic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35938 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-12 02:48:46 +00:00
Reid Spencer
97c0e2107b
Fix a bug where ICmpInst objects instantiated directly with a name would
...
not retain that name. Not noticed because AsmParser always sets name after
construction. However, llvm2cpp noticed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35903 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-11 13:04:48 +00:00
Reid Spencer
18da072088
For PR1146:
...
Put the parameter attributes in their own ParamAttr name space. Adjust the
rest of llvm as a result.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35877 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-11 02:44:20 +00:00
Chris Lattner
466b9bd757
unbreak the build :(
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35857 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-10 03:18:19 +00:00
Jeff Cohen
a838321648
Fix build problem.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35856 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-10 03:10:46 +00:00
Reid Spencer
fa3e91242f
For PR1146:
...
* Add ParamAttrs to InvokeInst class too.
* Make sure all initializes of ParamAttrs in CallInst and InvokeInst are 0
* Destruct the ParamAttrs in Call/Invoke destructors to avoid memory
leaks. This will change when ParamAttrsList is uniquified but needs to
be correct until then.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35824 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-09 18:00:57 +00:00
Reid Spencer
3aad26e4da
Remove a memory leak, until ParamAttrsList is uniqued.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35823 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-09 17:20:18 +00:00
Reid Spencer
4746ecf16e
For PR1146:
...
* Add ParamAttrList pointers to Function and CallInst.
* Move the implementation of ParamAttrList from Type.cpp to Function.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35818 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-09 15:01:12 +00:00
Chris Lattner
a9f120bd9f
Convert ImmediateDominators::DFSPass from being recursive to being iterative.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35815 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-09 06:44:42 +00:00
Reid Spencer
8129a3921e
For PR1146:
...
Simplify construction of FunctionType to use default arguments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35810 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-09 06:12:07 +00:00
Reid Spencer
ac66f4241d
For PR1146:
...
Parameter attributes can now be defaulted for intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35809 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-09 06:11:23 +00:00
Reid Spencer
b138a0657f
For PR1146:
...
Adjust writing of parameter attributes to use ParamAttrList class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35808 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-09 06:10:42 +00:00
Chris Lattner
8645fb9524
minor cleanups
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35807 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-09 06:10:06 +00:00
Reid Spencer
89b1f46a10
For PR1146:
...
Move parameter attributes functionality to ParamAttrsList class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35806 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-09 06:07:52 +00:00
Owen Anderson
8ea325730c
Move isReachableFromEntry out of line to avoid an unnecessary #include
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35797 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-09 04:07:36 +00:00
Owen Anderson
cd4abb7e6d
Remove DomSet completely. This concludes work on PR1171.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35775 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-08 21:30:05 +00:00
Nick Lewycky
51bc779096
Don't crash when encountering a BasicBlock that hasn't been registered yet.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35756 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-08 01:02:12 +00:00
Owen Anderson
e9ed4452bc
Add DomSet back, and revert the changes to LoopSimplify. Apparently the
...
ETForest updating mechanisms don't work as I thought they did. These changes
will be reapplied once the issue is worked out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35741 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-07 18:23:27 +00:00
Owen Anderson
ba43963e96
Completely purge DomSet. This is the (hopefully) final patch for PR1171.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35731 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-07 07:17:27 +00:00
Reid Spencer
5a1ebb3c99
For PR1209:
...
Implement Type class's ContainedTys without using a std::vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35693 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-06 02:02:20 +00:00
Reid Spencer
addd11d98e
Implement the llvm.bit.part_select.iN.iN.iN overloaded intrinsic.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35678 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-04 23:48:25 +00:00
Reid Spencer
1437a09765
For PR1297:
...
Implement "actual" argument types for the Intrinsic member functions. This
involves changing the getName, getType, and getDeclaration methods to have
optional parameters for the actual types. These are necessary in order for
the type/name to be constructed properly for overloaded intrinsics. Only
the caller knows the actual argument types desired.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35541 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-01 07:25:33 +00:00
Reid Spencer
559d77afb3
For PR1297:
...
1. Clear up confusion between "GotBits" and "ExpectBits". GotBits is the
type actually provided. ExpectedBits is the type expected for the
intrinsics. Before this patch, it was reversed!
2. Implement checks for overloaded intrinsics. This involves computing the
suffix expected and making sure the suffix matches the function name. It
also includes some intrinsic-specific checks such as ensuring that the
bswap parameter and result are the same width and an even number of bytes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35540 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-01 07:22:57 +00:00
Chris Lattner
2df6dc579c
add a method to turn a type into a VT.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35526 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-31 04:03:02 +00:00
Devang Patel
9dea3a340a
It is not possible to determine dominance between two PHI nodes
...
based on their ordering. This is applicable to ETForest::dominates() also.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35423 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-28 14:57:43 +00:00
Reid Spencer
73ad8354ec
No need to generate the implementation keyword any more. Its frivolous.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35405 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-28 01:53:20 +00:00
Devang Patel
2ad28e6c48
Use SmallPtrSet.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35388 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-27 20:50:46 +00:00
Devang Patel
40d2cd13a5
Spell check.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35374 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-27 00:16:08 +00:00
Devang Patel
b9dbc4decc
It is not possible to determie dominance between two PHI nodes
...
based on their ordering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35369 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-26 23:18:28 +00:00
Devang Patel
9be98dd9c0
Use std::vector<DFCalculateWorkObject> instead of
...
std::vector<DFCalculateWorkObject *> to reduce malloc/free traffic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35368 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-26 23:17:19 +00:00
Reid Spencer
4ada00d166
Add a comment to explain a folding transform.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35360 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-26 20:09:02 +00:00
Chris Lattner
2ef14d9f7c
fold constantexprs more aggressively, fixing PR1265
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35336 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-25 05:47:04 +00:00
Chris Lattner
0d3988f408
add a valuetype for v1i64, which is needed by mmx.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35298 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-24 17:36:26 +00:00
Reid Spencer
b8f1c1657f
Fix constant fold of div by zero and rem by zero to match IEEE 754
...
requirements. We must return NaN in some cases and correctly signed
infinity in other cases. Passes CFP2006 (not that that says much).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35277 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-23 05:33:23 +00:00
Dan Gohman
ecb7a77885
Change uses of Function::front to Function::getEntryBlock for readability.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35265 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-22 16:38:57 +00:00
Reid Spencer
66123626ad
Add the NoUnwind function attribute.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35260 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-22 02:14:48 +00:00
Devang Patel
cbdfb8a9d5
DominanceFrontier::calculate().
...
Avoid recursion, Use iterative algorithm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35225 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-20 21:25:31 +00:00
Devang Patel
3b57b6f36e
LoopSimplify::FindPHIToPartitionLoops()
...
Use ETForest instead of DominatorSet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35221 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-20 20:18:12 +00:00
Chris Lattner
91857da2f5
Fix a nasty memory leak, caused by my revamp of the value symbol table.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35195 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-20 00:18:10 +00:00
Reid Spencer
7fc44c8c5f
Allow ConstantInt::get(Ty, uint64_t) to interpret the 64-bit values as a
...
negative number. This is needed to fix test/Assembler/2007-03-19-NegValue.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35181 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-19 20:39:08 +00:00
Reid Spencer
590b3c559f
For PR1258:
...
Radically simplify the SlotMachine. There is no need to keep Value planes
around any more. This change causes slot numbering to number all un-named,
non-void values starting at 0 and incrementing monotonically through the
function, regardless of type (including BasicBlocks). Getting slot numbers
is now a single lookup operation instead of a double lookup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35171 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-19 18:32:53 +00:00
Devang Patel
d46825c6a1
Speed Up Pass Manager.
...
- Check Immutableness before searching PreservedSet.
- Avoid unnecessary traversal while setting Last User.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35028 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-08 19:05:01 +00:00
Evan Cheng
afe1581557
Added ContainsRelocations() to check if a constant might only be resolvable at load time.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35014 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-08 00:59:12 +00:00
Devang Patel
7b65dd91c1
Keep track of higher level analysis.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34974 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 17:52:53 +00:00
Devang Patel
fe613905b3
Keep track of inherited analysis. For example, if a loop pass does not
...
preserve dominator info then it should update parent FPPassManager's
available analysis info to reflect this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34942 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 01:55:46 +00:00
Devang Patel
22a1cf9d3a
Add preparePassManager() hook. This allows each pass to check whether
...
current active pass manager is appropriate or not.
A loop pass may consider current LPPassManager in appropraite if loop
pass is not preserving analysis information that is used by other
passes managed by current LPPassManager. In such situation, loop pass
can pop current LPPassManager from the PMStack using this hook
and use new LPPassManager for itself.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34941 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 01:06:16 +00:00
Devang Patel
cf5fb2b614
Current pass manager, not the parent pass manager, assumes the role of
...
last user when one of the managed pass uses info provided by parent pass
manager.
This was exposed by LPPassManager work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34936 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 22:57:49 +00:00
Devang Patel
7f99761143
Avoid constructing std::strings unless pass debugging is ON.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34933 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 20:01:30 +00:00
Devang Patel
55d5ac7b5b
Account for time consumed by releaseMemory() properly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34932 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 18:20:51 +00:00
Jeff Cohen
ca5183d445
Unbreak VC++ build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34917 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 00:00:42 +00:00
Reid Spencer
a188bbe7ac
Fix constant folding of fp->int bitcast for vectors.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34880 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-03 08:32:46 +00:00
Reid Spencer
cae5754619
Prefer non-virtual calls to ConstantInt::isZero over virtual calls to
...
Constant::isNullValue() in situations where it is possible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34821 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-02 00:28:52 +00:00
Reid Spencer
0d54b7df4f
Use the APInt versions of the bit-wise conversions of float/double to int
...
and back. While this is not strictly necessary, it does pave the way for
future changes in casting. It should now be possible to improve vector
casting to deal with un-equal fp/int sizes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34808 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-01 20:44:23 +00:00
Reid Spencer
bb9723bd98
Use modern variable name. ConstantUnsignedInt is long since dead. No
...
functional change with this patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34806 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-01 20:27:41 +00:00
Reid Spencer
ef2185b4d2
Use a simpler constructor when constructing ConstantInst.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34793 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-01 19:31:12 +00:00
Reid Spencer
0050c737c5
Drop the ConstantInt(const Type&, const APInt&) constructor. It is
...
redundant and more verbose than the ConstantInt(const APInt&) constructor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34792 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-01 19:30:34 +00:00
Reid Spencer
9e57414e69
Reduce #includage by taking a method out of line.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34774 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-01 04:02:06 +00:00
Reid Spencer
3da43849f2
Provide an ICmpInst::makeConstantRange to generate a ConstantRange value
...
from a predicate and an APInt. This is removed from ConstantRange class
so that ConstantRange doesn't have to depend on lib/VMCore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34760 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-28 22:00:54 +00:00
Reid Spencer
f57fc81fae
Implement a convenience method to construct a ConstantInt directly from an
...
APInt. The implied type is the integer type that corresponds to the bit
width of the APInt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34757 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-28 19:50:21 +00:00
Reid Spencer
012d50b851
Pull out the stops.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34703 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 23:33:03 +00:00
Reid Spencer
80f8481ef0
Remove some redundancy.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34702 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 23:27:26 +00:00
Reid Spencer
914c3bca87
Adjust to changes in the APInt interface.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34681 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 20:25:25 +00:00
Reid Spencer
a5c7472726
For PR1205:
...
Implement review feedback:
1. Use new APInt::RoundDoubleToAPInt interface to specify the bit width so
that we don't have to truncate or extend in constant folding.
2. Fix a pasteo in SDiv that prevented a check for overflow.
3. Fix the shift operators: undef happens when the shift amount is equal
to the bitwidth.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34677 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 19:29:54 +00:00
Devang Patel
84da80d10b
Make getPassManagerType() const.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34669 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 15:00:39 +00:00
Reid Spencer
940685ecf5
Allow the AsmWriter to print out arbitrary precision integers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34664 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 08:34:09 +00:00
Reid Spencer
8374db81a8
Correct the implelmentation of ConstantInt::getAllOnesValue() for bit
...
widths > 64 bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34663 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 07:57:53 +00:00
Reid Spencer
9472c373a3
For PR1205:
...
Implement constant folding via APInt instead of uint64_t.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34660 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 06:23:51 +00:00
Chris Lattner
92f6feaf79
ConstantFolding.cpp/h -> ConstantFold.cpp/h to avoid confusion with
...
lib/Analysis/ConstantFolding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34653 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 03:05:06 +00:00
Reid Spencer
532d0ce208
For PR1205:
...
Implement the first step towards arbitrary precision integer support in
LLVM. The APInt class provides arbitrary precision arithmetic and value
representation. This patch changes ConstantInt to use APInt as its value
representation without supporting bit widths > 64 yet. That change will
come after ConstantFolding handles bit widths > 64 bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34647 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-26 23:54:03 +00:00
Chris Lattner
00f23ec5c2
reapply my previous patch with a bugfix.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34627 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-26 05:02:39 +00:00
Chris Lattner
e2c2b76c8a
revert my previous change, something strange is happening.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34626 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-26 04:43:19 +00:00
Chris Lattner
1cf5574636
Rework GlobalValue::removeDeadConstantUsers to always remove dead constant
...
exprs hanging off a global, even if the global is not otherwise dead. This
requires some tricky iterator gymnastics.
This implements Transforms/GlobalOpt/constantexpr-dangle.ll by deleting a
constantexpr that made it appear that the address of the function was taken.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34608 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-25 21:06:13 +00:00
Chris Lattner
3f3098c8ca
disable some noisy debug output
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34606 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-25 20:42:59 +00:00
Chris Lattner
6b178a3801
Fix Transforms/ConstProp/2007-02-23-sdiv.ll and PR1215
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34548 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-24 01:19:50 +00:00
Chris Lattner
910c80a075
Refactor the setName stuff, moving it down the inheritance hierarchy, to
...
solve a crash in -instcombine -debug that was hit while investigating PR1217
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34544 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-24 00:55:48 +00:00
Evan Cheng
e811636f33
This cast broke lots of tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34457 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-20 21:30:56 +00:00
Chris Lattner
9b4ee0c1bd
switch ConstantFP's from ValueMap to DenseMap, which is much faster to query
...
and is more memory efficient.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34446 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-20 07:17:17 +00:00
Chris Lattner
6b6f6ba66c
cleanup ConstantInt to use a single DenseMap for uniquing instead of the
...
heavy-weight ValueMap class. This reduces mem usage bc reading kc++ by 29K,
even though it only creates 2955 constant ints!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34445 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-20 06:39:57 +00:00
Chris Lattner
d1afbd02ef
Make ConstantInt::getTrue/getFalse be llvm_shutdown safe.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34443 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-20 06:11:36 +00:00
Chris Lattner
eb41bddfdf
Clean up the internals of the ConstantInt machinery
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34441 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-20 05:55:46 +00:00
Chris Lattner
e0e769607c
simplify some code that was not llvm_shutdown safe
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34440 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-20 05:46:39 +00:00
Chris Lattner
f00c6add97
remove dead method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34436 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-20 05:29:47 +00:00
Chris Lattner
f9021ff740
llvm-gcc issue fixed, revert reversal :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34425 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-19 20:01:23 +00:00
Chris Lattner
da304d0750
remove warning
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34424 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-19 19:46:17 +00:00
Evan Cheng
e02e5e465b
Temporarily reverting the patch. It's breaking llvm-gcc build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34423 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-19 19:23:41 +00:00
Reid Spencer
c552ff2825
Add a FIXME for unwritten code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34422 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-19 19:00:29 +00:00
Chris Lattner
32980699c0
remove dead methods
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34419 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-19 07:44:24 +00:00
Chris Lattner
63925c831a
temporarily revert Devang's most recent patch, which caused a large
...
compile-time regression in LLC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34385 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-17 23:14:24 +00:00
Devang Patel
62b20023eb
Use inverted map to speedup collectLastUses().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34364 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-17 03:53:44 +00:00
Andrew Lenharth
fadb3f773e
fix build
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34339 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-16 02:25:55 +00:00
Chris Lattner
bb5493d9fa
make mayWriteToMemory a non-virtual function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34334 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 23:15:00 +00:00
Chris Lattner
0878c31059
rewrite Value::takeName to take advantage of the new symtab stuff. This
...
causes it to require no allocations and no symtab lookups in the common
case. This speeds up instcombine 9.2% on 447.dealII.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34324 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 20:01:43 +00:00
Chris Lattner
3b515802f6
Implement Function::getIntrinsicID without it needing to call Value::getName,
...
which allocates a string. This speeds up instcombine on 447.dealII by 5%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34318 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:17:16 +00:00
Chris Lattner
924b1ca9ee
Add a new Value::getNameStr method, which is preferred over getName.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34310 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 18:53:54 +00:00
Reid Spencer
ac9dcb94dd
For PR1195:
...
Change use of "packed" term to "vector" in comments, strings, variable
names, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34300 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 03:39:18 +00:00
Reid Spencer
a85210ac66
For PR1195:
...
Change a comment: Packed Type -> Vector Type
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34299 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 03:11:50 +00:00
Reid Spencer
9d6565a5b1
For PR1195:
...
Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and
PackedTyID -> VectorTyID. No functional changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34293 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 02:26:10 +00:00
Chris Lattner
c38fea8ef4
better support for i128.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34258 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13 23:57:55 +00:00
Chris Lattner
f00042a999
Switch UnaryOperators to default to passing names up by const char* when possible.
...
This speeds up bcreading by 1.5%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34233 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13 07:54:42 +00:00
Chris Lattner
ec79b3da13
add a setName variant that takes a null-terminated string. This can be
...
used to avoid std::string allocations in common cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34232 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13 07:53:34 +00:00
Chris Lattner
133bab0606
eliminate instruction ctors that take vectors.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34228 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13 06:22:32 +00:00
Chris Lattner
d2dd1508aa
Add invokeinst and callinst ctors that don't take vectors.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34214 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13 01:04:01 +00:00
Chris Lattner
d54f432006
remove some dead methods.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34213 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13 00:58:44 +00:00
Chris Lattner
042ad36871
Add new setName accessor which doesn't require creating a string.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34197 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-12 18:52:59 +00:00
Chris Lattner
dec628eead
Switch ValueSymbolTable to use StringMap<Value*> instead of std::map<std::string, Value*>
...
as its main datastructure. There are many improvements yet to be made, but
this speeds up opt --std-compile-opts on 447.dealII by 7.3%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34193 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-12 05:18:08 +00:00
Chris Lattner
ea7acb8591
fix uninitialized variable
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34182 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-11 19:12:18 +00:00
Chris Lattner
f41916e75d
add an optimization for the case where the src has no name
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34174 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-11 01:04:09 +00:00
Chris Lattner
7216811ea2
add a helper method: Value::takeName
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34171 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-11 00:37:27 +00:00
Reid Spencer
cc5dc2e792
Assert that elements of packed are pointer/float/opaque.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34165 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-10 22:02:45 +00:00
Reid Spencer
e463fc8098
Allow PackedType to be constructed with an abstract type.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34152 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-10 19:03:01 +00:00
Chris Lattner
f8edb62e22
convert some vectors to smallvector.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34145 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-10 08:33:11 +00:00
Chris Lattner
8552faeb7e
speed up the verifier 8.5% by using a smallvector instead of vector.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34144 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-10 08:30:29 +00:00
Chris Lattner
78287b400a
Change an std::set to a SmallPtrSet. This speeds up the verifier on
...
447.dealII from 1.27s to 0.86s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34143 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-10 08:19:44 +00:00
Chris Lattner
d1f711fa6d
Fix clients like this:
...
delete ParseBytecodeFile(InputFilename, 0, &ErrorMessage);
llvm_shutdown();
delete ParseBytecodeFile(InputFilename, 0, &ErrorMessage);
The primitive type objects failed to ressurect themselves after shutdown, leading
to crashes in clients that used them after llvm_shutdown().
This solution isn't wonderful, because we clearly have static ctors. However,
the code it replaces was just as bad, so it's not a regression.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34106 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-09 22:24:04 +00:00
Jim Laskey
95af592a63
Automatically generating intrinsic declarations from Dan Gohman. Modified
...
to construct FunctionType in separate function, and, have getDeclaration
return a Function instead of a Constant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34008 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 20:38:26 +00:00
Devang Patel
f5e28d9dfe
Do not drop transferred last uses on the floor.
...
Use handleLastUserOverflow().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34006 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 19:37:53 +00:00
Chris Lattner
92f5b6a784
constants can't be in the symtab anymore
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33993 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 06:28:48 +00:00
Chris Lattner
b4d8d62345
update comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33992 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 06:25:36 +00:00
Chris Lattner
7f1444bc0a
shrink vmcore by moving symbol table stripping support out of VMCore into
...
the one IPO pass that uses it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33990 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 06:22:45 +00:00
Chris Lattner
56920a0ecc
eliminate ValueSymbolTable::rename, it has no advantage over using remove+insert.
...
Make insert/remove assert if used incorrectly instead of returning a bool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33988 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 06:13:49 +00:00
Chris Lattner
421d3daa05
speed up conflict handling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33985 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 05:52:51 +00:00
Chris Lattner
58f84d4b2d
Eliminate the O(n) version of TypeSymbolTable::remove, it is dead. When
...
inserting a type into the type symbol table, only compute unique name if not
in symtab already.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33983 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 05:35:58 +00:00
Chris Lattner
67408dab1b
TypeSymbolTable::rename is dead, remove it
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33982 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 05:29:34 +00:00
Chris Lattner
f5111552c2
Eliminate a bunch of work from ValueSymbolTable::insert for the common case
...
where a symbol name doesn't conflict. This speeds up bc reading 16% on 176.gcc!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33981 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 05:22:49 +00:00
Jim Laskey
ba4cc09f51
Support var arg intrinsics.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33962 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-06 18:02:54 +00:00
Chris Lattner
775bd83050
Fix Transforms/ConstProp/2007-02-05-BitCast.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33948 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-06 02:22:56 +00:00
Reid Spencer
554cec6e65
A value of 64 or fewer bits is valid if the ConstantInt has more then 64 bits.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33942 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-05 23:47:56 +00:00
Reid Spencer
688b0490e2
For PR411:
...
Adjust to changes in Module interface:
getMainFunction() -> getFunction("main")
getNamedFunction(X) -> getFunction(X)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33922 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-05 21:19:13 +00:00
Reid Spencer
ef9b9a7939
For PR411:
...
This patch replaces the SymbolTable class with ValueSymbolTable which does
not support types planes. This means that all symbol names in LLVM must now
be unique. The patch addresses the necessary changes to deal with this and
removes code no longer needed as a result. This completes the bulk of the
changes for this PR. Some cleanup patches will follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33918 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-05 20:47:22 +00:00
Devang Patel
90f1ad7bf4
Fix PR1158
...
Do not insert Analysis pass, if it is already available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33915 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-05 19:34:17 +00:00
Reid Spencer
6734b57d1b
For PR1163:
...
Make the Module's dependent library use a std::vector instead of SetVector
adjust #includes in .cpp files because SetVector.h is no longer included.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33855 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 00:40:42 +00:00
Reid Spencer
ebe57e36df
Fix a comment that needed to change after SHIFT patch landed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33781 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-02 13:54:55 +00:00
Reid Spencer
832254e1c2
Changes to support making the shift instructions be true BinaryOperators.
...
This feature is needed in order to support shifts of more than 255 bits
on large integer types. This changes the syntax for llvm assembly to
make shl, ashr and lshr instructions look like a binary operator:
shl i32 %X, 1
instead of
shl i32 %X, i8 1
Additionally, this should help a few passes perform additional optimizations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33776 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-02 02:16:23 +00:00
Devang Patel
e27ae7e44e
cvs commit
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33765 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-01 22:08:25 +00:00
Chris Lattner
2e21fce987
silence some warnings when assertions are disabled.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33747 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-01 04:59:37 +00:00
Reid Spencer
92905d95a0
Fix build breakage by using correct arguments to getIndexedType in the
...
GEP constructors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33726 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-31 22:30:26 +00:00
Chris Lattner
6ffbe17b3c
implement the new GEP instruction ctors.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33708 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-31 19:47:18 +00:00
Chris Lattner
2b9a5daf7c
Revise APIs for creating constantexpr GEPs to not require the use of vectors.
...
This allows us to eliminate many temporary vectors, and theirassociated malloc/free pairs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33692 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-31 04:40:28 +00:00
Reid Spencer
5cbf985dcb
For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid
...
confusion with external linkage types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33663 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-30 20:08:39 +00:00
Devang Patel
c874eb54ec
- Undo previous check-in (i.e. Do not export TimingInfo class through
...
PassManagers.h).
- Add StopPassTimer() and StartPassTimer() to expose TimingInfo to
CallGraphPassManager
- Use these two APIs in CalLgraphPassManager to measure timings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33638 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 23:10:37 +00:00
Devang Patel
b05ef6a8eb
Move TimingInfo into PassManagers.h so that other libs can use it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33626 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 20:06:26 +00:00
Anton Korobeynikov
b10308e440
Propagate changes from my local tree. This patch includes:
...
1. New parameter attribute called 'inreg'. It has meaning "place this
parameter in registers, if possible". This is some generalization of
gcc's regparm(n) attribute. It's currently used only in X86-32 backend.
2. Completely rewritten CC handling/lowering code inside X86 backend.
Merged stdcall + c CCs and fastcall + fast CC.
3. Dropped CSRET CC. We cannot add struct return variant for each
target-specific CC (e.g. stdcall + csretcc and so on).
4. Instead of CSRET CC introduced 'sret' parameter attribute. Setting in
on first attribute has meaning 'This is hidden pointer to structure
return. Handle it gently'.
5. Fixed small bug in llvm-extract + add new feature to
FunctionExtraction pass, which relinks all internal-linkaged callees
from deleted function to external linkage. This will allow further
linking everything together.
NOTEs: 1. Documentation will be updated soon.
2. llvm-upgrade should be improved to translate csret => sret.
Before this, there will be some unexpected test fails.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33597 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 13:31:35 +00:00
Jim Laskey
44c3b9fdd4
Change the MachineDebugInfo to MachineModuleInfo to better reflect usage
...
for debugging and exception handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33550 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 21:22:28 +00:00
Reid Spencer
f00c595bf5
For PR761:
...
Remove the setEndianess and setPointerSize methods. These are now
handled via the setDataLayout method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33527 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 08:07:57 +00:00
Reid Spencer
3702d265b8
For PR645:
...
Implement new syntax for local and global symbols. Types and local
symbols use the % prefix. Global variables and functions use the @ prefix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33523 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 08:02:52 +00:00
Reid Spencer
0fc052c36f
For PR645:
...
Remove the Function::renameLocalSymbols function as it is no longer
needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33522 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 08:01:30 +00:00
Reid Spencer
43276ee280
IntegerType is a sized DerivedType too.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33521 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 07:51:36 +00:00
Reid Spencer
3d10b0b2d3
Clean up comments and assert messages that still refer to the old type names.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33520 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 07:37:34 +00:00
Reid Spencer
ca01cfe4df
Fix an assertion message.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33519 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 06:30:34 +00:00
Reid Spencer
2c7123c558
Whoops, fix typo in last commit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33417 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-21 02:29:10 +00:00
Reid Spencer
24d6da5fed
For PR970:
...
Clean up handling of isFloatingPoint() and dealing with PackedType.
Patch by Gordon Henriksen!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33415 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-21 00:29:26 +00:00
Chris Lattner
58092e35a3
Teach TargetData to handle 'preferred' alignment for each target, and use
...
these alignment amounts to align scalars when we can. Patch by Scott Michel!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33409 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-20 22:35:55 +00:00
Reid Spencer
ab60be7a00
Remove dead methods in the ValTypes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33372 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 21:25:12 +00:00
Reid Spencer
c10305743c
For PR1043:
...
This is the final patch for this PR. It implements some minor cleanup
in the use of IntegerType, to wit:
1. Type::getIntegerTypeMask -> IntegerType::getBitMask
2. Type::Int*Ty changed to IntegerType* from Type*
3. ConstantInt::getType() returns IntegerType* now, not Type*
This also fixes PR1120.
Patch by Sheng Zhou.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33370 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 21:13:56 +00:00
Reid Spencer
b5f378e11b
Use a cheaper computation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33336 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 18:14:49 +00:00
Reid Spencer
7808dcba05
Provide an isPowerOf2ByteWidth method for the IntegerType class. This will
...
mostly be used by back ends that wish to distinguish between integer types
that fit evenly within a natural integer type and those that don't.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33328 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 02:59:54 +00:00
Devang Patel
44b0d29802
Update ModulePass::assignPassManager() to take into account Preferred
...
Pass Manager Type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33308 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-17 21:19:23 +00:00
Devang Patel
26426949f3
s/PassDebugging_New/PassDebugging/g
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33307 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-17 20:33:36 +00:00
Devang Patel
be1ffc6b8d
Update assignPassManager() signature to allow selection of preferred
...
pass manager type. This allows new FPPassManager to select Call Graph
Pass Manager (if available) as its parent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33306 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-17 20:30:17 +00:00
Reid Spencer
0a11af1f73
For PR1117:
...
Expose the previously hidden checkCast function as CastInst::castIsValid.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33282 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-17 02:46:11 +00:00
Devang Patel
8df87095fc
Pass manager may require certain analysis. In such cases, initially
...
pass manager is last user.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33273 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-16 22:38:10 +00:00
Devang Patel
9d133e150f
Undo last check-in.
...
Remove setupPassManager() and its use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33270 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-16 21:43:18 +00:00
Devang Patel
531f01f878
Setup pass manager before scheduling required analysis.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33262 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-16 19:46:09 +00:00
Devang Patel
8f3f3d103a
Code refactoring.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33245 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-16 02:00:38 +00:00
Devang Patel
66eeb49d8f
Remove extra white spaces. Fix comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33244 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-15 23:06:56 +00:00
Devang Patel
3f5ecd7eb5
Do not record last users of Pass Manager.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33243 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-15 20:31:54 +00:00