Commit Graph

7290 Commits

Author SHA1 Message Date
Misha Brukman
ef93ca23ba Make tablegen targets depend on PowerPCInstrFormats.td as well
llvm-svn: 15500
2004-08-04 21:18:36 +00:00
Chris Lattner
4107bfcf9b Fix a latent bug exposed by my recent changes
llvm-svn: 15498
2004-08-04 18:50:09 +00:00
Chris Lattner
0100ef2e24 It is not possible to catch SIGKILL, don't bother trying.
llvm-svn: 15496
2004-08-04 18:14:24 +00:00
Chris Lattner
1ce22d3d43 getValues does not exist
llvm-svn: 15495
2004-08-04 17:29:14 +00:00
Chris Lattner
f499378d6e getValues is gone
llvm-svn: 15494
2004-08-04 17:27:27 +00:00
Alkis Evlogimenos
4084c50fad Clean up whitespace.
llvm-svn: 15490
2004-08-04 09:46:56 +00:00
Alkis Evlogimenos
db3b503b6f Convert indentation to 2 spaces.
llvm-svn: 15489
2004-08-04 09:46:26 +00:00
Alkis Evlogimenos
f853362a44 Stop using getValues().
llvm-svn: 15487
2004-08-04 08:44:43 +00:00
Chris Lattner
586734c438 Fix a major regression in my previous checkin
llvm-svn: 15486
2004-08-04 08:30:43 +00:00
Alkis Evlogimenos
bdd0467a1e Stop using getValues().
llvm-svn: 15485
2004-08-04 08:08:13 +00:00
Brian Gaeke
bcf97189e3 Get rid of the only use of TargetInstrInfo::getResultPos(), a deprecated method.
llvm-svn: 15483
2004-08-04 08:05:27 +00:00
Alkis Evlogimenos
72232b4a01 Stop using getValues().
llvm-svn: 15482
2004-08-04 08:02:59 +00:00
Chris Lattner
3f4d9ffde5 FindGlobalNamed used to take 2.92s out of 8.39s running a profile build of
gccld -disable-opt on 252.eon.

This patch deletes it and replaces it with a map.  The proper fix for this
is to fix PR411, but this will do in the short term.

gccld on eon now takes 5.51s, which is 50% faster than before this patch. :)

llvm-svn: 15480
2004-08-04 07:44:58 +00:00
Brian Gaeke
a3937dba33 Include SparcV9TmpInstr.h to pick up the def. of TmpInstruction,
instead of InstrSelection.h, which is dead.

llvm-svn: 15476
2004-08-04 07:34:57 +00:00
Brian Gaeke
10dd34f5d8 Tighten up some whitespace. Include SparcV9TmpInstr.h to pick up
the def. of TmpInstruction, instead of InstrSelection.h, which is
dead.

llvm-svn: 15475
2004-08-04 07:34:44 +00:00
Brian Gaeke
cf5c05b371 Include SparcV9BurgISel.h, to pick up the definition of
createSparcV9BurgInstSelector().

llvm-svn: 15474
2004-08-04 07:30:04 +00:00
Brian Gaeke
904618127d Include SparcV9TmpInstr.h instead of llvm/CodeGen/InstrSelection.h, to pick
up the definition of class TmpInstruction.

llvm-svn: 15473
2004-08-04 07:29:53 +00:00
Brian Gaeke
34aa0c9905 Include SparcV9BurgISel.h, because PreSelection uses routines from within
the SparcV9 BURG instruction selector.  Eww!

llvm-svn: 15472
2004-08-04 07:29:40 +00:00
Brian Gaeke
30384b669d Add a Doxygen comment, and inline the constructor (which is now almost empty).
llvm-svn: 15471
2004-08-04 07:29:28 +00:00
Brian Gaeke
43e28e8de4 The InstrForest data type has moved from llvm/CodeGen/InstrForest.h
to SparcV9InstrForest.h.

llvm-svn: 15470
2004-08-04 07:29:16 +00:00
Brian Gaeke
b989c54cf7 Add a new file containing just TmpInstruction and its implementation.
Many other pieces of the SparcV9 backend want to use TmpInstruction, but
don't need any other instruction selector baggage.

llvm-svn: 15469
2004-08-04 07:29:04 +00:00
Brian Gaeke
b0388ebaa3 All the SparcV9 BURG instruction selector pieces have been collected into the
new file SparcV9BurgISel.cpp, with exposed interfaces in SparcV9BurgISel.h.
The InstrSelection directory is now dead.

llvm-svn: 15468
2004-08-04 07:28:51 +00:00
Chris Lattner
f140ae0851 I swear I compiled this, really I did.
llvm-svn: 15467
2004-08-04 07:28:06 +00:00
Chris Lattner
5cc9a6fda7 Factor some code out, no substantial change.
llvm-svn: 15466
2004-08-04 07:05:54 +00:00
Chris Lattner
4a2f261fab Concisify some code
Do not call FindGlobalNamed when we know we will ignore the result (because
we are not going to link a static symbol anyway).  This speeds up
gccld -disable-opt on 252.eon from 8.63s to 8.39s.

llvm-svn: 15465
2004-08-04 06:05:47 +00:00
Chris Lattner
100d0875ba Implement a FIXME, by not searching linearly through a map to remove an
element.  This speeds up the bytecode reader from 12.86s to 8.72s on 252.eon.

llvm-svn: 15463
2004-08-04 04:48:01 +00:00
Chris Lattner
cccb1332ed Squelch warnings in release mode
llvm-svn: 15460
2004-08-04 03:51:55 +00:00
Chris Lattner
8eda57f392 Add a cast
llvm-svn: 15457
2004-08-04 02:27:17 +00:00
Chris Lattner
71bbf1ea00 Change SymbolTable::insertEntry to be more careful about how many map
lookups it does.  This shaves another 5% off of bcreading 252.eon.  Note that
the proper solution to this problem is to fix PR411, but that will have to
wait until later.

llvm-svn: 15455
2004-08-04 00:37:31 +00:00
Reid Spencer
7a574d3872 Add a --version option for every tool that prints out:
Low Level Virtual Machine ($PACKAGE_NAME) $PACKAGE_VERSION

llvm-svn: 15454
2004-08-04 00:36:06 +00:00
Chris Lattner
21a0243ceb Make getGlobalTableValue not use getTypeSlot, this speeds up the bc reader
by 5% on eon

llvm-svn: 15452
2004-08-04 00:19:23 +00:00
Chris Lattner
7c4828adaf Do not do a linear std::find to reconstruct information we had, but later threw
away.  This speeds up by .bc reader by 30% in a profile build on 252.eon.

llvm-svn: 15450
2004-08-03 23:41:28 +00:00
Misha Brukman
07f8b33325 Remove unused opcodes.
llvm-svn: 15447
2004-08-03 20:23:44 +00:00
Chris Lattner
61cf3e484e Move this file out of the top-level docs directory
llvm-svn: 15429
2004-08-03 04:15:02 +00:00
Misha Brukman
10a585beaf * Use simpler instruction templates to define instructions
* Fix several extended opcodes

llvm-svn: 15423
2004-08-02 21:58:52 +00:00
Misha Brukman
e7ad7b2f2a Replace patterns 0, 4, and 5 with simpler heirarchical definitions that use the
official PowerPC instruction format lingo: X- and D-form.

llvm-svn: 15422
2004-08-02 21:56:35 +00:00
Chris Lattner
13e1bc338d Hide this option
llvm-svn: 15415
2004-08-02 20:16:21 +00:00
Misha Brukman
f2119a5b6f Separate instruction formats from instruction definitions.
llvm-svn: 15414
2004-08-02 16:54:54 +00:00
Misha Brukman
245315547e Add #include <cstdlib> and abort() to silence a warning
llvm-svn: 15413
2004-08-02 14:02:21 +00:00
Misha Brukman
1fd8909108 * ceil() requires #include <cmath> for compilation
* Alphabetize #includes
* Fix some lines to fit within 80 cols

llvm-svn: 15412
2004-08-02 13:59:10 +00:00
Chris Lattner
41c8b70624 Fix a regression in InstCombine/xor.ll
llvm-svn: 15410
2004-08-01 19:42:59 +00:00
Chris Lattner
2677b71f64 Fix a warning
llvm-svn: 15409
2004-08-01 19:31:30 +00:00
Tanya Lattner
414e014c5f Adding ModuloScheduling so that it compiles for everyone.
llvm-svn: 15408
2004-08-01 19:00:17 +00:00
Chris Lattner
df7c9d0339 Convert all I<> instructions to asmformat.
Delete the 'name' field of all instructions that have asmformats.

llvm-svn: 15403
2004-08-01 09:52:59 +00:00
Chris Lattner
786c788d12 Dereferencing end() is bad.
llvm-svn: 15402
2004-08-01 09:51:42 +00:00
Chris Lattner
1ca0362e24 Add some immediate forms, make name optional
llvm-svn: 15401
2004-08-01 09:36:44 +00:00
Chris Lattner
90a4b737dd Eliminate 3 of the X86 printImplicit* flags.
llvm-svn: 15398
2004-08-01 08:23:17 +00:00
Chris Lattner
de4844f84d Get rid of 3 of the 4 'printimplicit' flags. Implicit operands are now
explicitly listed in the asm string.

llvm-svn: 15397
2004-08-01 08:22:29 +00:00
Chris Lattner
0c5ab21dcd Convert more instructions over to the asmprinter
llvm-svn: 15396
2004-08-01 08:13:11 +00:00
Chris Lattner
0a6fedb451 Handle registers a bit more efficiently
llvm-svn: 15395
2004-08-01 08:12:41 +00:00
Chris Lattner
c40aa40525 give FP stack registers names
llvm-svn: 15394
2004-08-01 08:12:13 +00:00
Chris Lattner
6c596faddb Switch more instructions over to using the asmprinter. Fix bugs in the emission
of in/out instructions (missing %'s on registers).

llvm-svn: 15393
2004-08-01 07:44:35 +00:00
Chris Lattner
3a928f8119 The tblgen'erated asmparser wants a way to print operands.
llvm-svn: 15392
2004-08-01 07:43:46 +00:00
Chris Lattner
e4c868ffa0 Rename the Printer class -> X86AsmPrinter.
Include the tablegenerated assembly writer.

llvm-svn: 15389
2004-08-01 06:02:08 +00:00
Chris Lattner
a02166d28b Factor a bunch of the rules and add support for generating the asmwriter.
llvm-svn: 15388
2004-08-01 06:01:32 +00:00
Chris Lattner
9a7b050ebb Specify an asm string and operands lists for a bunch of instructions.
This only really covers no-operand instructions so far.

llvm-svn: 15387
2004-08-01 06:01:00 +00:00
Chris Lattner
91a07c84b1 Add the 'ops' marker, add an AsmString initializer
llvm-svn: 15383
2004-08-01 04:40:43 +00:00
Chris Lattner
101dccd430 Completely disable the pattern isel until it is more substantial.
llvm-svn: 15380
2004-08-01 03:28:02 +00:00
Chris Lattner
9bce44c8cc Entirely eliminate all patterns and expanders from this file. We shall go
with an incremental approach rather than a revolutionary approach.

llvm-svn: 15379
2004-08-01 03:25:01 +00:00
Chris Lattner
d20c857ba0 Move the 'Expander' node to later in the file, with the other experimental
stuff.  The pattern becomes a list, add some stuff, add some comments.

llvm-svn: 15378
2004-08-01 03:23:34 +00:00
Chris Lattner
0717ef353d Remove obsolete file
llvm-svn: 15377
2004-08-01 03:19:28 +00:00
Alkis Evlogimenos
1dd3ea5515 Make OptimizeBlock take a MachineFunction::iterator instead of a
MachineBasicBlock* as a parameter so that nxext() and prior() helper
functions can work naturally on it.

llvm-svn: 15376
2004-07-31 19:24:41 +00:00
Chris Lattner
ecca71ce92 Next on a pointer increments the pointer, not an iterator
llvm-svn: 15375
2004-07-31 18:40:36 +00:00
Alkis Evlogimenos
b28bc78d0a Use next() helper to make code more readable. Use
MachineFunction::iterator instead of MachineBasicBlock* to avoid
dereferencing end iterators.

llvm-svn: 15373
2004-07-31 15:14:29 +00:00
Alkis Evlogimenos
143aeb646c Use MachineFunction::iterator instead of a MachineBasicBlock* because
FallThrough maybe == to MF.end().

llvm-svn: 15372
2004-07-31 15:03:52 +00:00
Alkis Evlogimenos
cdcb1c62e5 Align breaks.
llvm-svn: 15371
2004-07-31 10:05:44 +00:00
Chris Lattner
170b31f44d Expose this as a functionpass
llvm-svn: 15369
2004-07-31 10:01:58 +00:00
Chris Lattner
7b12b8a13e Implement a simple target-independent CFG cleanup pass
llvm-svn: 15368
2004-07-31 10:01:27 +00:00
Chris Lattner
0d66480e9e Add breaks
llvm-svn: 15365
2004-07-31 09:53:31 +00:00
Alkis Evlogimenos
1eb8a5dc09 Simplify code a bit.
llvm-svn: 15364
2004-07-31 09:44:32 +00:00
Alkis Evlogimenos
de150fb74b Correctly spell 'unconditional'.
llvm-svn: 15363
2004-07-31 09:41:44 +00:00
Alkis Evlogimenos
bc3d550391 Implement insertGoto and reverseBranchCondition for the X86.
llvm-svn: 15362
2004-07-31 09:38:47 +00:00
Chris Lattner
c21741420c I'm pretty sure that ba is branch always, which is a barrier. Brg should
check this :)

llvm-svn: 15357
2004-07-31 02:24:37 +00:00
Chris Lattner
9a23ab1e63 Mark barrier instructions. Execution does not fall through uncond branches
or return intructions.

llvm-svn: 15356
2004-07-31 02:10:53 +00:00
Chris Lattner
6ff86f8af6 New flag
llvm-svn: 15354
2004-07-31 02:07:07 +00:00
Tanya Lattner
e757e5a231 Updated ModuloScheduling. It makes it all the wya through register allocation on the new code!!
llvm-svn: 15351
2004-07-30 23:36:10 +00:00
Misha Brukman
8209358fca * 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.

llvm-svn: 15347
2004-07-30 15:53:09 +00:00
Misha Brukman
f0c6eaca10 Do not mark LR as callee-save: not quite correctly done. Patch: Nate Begeman.
llvm-svn: 15346
2004-07-30 15:51:51 +00:00
Misha Brukman
27ced926da * Temporarily suspend LR save/restore optimization as it is not quite correct
* Implement large fixed-size allocas            Entire patch by Nate Begeman.

llvm-svn: 15345
2004-07-30 15:50:45 +00:00
Misha Brukman
4b70aa2e78 Fix De Morgan's name.
llvm-svn: 15343
2004-07-30 12:50:08 +00:00
Chris Lattner
e63c404df2 Start using the PatternMatcher a bit.
llvm-svn: 15342
2004-07-30 07:50:03 +00:00
Brian Gaeke
9abd4de830 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.

llvm-svn: 15339
2004-07-29 21:31:20 +00:00
Misha Brukman
8760d70159 Fix #includes of i*.h => Instructions.h as per PR403.
llvm-svn: 15337
2004-07-29 17:30:57 +00:00
Misha Brukman
58104df77b Fix #includes of i*.h => Instructions.h as per PR403.
llvm-svn: 15334
2004-07-29 17:30:56 +00:00
Chris Lattner
42b2748566 Fix #includes of i*.h => Instructions.h as per PR403:
http://llvm.cs.uiuc.edu/PR403 .

llvm-svn: 15333
2004-07-29 17:23:00 +00:00
Chris Lattner
964a0794b0 Header moved
llvm-svn: 15332
2004-07-29 17:15:38 +00:00
Chris Lattner
d5247fc917 Fix #includes of i*.h => Instructions.h as per PR403:
http://llvm.cs.uiuc.edu/PR403 .

llvm-svn: 15331
2004-07-29 17:11:37 +00:00
Misha Brukman
2a80e53645 Fix #includes of i*.h => Instructions.h as per PR403.
llvm-svn: 15328
2004-07-29 17:05:13 +00:00
Misha Brukman
8346db7afe Fix #includes of i*.h files => Instructions.h as per PR403
llvm-svn: 15327
2004-07-29 16:53:53 +00:00
Alkis Evlogimenos
09d3f2533c Merge i*.cpp definitions into Instructions.cpp as part of bug403.
llvm-svn: 15326
2004-07-29 12:33:25 +00:00
Alkis Evlogimenos
fb27f702ca Merge i*.h headers into Instructions.h as part of bug403.
llvm-svn: 15325
2004-07-29 12:17:34 +00:00
Chris Lattner
b2cf39d1a4 Fix test/Regression/Analysis/BasicAA/2004-07-28-MustAliasbug.llx
This also fixes the miscompilation of MallocBench/gs with dead store
elimination enabled.

llvm-svn: 15324
2004-07-29 07:56:39 +00:00
Brian Gaeke
636a3a9525 Get rid of a few dead method declarations.
llvm-svn: 15323
2004-07-29 06:43:10 +00:00
Brian Gaeke
e946e1fedf Get rid of calls to void llvm::printSet(const ValueSet &).
llvm-svn: 15322
2004-07-29 06:43:09 +00:00
Brian Gaeke
88dbff09db Get rid of calls to void llvm::printSet(const ValueSet &).
Use LiveRange's iterator types and operations instead of ValueSet's.

llvm-svn: 15321
2004-07-29 06:43:08 +00:00
Brian Gaeke
7de9b55c7e 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.)

llvm-svn: 15320
2004-07-29 06:43:06 +00:00
Brian Gaeke
e7b655d971 Fix a few typoes and grammaroes in comments.
llvm-svn: 15319
2004-07-29 04:25:43 +00:00
Brian Gaeke
8061d1a01f Remove mustSaveAcrossCalls flag, which isn't ever read, and its mutator,
markForSaveAcrossCalls.

llvm-svn: 15317
2004-07-29 04:15:36 +00:00
Chris Lattner
6bea23ff54 Minor corrections
llvm-svn: 15309
2004-07-28 20:18:53 +00:00
Brian Gaeke
99f18cc97f TargetInstrInfo::hasOperandInterlock() is always true, because it is
never overridden by any target.

llvm-svn: 15308
2004-07-28 19:24:48 +00:00