Chris Lattner
62cce39515
Mark barrier instructions. Execution does not fall through uncond branches
...
or return intructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15356 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-31 02:10:53 +00:00
Chris Lattner
2a809f6567
New flag
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15354 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-31 02:07:07 +00:00
Tanya Lattner
0a88d2d8b9
Updated ModuloScheduling. It makes it all the wya through register allocation on the new code!!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15351 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-30 23:36:10 +00:00
Misha Brukman
88f8f9226f
* Conditional save/restore of LR disabled as it's not quite correct
...
* sumarray2d fixed: large fixed-size alloca
* make is now compileable
* Re-organized tests to fit them under proper headings
Patch by Nate Begeman.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15347 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-30 15:53:09 +00:00
Misha Brukman
a9c528f0aa
Do not mark LR as callee-save: not quite correctly done. Patch: Nate Begeman.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15346 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-30 15:51:51 +00:00
Misha Brukman
4ffddc5228
* Temporarily suspend LR save/restore optimization as it is not quite correct
...
* Implement large fixed-size allocas Entire patch by Nate Begeman.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15345 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-30 15:50:45 +00:00
Misha Brukman
cb6267bc60
Fix De Morgan's name.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15343 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-30 12:50:08 +00:00
Chris Lattner
acd1f0fcb3
Start using the PatternMatcher a bit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15342 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-30 07:50:03 +00:00
Brian Gaeke
365f54c7bc
Convert a few assertions with side-effects into regular old runtime checks.
...
These side-effects seem to make a difference when using llc -march=sparcv9
in Release mode (i.e., with -DNDEBUG); when they are left out, lots of
instructions just get dropped on the floor, because they never end up
in the schedule.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15339 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-29 21:31:20 +00:00
Misha Brukman
78c038d0cc
Fix #includes of i*.h => Instructions.h as per PR403.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15337 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-29 17:30:57 +00:00
Misha Brukman
47b14a4a6a
Fix #includes of i*.h => Instructions.h as per PR403.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15334 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-29 17:30:56 +00:00
Chris Lattner
879313ae3a
Fix #includes of i*.h => Instructions.h as per PR403:
...
http://llvm.cs.uiuc.edu/PR403 .
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15333 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-29 17:23:00 +00:00
Chris Lattner
4ab78e0489
Header moved
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15332 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-29 17:15:38 +00:00
Chris Lattner
9670eecf33
Fix #includes of i*.h => Instructions.h as per PR403:
...
http://llvm.cs.uiuc.edu/PR403 .
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15331 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-29 17:11:37 +00:00
Misha Brukman
d8e1eea678
Fix #includes of i*.h => Instructions.h as per PR403.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15328 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-29 17:05:13 +00:00
Misha Brukman
44336292fc
Fix #includes of i*.h files => Instructions.h as per PR403
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15327 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-29 16:53:53 +00:00
Alkis Evlogimenos
91366a8541
Merge i*.cpp definitions into Instructions.cpp as part of bug403.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15326 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-29 12:33:25 +00:00
Alkis Evlogimenos
eb62bc77b6
Merge i*.h headers into Instructions.h as part of bug403.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15325 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-29 12:17:34 +00:00
Chris Lattner
730b1ad2c4
Fix test/Regression/Analysis/BasicAA/2004-07-28-MustAliasbug.llx
...
This also fixes the miscompilation of MallocBench/gs with dead store
elimination enabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15324 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-29 07:56:39 +00:00
Brian Gaeke
246b40ae7a
Get rid of a few dead method declarations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15323 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-29 06:43:10 +00:00
Brian Gaeke
a308f80155
Get rid of calls to void llvm::printSet(const ValueSet &).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15322 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-29 06:43:09 +00:00
Brian Gaeke
db7c40db10
Get rid of calls to void llvm::printSet(const ValueSet &).
...
Use LiveRange's iterator types and operations instead of ValueSet's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15321 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-29 06:43:08 +00:00
Brian Gaeke
fb8f856f14
Don't derive from ValueSet to implement class LiveRange; instead, use a
...
SetVector<Value *> data member.
Add << operator for LiveRanges (a dumb one, for now.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15320 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-29 06:43:06 +00:00
Brian Gaeke
988f5b530a
Fix a few typoes and grammaroes in comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15319 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-29 04:25:43 +00:00
Brian Gaeke
fc63adb1b9
Remove mustSaveAcrossCalls flag, which isn't ever read, and its mutator,
...
markForSaveAcrossCalls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15317 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-29 04:15:36 +00:00
Chris Lattner
83660c5aed
Minor corrections
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15309 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-28 20:18:53 +00:00
Brian Gaeke
b2f30a3792
TargetInstrInfo::hasOperandInterlock() is always true, because it is
...
never overridden by any target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15308 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-28 19:24:48 +00:00
Misha Brukman
8b88d906a2
Add notes on bug involving casting ulong -> double, thanks to Nate Begeman.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15307 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-28 19:16:10 +00:00
Misha Brukman
a0af38c46a
Simplify loading (un)signed constants to registers, patch by Nate Begeman.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15306 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-28 19:13:49 +00:00
Misha Brukman
b7697a6dd2
Remove an extra 8 byte distance penalty. Patch by Nate Begeman.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15305 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-28 19:13:07 +00:00
Misha Brukman
f63bc199c6
Find longs by type, not by their primitive size being 64. Patch by Nate Begeman.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15304 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-28 19:12:24 +00:00
Misha Brukman
8b29776d68
LI can only take signed values, so values > 32767 can only be loaded with ORI
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15299 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-28 00:56:04 +00:00
Misha Brukman
b9b8ba58e7
Reorganize tests to place them in proper directories.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15298 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-28 00:55:12 +00:00
Misha Brukman
56d38c6ca1
UnitTests 2003-05-26-Shorts and 2003-07-09-LoadShorts have been fixed;
...
2003-05-22-VarSizeArray is broken.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15297 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-28 00:01:41 +00:00
Misha Brukman
af313fb188
Fix printing of immediate operands by looking at their operand types in
...
the TargetInstrInfo. This fixes UnitTests 2003-05-26-Shorts and
2003-07-09-LoadShorts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15296 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-28 00:00:48 +00:00
Misha Brukman
8c02c1cbb8
Renamed files:
...
* PowerPCReg.td => PowerPCRegisterinfo.td
* PowerPCInstrs.td => PowerPCInstrInfo.td
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15295 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-27 23:29:16 +00:00
Brian Gaeke
de0ceb58ba
ConstantTypeMustBeLoaded has been incorporated into SparcV9PreSelection, its
...
only user.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15294 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-27 21:43:38 +00:00
Brian Gaeke
a770e0041b
This was the only user of TargetInstrInfo::ConstantTypeMustBeLoaded().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15293 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-27 21:11:20 +00:00
Robert Bocchino
71698285e8
This change fixed a bug in the function visitMul. The prior version
...
assumed that a constant on the RHS of a multiplication was either an
IntConstant or an FPConstant. It checked for an IntConstant and then,
if it did not find one, did a hard cast to an FPConstant. That code
would crash if the RHS were a ConstantExpr that was neither an
IntConstant nor an FPConstant. This version replaces the hard cast
with a dyn_cast. It performs the same way for IntConstants and
FPConstants but does nothing, instead of crashing, for constant
expressions.
The regression test for this change is 2004-07-27-ConstantExprMul.ll.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15291 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-27 21:02:21 +00:00
Brian Gaeke
eb6c29bbfd
Get rid of the (apparently non-working) filePrinterEmitter which is added in
...
debug mode. Its only effect seems to be the creation of an empty file...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15289 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-27 19:37:37 +00:00
Misha Brukman
4ce5ce25e8
Branch selection support implemented by Nate Begeman for long branches.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15288 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-27 18:43:04 +00:00
Misha Brukman
ab96790f2c
Correctly print out long branches, assert on finding pseudo instr COND_BRANCH
...
Patch by Nate Begeman.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15286 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-27 18:40:39 +00:00
Misha Brukman
bd2c870539
Run the branch selection pass right before the asm printer.
...
Patch by Nate Begeman.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15285 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-27 18:39:34 +00:00
Misha Brukman
596c23134b
Remove empty unused method processFunctionBeforeFrameFinalized()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15284 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-27 18:38:40 +00:00
Misha Brukman
f228fa0580
Add COND_BRANCH pseudo instruction, patch by Nate Begeman.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15283 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-27 18:35:54 +00:00
Misha Brukman
fa20a6dfd7
Build COND_BRANCHes which may become long or short, decided by a later pass.
...
Patch by Nate Begeman.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15282 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-27 18:35:23 +00:00
Misha Brukman
8aebe9f96c
Moved definition of invertPPCBranchOpcode() into PowerPCInstrInfo class.
...
Patch by Nate Begeman.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15281 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-27 18:34:11 +00:00
Misha Brukman
999d9cfde5
Add PowerPCBranchSelector to discover which are `long' branches.
...
Contributed by Nate Begeman.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15280 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-27 18:33:06 +00:00
Brian Gaeke
c998981505
TargetInstrInfo::getNOPOpCode() has been replaced by a reference to V9::NOP.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15279 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-27 17:43:24 +00:00
Brian Gaeke
a376ee2d13
Convert many of the virtual TargetInstrInfo methods used as helper
...
functions in SparcV9InstrSelection and SparcV9PreSelection into regular
old global functions. As it happens, none of them really have anything
to do with TargetInstrInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15278 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-27 17:43:23 +00:00