John Criswell
4d934ceefa
Added the ExecWait() function. It executes a program with the specified
...
arguments and environment.
Perhaps it should be merged with the RunProgramWithTimeout function, but I'd
want to allow it to inherit the parent process's stdin and stdout.
I'll save that for a rainy day...
llvm-svn: 8577
2003-09-17 15:13:59 +00:00
Chris Lattner
3df1f4b6a5
Change the semancics of the dropallrefs method
...
llvm-svn: 8572
2003-09-17 04:58:59 +00:00
Chris Lattner
13c224fd17
Fix bug raising allocations whose call sites were invoke instructions.
...
Thanks to brg for tracking down the problem so precisely!
llvm-svn: 8568
2003-09-16 19:42:21 +00:00
Chris Lattner
8502d4f3f8
This is effectively a complete rewrite of the globaldce algorithm, resulting
...
in it being both shorter and more effective. It no longer depends on the
callgraph, so one FIXME has been fixed.
Additionally, this pass was not able to delete recursive (but dead) functions
if they were pointed to by global variables which were also dead. In fact
this pass had a lot of problems deleting functions which were only pointed
to by dead globals and other stuff.
Fixing this means that the entire EH library should be stripped away now from
programs that don't use sjlj or exceptions.
llvm-svn: 8567
2003-09-16 19:27:31 +00:00
Brian Gaeke
b121c72006
Add missing apostrophe. It's been bugging me for years.
...
No really, years.
llvm-svn: 8566
2003-09-16 18:00:35 +00:00
Brian Gaeke
d0729bd289
Fix typo in comment. Take out some random whitespace.
...
(Partial merge from my working file)
llvm-svn: 8564
2003-09-16 15:38:05 +00:00
Brian Gaeke
5ef624ead8
Edit comment for accuracy
...
llvm-svn: 8562
2003-09-16 15:36:50 +00:00
Misha Brukman
ed4039f715
Fixed spelling & grammar.
...
llvm-svn: 8559
2003-09-16 15:31:46 +00:00
Vikram S. Adve
e92c22c656
Fix longjmp case so that, along with the call to abort(), we also
...
generate the appropriate CallArgsDescriptor and tmp. virtual regs.
llvm-svn: 8554
2003-09-16 05:56:22 +00:00
Vikram S. Adve
724b2d6f36
Add flag to control whether or not delay slots are filled during
...
instruction scheduling (this is off by default).
llvm-svn: 8553
2003-09-16 05:55:15 +00:00
Chris Lattner
584ade803f
Fix problems with programs that prototype printf to something unusual
...
llvm-svn: 8538
2003-09-15 16:47:12 +00:00
Chris Lattner
362afdca3f
Minor cleanups, give credit, remove code that should not be necessary, and
...
was a "major hack" :)
llvm-svn: 8524
2003-09-15 05:43:05 +00:00
Brian Gaeke
d7bc2c066d
Fix typos in comments.
...
llvm-svn: 8523
2003-09-15 05:28:42 +00:00
Chris Lattner
c66f223e5a
Initial checkin of the Setjmp/Longjmp lowering/transformation pass,
...
contributed by the masterful Bill Wendling!
llvm-svn: 8520
2003-09-15 04:56:27 +00:00
Chris Lattner
f3cac3df12
Ugh, a bug fix needed because of the bug in the CallGraph code
...
llvm-svn: 8519
2003-09-15 04:52:00 +00:00
Chris Lattner
98d4e5dffc
These two conditions are not exclusive!!
...
llvm-svn: 8518
2003-09-15 04:35:16 +00:00
Chris Lattner
f3c318737f
Make the print output more useful
...
llvm-svn: 8517
2003-09-15 04:29:37 +00:00
Chris Lattner
6075013b55
Fix bug: PruneEH/2003-09-14-ExternalCall.llx
...
llvm-svn: 8516
2003-09-15 02:22:50 +00:00
Chris Lattner
7a55e0b56d
Fix bug: Inline/2003-09-14-InlineValue.ll
...
llvm-svn: 8514
2003-09-15 02:10:16 +00:00
Chris Lattner
64791df910
Fix a spello Misha made while fixing one of my appostrifications
...
llvm-svn: 8510
2003-09-15 00:33:20 +00:00
Chris Lattner
3a26b0d3be
Make sure to cannonicalize loops before running indvar simplify
...
llvm-svn: 8502
2003-09-12 16:45:01 +00:00
Chris Lattner
f277240919
Do not return success after checking only the FIRST USE of a gep instruction.
...
Instead, check all uses.
This fixes bug: ScalarRepl/2003-09-12-IncorrectPromote.ll
This also fixes the miscompilation of Ptrdist/bc
llvm-svn: 8493
2003-09-12 16:02:12 +00:00
Chris Lattner
b12390cc41
Minor optimization efficiency improvement:
...
- Run mem2reg promotion first
- Only rerun passes if the previous thing changed something
llvm-svn: 8490
2003-09-12 15:36:03 +00:00
Misha Brukman
629711a7c3
Fixed spelling and grammar.
...
llvm-svn: 8489
2003-09-11 22:34:13 +00:00
Chris Lattner
9036a399f1
Simplify code
...
Implement InstCombine/mul.ll:test9
llvm-svn: 8488
2003-09-11 22:24:54 +00:00
Misha Brukman
b9a4ddbfc5
Fixed spelling and grammar.
...
llvm-svn: 8478
2003-09-11 18:14:24 +00:00
Misha Brukman
ddbf126a18
Apostrophes are only used for possession and quoting.
...
llvm-svn: 8473
2003-09-11 16:58:31 +00:00
Chris Lattner
8a901c4d27
Integrate functionality of the mem2reg pass directly into this pass to make
...
the combination more effective
llvm-svn: 8471
2003-09-11 16:45:55 +00:00
Chris Lattner
3d39abeeb7
Renamed DominatorTree::Node::getNode() -> getBlock()
...
llvm-svn: 8469
2003-09-11 16:26:13 +00:00
Misha Brukman
d8279c4406
Spell `definite' correctly.
...
llvm-svn: 8467
2003-09-11 15:32:37 +00:00
Misha Brukman
6c4ffae6a5
Spell `definitely' correctly.
...
llvm-svn: 8466
2003-09-11 15:31:17 +00:00
Misha Brukman
262290ec19
* Move include files from middle of file to the top where they belong, moving
...
the #define up there too
* Since we're including system headers, use the ones in include/llvm/Config
* While we're here, use the canonical LLVM header ordering algorithm
llvm-svn: 8463
2003-09-10 20:52:05 +00:00
Chris Lattner
b859bf2fb5
Unwind instructions are intrinsically alive, just like returns
...
llvm-svn: 8462
2003-09-10 20:38:14 +00:00
Chris Lattner
ebf6d5c622
Rework dominator interfaces to handle changes in the post-dominance
...
construction. Now there may be multiple root blocks, and null is a
special node used to mark the "virtual" exit node of a CFG.
llvm-svn: 8461
2003-09-10 20:37:51 +00:00
Chris Lattner
9d9fd138dc
Rework post dominator information so that we do not have to
...
unify all exit nodes of a function to compute post-dominance information.
This does not work with functions that have both unwind and return nodes,
because we cannot unify these blocks. The new implementation is better
anyway. :)
llvm-svn: 8460
2003-09-10 20:37:08 +00:00
Chris Lattner
0d124f6067
Update for new UnifyFunction... API
...
Remove using decl
llvm-svn: 8458
2003-09-10 20:35:33 +00:00
Chris Lattner
3e9d3081fc
Remove #include
...
llvm-svn: 8457
2003-09-10 20:35:21 +00:00
Chris Lattner
ee577bdc08
Expand the pass to unify all of the unwind blocks as well
...
llvm-svn: 8456
2003-09-10 20:34:51 +00:00
Chris Lattner
f6bd477804
Remove a bunch of warnings from the CBE generated C code
...
llvm-svn: 8455
2003-09-10 20:12:09 +00:00
Chris Lattner
49d7564882
"the one true solution for compatibility with GCC 3.3+"
...
... or so I hope
llvm-svn: 8454
2003-09-10 20:08:00 +00:00
Chris Lattner
5468c196f3
Be a little more specific about what is begin generated. Only print
...
command line if VERBOSE=1
llvm-svn: 8453
2003-09-10 19:52:54 +00:00
Chris Lattner
f9db4af8bf
Only emit inter-field-padding if the amount of padding is != 0
...
llvm-svn: 8452
2003-09-10 19:52:24 +00:00
Brian Gaeke
7eaecc239a
Make createVerifierPass return a FunctionPass *.
...
llvm-svn: 8449
2003-09-10 19:37:04 +00:00
Chris Lattner
e5b90f633d
Remove using declarations
...
llvm-svn: 8442
2003-09-10 16:08:03 +00:00
Misha Brukman
286f1a0fe8
Fix warning when _POSIX_MAPPED_FILES is already defined in unistd.h
...
llvm-svn: 8436
2003-09-10 15:09:45 +00:00
Chris Lattner
f4be611b55
another trivial cleanup
...
llvm-svn: 8435
2003-09-10 14:55:05 +00:00
Chris Lattner
37123e1b58
Simplification of trip counting machinery.
...
- make sure to check the indvar type before anything else (efficiency)
- Make sure to insert the 'add' into the program, even though it'll be
dead
- Wrap code at 80 columns
- Other minor cleanups to reduce indentation level
llvm-svn: 8434
2003-09-10 14:51:49 +00:00
John Criswell
29a0f79c05
Don't explicitly use $SourceDir to find the tblgen files. This causes make
...
some confusion when trying to generate files (it probably couldn't tell that
./file and $(SourceDir)/file may be the same file).
Now, just let VPATH find everything, and list the primary tblgen file first in
the list of dependencies so that we can just use $< to reference it in the make
rule.
This should hopefully fix the nightly tester.
llvm-svn: 8433
2003-09-10 14:10:44 +00:00
Chris Lattner
58d4183a25
Fix spell-o's
...
llvm-svn: 8431
2003-09-10 05:29:43 +00:00
Chris Lattner
df4ad7b311
Spelling fixes. I think that "cannonical" is ok, but "canonical" appears to
...
be the canonical form for the word
llvm-svn: 8430
2003-09-10 05:24:46 +00:00
Chris Lattner
620f051422
Spelling fixes
...
llvm-svn: 8429
2003-09-10 05:24:09 +00:00
Chris Lattner
501ec018c7
Fix up file header
...
llvm-svn: 8428
2003-09-10 05:10:34 +00:00
Chris Lattner
5d113e557d
clean up file header comment
...
llvm-svn: 8427
2003-09-10 05:08:19 +00:00
Chris Lattner
f0c30718e2
Simplify some code
...
llvm-svn: 8426
2003-09-10 04:49:10 +00:00
Misha Brukman
cac883668e
Spell `occurrence' correctly.
...
llvm-svn: 8425
2003-09-09 21:54:45 +00:00
John Criswell
e783801878
Updated to find source files using VPATH. This makes writing build rules
...
much cleaner and easier.
Labeled .td as a suffix for tblgen files in Makefile.rules.
Modified build rules so that source files generated during the build are placed
in the build directory and not the source directory (and not in a Debug
directory). This makes the system cleaner and allows us to have a read-only
source tree.
llvm-svn: 8424
2003-09-09 20:57:03 +00:00
John Criswell
6b94d6a603
Reverting back to the previous revision.
...
We want to check for length 5 because we might get the "llvm." string as the
name. That string is in the LLVM namespace and should be checked as such.
We also don't have to worry about garbage data because (I believe) the string
class will return a valid value. So, the switch statement will work and we
don't have to worry about the code wandering into segfault land.
llvm-svn: 8419
2003-09-09 16:58:41 +00:00
John Criswell
0641f1fad7
Modified the check for intrinsic functions. All intrinsic functions have to
...
be at least 6 characters, since something must follow the "llvm." string in the
function name.
This seems to fix an assertion failure with the SingleSource tests, too.
llvm-svn: 8418
2003-09-09 16:36:09 +00:00
Chris Lattner
e35b8fabc4
* Simplify printConstantValueOnly by moving the tail padding stuff directly
...
into the struct case.
* Extend printConstantValueOnly to print .zero's if the initializer is zero
* Delete dead isConstantFunctionPointerRef function
* Emit the appropriate assembly for the various linkage types!
llvm-svn: 8417
2003-09-09 16:23:36 +00:00
Chris Lattner
d44cb48b44
Oops, look at the VOLATILE marker, not the opcode
...
llvm-svn: 8413
2003-09-08 20:29:46 +00:00
Chris Lattner
e8ae7bf114
Eliminate support for the llvm.unwind intrinisic, using the Unwind instruction instead
...
llvm-svn: 8411
2003-09-08 19:44:26 +00:00
Chris Lattner
d75fa85cc1
Fix bug
...
llvm-svn: 8410
2003-09-08 19:43:46 +00:00
Chris Lattner
5f9de6e523
Should invokify is always true
...
llvm-svn: 8409
2003-09-08 19:00:30 +00:00
Chris Lattner
4ad8720f91
Add support for the unwind instruction
...
llvm-svn: 8408
2003-09-08 18:54:55 +00:00
Chris Lattner
c3c2809235
Add support for unwind
...
llvm-svn: 8407
2003-09-08 18:54:36 +00:00
Chris Lattner
56bbe63aa3
Parse volatile loads/stores
...
llvm-svn: 8402
2003-09-08 18:20:29 +00:00
Chris Lattner
049cadf854
Read volatile loads/stores
...
llvm-svn: 8401
2003-09-08 18:20:14 +00:00
Chris Lattner
978ba8d937
Remove a bunch of unneeded stuph
...
llvm-svn: 8400
2003-09-08 18:19:58 +00:00
Chris Lattner
03b8e81aef
Do not hoist volatile loads
...
llvm-svn: 8399
2003-09-08 18:17:14 +00:00
Chris Lattner
f3505abe43
Fix bug: RLE-Preserve-Volatile.ll
...
Volatile loads and stores must not be value numbered
llvm-svn: 8398
2003-09-08 18:13:58 +00:00
Chris Lattner
cd6bbd3823
Remove a gross hack that was there to support bytecode files that are over a year old.
...
If you still have these suckers laying around, you have GOT to rebuild them. geeze.
llvm-svn: 8395
2003-09-08 18:04:16 +00:00
Chris Lattner
bc7004d26a
Add support for writing volatile load/stores
...
llvm-svn: 8394
2003-09-08 17:58:37 +00:00
Chris Lattner
2916eafa42
Add support for volatile loads/stores
...
llvm-svn: 8393
2003-09-08 17:45:59 +00:00
Misha Brukman
993b605832
Spell `occurrence' correctly.
...
llvm-svn: 8388
2003-09-08 03:08:43 +00:00
John Criswell
bd1d21a0b4
Checkin of autoconf-style object root.
...
Adjusted Makefile to work with new autoconf-style object root.
Specifically, use the new -I option of tblgen to find include files.
llvm-svn: 8379
2003-09-06 14:50:22 +00:00
Misha Brukman
a17b761043
Added some optimizations:
...
* Generate a single BA instead of 6-instruction JUMP if possible
(this occurs both in the creation and overwriting of the stub code)
* If possible, rewrite the ORIGINAL call to call the generated function
directly, thus bypassing the stub entirely
Also added some statistics on how often calls are overwritten and how often the
CompilationCallback is invoked.
llvm-svn: 8376
2003-09-05 22:59:31 +00:00
Chris Lattner
6c68b828f6
Reorder #includes to follow LLVM conventions
...
llvm-svn: 8375
2003-09-05 20:08:15 +00:00
Brian Gaeke
5d6ee8cf02
Correct comments
...
Don't include InstLoops.h
Don't export factory functions for these passes
llvm-svn: 8373
2003-09-05 19:43:19 +00:00
Brian Gaeke
6fe4d97bf6
Add ExecutionEngine directory.
...
llvm-svn: 8371
2003-09-05 19:39:49 +00:00
Brian Gaeke
ba6d0a6759
ExecutionEngine.h, GenericValue.h --> include/llvm/ExecutionEngine/
...
Build ExecutionEngine as library.
llvm-svn: 8370
2003-09-05 19:39:22 +00:00
Brian Gaeke
8e1bb0bcb2
Make getOperandValue and executeCastOperation methods of Interpreter.
...
This lets us protect a few more ExecutionEngine methods.
llvm-svn: 8367
2003-09-05 18:55:03 +00:00
Brian Gaeke
e157a77485
Make CreateArgv part of lli rather than part of ExecutionEngine.
...
Switch Interpreter and JIT's "run" methods to take a Function and a vector of
GenericValues.
Move (almost all of) the stuff that constructs a canonical call to main()
into lli (new methods "callAsMain", "makeStringVector").
Nuke getCurrentExecutablePath(), enableTracing(), getCurrentFunction(),
isStopped(), and many dead decls from interpreter.
Add linux strdup() support to interpreter.
Make interpreter's atexit handler runner and JIT's runAtExitHandlers() look
more alike, in preparation for refactoring.
atexit() is spelled "atexit", not "at_exit".
llvm-svn: 8366
2003-09-05 18:42:01 +00:00
Chris Lattner
a70297a209
Fix reading of invoke instrs
...
llvm-svn: 8365
2003-09-05 18:25:29 +00:00
Chris Lattner
1bb427b0a7
Whoa, we were misreading invoke instructions "normal" destinations quite badly.
...
llvm-svn: 8363
2003-09-05 05:27:58 +00:00
Brian Gaeke
7be0ff04e5
Remove printOperandInfo(), and simplify run().
...
llvm-svn: 8362
2003-09-05 05:22:08 +00:00
Chris Lattner
67dfb06d9c
Add asserts, move code around. This gets the dropAllTypeUses partially implemented
...
llvm-svn: 8361
2003-09-05 05:10:04 +00:00
Brian Gaeke
b42a2de8a9
Remove support for printing values from a module by name, only used
...
w/ interactive keyboard entry of names.
With that, Support.cpp is history.
llvm-svn: 8360
2003-09-05 05:04:32 +00:00
Brian Gaeke
edded6bce7
Remove support for interactive (step finish next) instructions.
...
Remove printCurrentInstruction, printStackFrame and infoValue
(only used interactively) and other unused methods of Interpreter.
Fold UserInput.cpp containing only callMainFunction() into Interpreter.cpp.
Remove unused Profile flag.
llvm-svn: 8359
2003-09-05 04:46:26 +00:00
Chris Lattner
71ed17fe2e
Move functionality preserving changes.
...
Inline containsEquivalent
Remove some //'s
llvm-svn: 8358
2003-09-05 02:39:52 +00:00
Chris Lattner
6a4cb9b0e9
Refactor what has effectively become copy-and-pasted code
...
llvm-svn: 8357
2003-09-05 02:30:47 +00:00
Chris Lattner
d62bda202e
Check in a bunch of minor fixes, plus a whole lot of #if 0'd out code, which will hopefully be enabled in the near future
...
This does not make any functionality changes
llvm-svn: 8355
2003-09-05 02:21:39 +00:00
Chris Lattner
a0c99153e0
containsEquivalent never returns its argument
...
llvm-svn: 8353
2003-09-04 23:49:53 +00:00
Chris Lattner
4caa92eca5
Non-functional change
...
llvm-svn: 8352
2003-09-04 23:47:07 +00:00
Chris Lattner
652d585600
Remove needless usage of getDescription()
...
llvm-svn: 8351
2003-09-04 23:46:03 +00:00
Chris Lattner
706576a0cc
Inline method
...
llvm-svn: 8350
2003-09-04 23:43:40 +00:00
Chris Lattner
3835c2fdd1
Don't try to be sneaky, breaking recursive types in the process
...
llvm-svn: 8348
2003-09-04 23:41:03 +00:00
Chris Lattner
0382bf2e98
This is now unnecessary
...
llvm-svn: 8347
2003-09-04 23:38:22 +00:00
Brian Gaeke
5efbdb852a
Remove support for breakpoints (not used).
...
Remove some dead code and whitespace.
llvm-svn: 8346
2003-09-04 23:15:40 +00:00
Brian Gaeke
0fdcd57402
Move EE dtor where it belongs
...
llvm-svn: 8345
2003-09-04 22:57:27 +00:00
Brian Gaeke
6d7d9f9cd9
Interpreter cleanups:
...
Get rid of support for DebugMode (make it always off).
Mung some comments.
Get rid of interpreter's PROFILE_STRUCTURE_FIELDS and PerformExitStuff
which have been disabled forever.
Get rid of -abort-on-exception (make it always on).
Get rid of user interaction stuff (debug mode innards).
Simplify Interpreter's callMainFunction().
llvm-svn: 8344
2003-09-04 22:21:24 +00:00
Brian Gaeke
cec978e0ed
ExecutionEngine.cpp: Move execution engine creation stuff into a new
...
static method here.
Remove some extra blank lines.
ExecutionEngine.h: Add its prototype.
lli.cpp: Call it.
Make creation method for each type of EE into a static method of its
own subclass.
Interpreter/Interpreter.cpp: ExecutionEngine::createInterpreter -->
Interpreter::create
Interpreter/Interpreter.h: Likewise.
JIT/JIT.cpp: ExecutionEngine::createJIT --> VM::create
JIT/VM.h: Likewise.
llvm-svn: 8343
2003-09-03 20:34:19 +00:00
Chris Lattner
0b78090518
Avoid printing meaningless numbers
...
llvm-svn: 8342
2003-09-03 20:25:27 +00:00
Chris Lattner
2fe8fac4e0
Fix bug where we couldn't print a function without a name
...
llvm-svn: 8341
2003-09-03 17:56:43 +00:00
Chris Lattner
4e722bde53
Follow the pattern of all other atu's
...
llvm-svn: 8340
2003-09-03 16:01:54 +00:00
Chris Lattner
2c028515e6
No need to rescan types when they are created.
...
llvm-svn: 8339
2003-09-03 14:44:53 +00:00
Chris Lattner
4a96f4593e
Another small speedup, this one to: 2.42s
...
llvm-svn: 8335
2003-09-02 22:52:49 +00:00
Chris Lattner
0cfd2b85b8
Don't return bogus references, and don't add an entry to the Concrete map
...
unless it's not empty!
llvm-svn: 8334
2003-09-02 22:50:02 +00:00
Chris Lattner
398d8a539c
Another optimization, speed up the testcase to 2.7s
...
llvm-svn: 8333
2003-09-02 22:15:15 +00:00
Chris Lattner
e4adff8157
Removal of explicit stack, which requires the method to be a member (so it can
...
call setAbstract). Now that we just compute abstractness we can also return
the computed value by value instead of as an argument.
llvm-svn: 8332
2003-09-02 21:56:34 +00:00
Chris Lattner
05eecdb7de
Remove the "recursive bit", not only is it unused by anyone, it was also
...
not correctly calculated, and calculating it wrong for fun seems rather
pointless. This also speeds up my favorite testcase by .25 seconds.
llvm-svn: 8330
2003-09-02 21:41:05 +00:00
John Criswell
6927aeed1e
Added the MakeFileReadable() method.
...
llvm-svn: 8327
2003-09-02 21:09:30 +00:00
John Criswell
5277b91d50
Added a description of the algorithm.
...
Return failure if the chmod() fails.
llvm-svn: 8326
2003-09-02 20:30:16 +00:00
John Criswell
7b83fe6beb
Added the MakeFileExecutable() method. This method takes a filename and
...
gives it execute access while respecting the user's umask.
llvm-svn: 8324
2003-09-02 20:14:57 +00:00
Chris Lattner
590606e4c4
Don't bother doing an exhaustive recursive walk if we are at the limit of what
...
we need to know anyway. This reduces the 2002-07-08-HugePerformanceProblem.llx
down to 3.210u:0.010s, which is back in the acceptable range again
llvm-svn: 8323
2003-09-02 20:06:29 +00:00
Chris Lattner
06d8aac065
Ugh, fix bugs. Ok, so the last fix wasn't as great as I thought it was.
...
Now we're back to: 131.730u, 0.330s, which is still quite an improvement,
but still quite unacceptable
llvm-svn: 8322
2003-09-02 19:14:12 +00:00
Chris Lattner
fb0b83a27b
Further simplifications
...
llvm-svn: 8321
2003-09-02 16:46:41 +00:00
Chris Lattner
dda7669997
Change the code to no longer compute the "type description" immediately when
...
the type is analyzed. Instead, only compute it when requested (with
getDescription), and cached for reuse later.
This dramatically speeds up LLVM in general because these descriptions almost
_never_ need to be constructed. The only time they are used is when a type is
<<'d. Printing of modules by themselves uses other code to print symbolic
types when possible, so these descriptions are really only used for debugging.
Also, this fixes the particularly bad case when lots of types get resolved to
each other, such as during linking of large programs. In these cases, the type
descriptions would be repeatedly recomputed and discarded even though: A. noone
reads the description before it gets resolved, and B. many many resolutions
happen at intermediate steps, causing a HUGE waste of time.
Overall, this makes the getTypeDesc function much more light-weight, and fixes
bug: Assembler/2002-07-08-HugePerformanceProblem.llx, which went from taking
1048.770u/19.150s (which is 17.5 MINUTES, on apoc), to taking 0.020u/0.000s,
which is a nice little speedup. :)
llvm-svn: 8320
2003-09-02 16:35:17 +00:00
Brian Gaeke
5a8d15dfa1
Remove assertion which is never reached.
...
llvm-svn: 8318
2003-09-02 06:45:34 +00:00
Chris Lattner
3fdc7bbd0d
Prototype for creator function got moved
...
llvm-svn: 8315
2003-09-01 20:45:33 +00:00
Chris Lattner
3d53c382ba
OptInfo is no longer required
...
llvm-svn: 8312
2003-09-01 20:41:07 +00:00
Chris Lattner
6d92264f5a
No longer provide an optinfo, noone uses it
...
llvm-svn: 8311
2003-09-01 20:40:59 +00:00
Chris Lattner
2eb5de925f
Inline simple comparison which is sparc specific anyway
...
llvm-svn: 8309
2003-09-01 20:38:03 +00:00
Chris Lattner
5520e4dc30
Don't build dead directories
...
llvm-svn: 8308
2003-09-01 20:34:15 +00:00
Chris Lattner
3d6b7d1b44
Move private interfaces into private .h file
...
llvm-svn: 8306
2003-09-01 20:33:07 +00:00
Chris Lattner
f2e4f5a388
Preselection is now integrated into the Sparc target library
...
llvm-svn: 8305
2003-09-01 20:30:17 +00:00
Chris Lattner
a685c382b1
Remove dead library makefile
...
llvm-svn: 8304
2003-09-01 20:29:43 +00:00
Chris Lattner
80c84d29b1
Remove makefile for dead library
...
llvm-svn: 8303
2003-09-01 20:26:52 +00:00
Chris Lattner
25669f3e09
Sparc peephole optimizer moved out of post-opts library into Sparc target library
...
llvm-svn: 8302
2003-09-01 20:26:14 +00:00
Chris Lattner
cd2980ec8c
Simplify code a bit
...
llvm-svn: 8301
2003-09-01 20:24:06 +00:00
Chris Lattner
049f0b8b37
LiveRange.h is now in lib/CodeGen/RegAlloc
...
llvm-svn: 8299
2003-09-01 20:17:13 +00:00
Chris Lattner
e5a47a9d95
This file is hopelessly out of date
...
llvm-svn: 8298
2003-09-01 20:14:00 +00:00
Chris Lattner
74e93a318b
LiveRangeInfo got moved into the lib/CodeGen/RegAlloc directory
...
llvm-svn: 8297
2003-09-01 20:12:17 +00:00
Chris Lattner
a591134169
PhyRegAlloc.h got moved to lib/CodeGen/RegAlloc
...
llvm-svn: 8296
2003-09-01 20:09:04 +00:00
Chris Lattner
e3fcb37a20
Move IGNode from public include directory to here. Minor cleanups like adding std:: namespace qualifiers
...
llvm-svn: 8295
2003-09-01 20:05:47 +00:00
Chris Lattner
8ebc13b6ca
IGNode got moved to lib/CodeGen/RegAlloc
...
llvm-svn: 8294
2003-09-01 20:00:08 +00:00
Chris Lattner
ee413804c7
This file just needs LiveRange.h not IGNode.h
...
llvm-svn: 8293
2003-09-01 19:58:02 +00:00
Chris Lattner
a43cd2a9c9
No longer include IGNode.h in the Sparc global header
...
llvm-svn: 8292
2003-09-01 19:56:48 +00:00
Chris Lattner
16149f6b85
Final cleanup: remove dead code
...
llvm-svn: 8291
2003-09-01 18:01:36 +00:00
Chris Lattner
b70da7293b
Not only is this a lot smaller, it actually works if there is already a
...
function with the right name in the module.
llvm-svn: 8290
2003-09-01 16:53:46 +00:00
Chris Lattner
3bef1d6ae4
Dead files
...
llvm-svn: 8289
2003-09-01 16:49:57 +00:00
Chris Lattner
8fd6602748
If "These should be used only by the auto-parallelization pass", we might as
...
well put them INTO the auto-par pass.
llvm-svn: 8288
2003-09-01 16:49:38 +00:00
Chris Lattner
d5f57a52db
Moved all of the cilkifier stuff into lib/Transforms/IPO, as it really is not
...
support stuff.
llvm-svn: 8287
2003-09-01 16:45:30 +00:00
Chris Lattner
4ee52b7154
Minor cleanups
...
Do not #include Parallelize.h, it's just a subset of Cilkifier.h
llvm-svn: 8285
2003-09-01 16:42:16 +00:00
Chris Lattner
4252e57c90
Remove gross old hacky code that was in there for backwards compatibility
...
1 year is plenty of migration time!
llvm-svn: 8282
2003-09-01 16:31:28 +00:00
Chris Lattner
2cdcc41517
Change the RaiseAllocations pass to be a Pass instead of a BasicBlock pass.
...
This makes it more efficient: it doesn't have to scan the whole program, so
it performs work proportional to the number of malloc/free calls in the
program, not the size of the program.
llvm-svn: 8280
2003-09-01 03:14:56 +00:00
Chris Lattner
c3019e3d22
Fix bug: TailDuplicate/2003-08-31-UnreachableBlocks.ll
...
llvm-svn: 8276
2003-08-31 21:17:44 +00:00
Chris Lattner
0620f3d2fa
Replace M with F when refering to functions
...
llvm-svn: 8274
2003-08-31 20:36:52 +00:00
Chris Lattner
f72da72785
Rename TarjanSCCIterator -> scc_iterator
...
* Increases consistency with other iterators (e.g. df_iterator, po_iterator...)
* It's shorter
* We don't name classes by the implementation, we name it for the interface!
llvm-svn: 8273
2003-08-31 20:01:57 +00:00
Chris Lattner
b16810e6ee
Don't explicitly use the SCC class
...
llvm-svn: 8271
2003-08-31 19:55:06 +00:00
Chris Lattner
1b262a5395
Remove dead var
...
llvm-svn: 8270
2003-08-31 19:54:57 +00:00
Chris Lattner
acd5eb1663
The SCC::HasLoop method is now in the main iterator
...
llvm-svn: 8269
2003-08-31 19:51:38 +00:00
Chris Lattner
05498bc768
Remove explicit passing of SCC's around as objects.
...
llvm-svn: 8267
2003-08-31 19:46:48 +00:00
Chris Lattner
8314d710a6
Move the getAnalysisUsage method from the header file
...
llvm-svn: 8264
2003-08-31 19:40:57 +00:00
Chris Lattner
87aba3e3d5
The tarjan iterator now returns a reference to the current SCC, not a possibly null pointer!
...
llvm-svn: 8262
2003-08-31 19:35:16 +00:00
Chris Lattner
9e2279bd9d
Minor cleanups
...
Iterate from tarj_begin -> tarj_end, not from tarj_begin -> NULL
llvm-svn: 8260
2003-08-31 19:29:52 +00:00
Chris Lattner
e4682822fb
Indent classes correctly in the namespace
...
move bodies out-of-line
Add getAnalysisUsage method for SFGSCC
llvm-svn: 8259
2003-08-31 19:27:11 +00:00
Chris Lattner
f8dfcdadf3
* Cleanups
...
* Iterate from tarj_begin -> tarj_end, not from tarj_begin -> NULL
llvm-svn: 8258
2003-08-31 19:23:41 +00:00
Chris Lattner
a37b6a09d3
Heavily refactor code:
...
* Separate the policy decisions into a derived class [InlineSimple]
* Move the inlining mechanics into a base class [Inliner]
* Change the inliner to be an SCCPass, making it more structured and
eventually pipelinable with other SCC passes
llvm-svn: 8257
2003-08-31 19:10:30 +00:00
Chris Lattner
212039c1c8
Add accessor function
...
llvm-svn: 8253
2003-08-31 16:30:07 +00:00
Chris Lattner
d024e5ea75
Initial checkin of the -prune-eh pass, a very simple exception handling removal pass
...
llvm-svn: 8250
2003-08-31 02:47:32 +00:00
Chris Lattner
0fd60ef271
Initial checkin of the CallGraphSCCPass class
...
llvm-svn: 8247
2003-08-31 01:54:59 +00:00
Chris Lattner
09777aa277
ScalarRepl does not modify the CFG. Say so!
...
llvm-svn: 8243
2003-08-31 00:45:13 +00:00
Chris Lattner
663f967b7b
Use new interface, simplifies code
...
llvm-svn: 8242
2003-08-31 00:22:27 +00:00
Chris Lattner
8378e59323
Use the new interface, simplifies code
...
NOTE that these two files are _BUGGY_ and need to be fixed, just not by me :)
llvm-svn: 8241
2003-08-31 00:21:59 +00:00
Chris Lattner
fa80983a82
Use the new interface, simplifies code
...
Delete a bunch of commented out code
llvm-svn: 8240
2003-08-31 00:21:05 +00:00
Chris Lattner
ad1253a44f
Use the new interface, simplifies code
...
llvm-svn: 8239
2003-08-31 00:20:36 +00:00
Chris Lattner
d7b6cc98db
Implement new method
...
llvm-svn: 8238
2003-08-31 00:19:28 +00:00
Chris Lattner
6f0cabcb53
There is no reason for this to be a pass!
...
llvm-svn: 8214
2003-08-29 14:43:17 +00:00
Chris Lattner
b60bfd904c
Fix bug: Linker/2003-08-28-TypeResolvesGlobal3.ll
...
Use new replaceAllUsesWith stuff in a way that works even though types have not yet been propagated
llvm-svn: 8210
2003-08-29 05:37:22 +00:00
Chris Lattner
286e92a9ef
Implement "unsafe" replaceAllUsesWWith stuff for use during type resolution.
...
llvm-svn: 8209
2003-08-29 05:36:46 +00:00
Chris Lattner
055944e9d3
Fix bug: Linker/2003-08-28-TypeResolvesGlobal2.ll
...
llvm-svn: 8206
2003-08-29 05:11:34 +00:00
Chris Lattner
a2a7b891e5
Refactor code to make it useful outside of Constants.cpp
...
llvm-svn: 8205
2003-08-29 05:09:37 +00:00
Chris Lattner
f104b6e6ad
Fix bug: Linker/2003-08-28-TypeResolvesGlobal.ll
...
llvm-svn: 8202
2003-08-29 04:49:54 +00:00
Misha Brukman
6202e8a9ea
* Use alloca() to force GCC not to eliminate frame pointer
...
* Break apart saving and restoring registers into separate functions
* Instead of saving single and double FP registers, just save the double
registers -- aliasing helps preserve the single FP registers as well.
* Request just as much memory for a stub as we actually use
llvm-svn: 8200
2003-08-29 04:22:54 +00:00
John Criswell
588d65ae68
Fixed two double free bugs that caused llc to segfault or run forever.
...
llvm-svn: 8191
2003-08-28 21:43:17 +00:00
Chris Lattner
062cc9d341
Add support for the llvm.unwind intrinsic, which we codegen to just do an abort
...
until we implement unwinding.
Add support for the invoke instruction, which codegens just like a call with
a branch after it.
The end effect of this change is that programs using the invoke instruction,
but never unwinding, will work fine. Programs that unwind will abort until
we get unwind support.
llvm-svn: 8187
2003-08-28 21:23:43 +00:00
Chris Lattner
763a88d6bd
Fix really nasty bugs in the CWriter, handling invoke instructions. Tracking
...
these down was NOT phun.
llvm-svn: 8181
2003-08-28 19:56:10 +00:00
Tanya Lattner
7fc76b7377
Removing README
...
llvm-svn: 8180
2003-08-28 17:17:59 +00:00
Tanya Lattner
f7a56c2596
Putting my revised version of ModuloScheduling in cvs. This is not complete...
...
llvm-svn: 8179
2003-08-28 17:12:14 +00:00
Chris Lattner
a295c0d706
Fix bug where we considered function types equivalent even if they had differing numbers of arguments
...
llvm-svn: 8178
2003-08-28 16:42:50 +00:00
Tanya Lattner
7ce05c067d
Moved index into BB to common graph class because its needed by ModuloSchedGraph.
...
llvm-svn: 8174
2003-08-28 15:30:40 +00:00
Tanya Lattner
2c6c16288a
Added/removed header file
...
llvm-svn: 8160
2003-08-27 15:12:24 +00:00
Tanya Lattner
78d4730ae6
*** empty log message ***
...
llvm-svn: 8153
2003-08-27 02:42:58 +00:00
Chris Lattner
491ea39105
Fix bug: SCCP/2003-08-26-InvokeHandling.ll
...
llvm-svn: 8152
2003-08-27 01:08:35 +00:00
Tanya Lattner
f172cf418d
First version of SchedGraph common class and refactoring of SchedGraph.
...
llvm-svn: 8148
2003-08-25 22:42:20 +00:00
Chris Lattner
e7a3a51c77
As it turns out, things will be simpler than I first expected. We no longer
...
need any exception handling intrinsics beyond llvm.unwind. (yaay)
llvm-svn: 8145
2003-08-25 22:35:01 +00:00
Chris Lattner
399ad7c300
Remove special casing
...
llvm-svn: 8144
2003-08-25 22:34:15 +00:00
Chris Lattner
27cccb2db0
Mangle ALL letters that we do not allow, not just a few.
...
llvm-svn: 8140
2003-08-24 21:08:38 +00:00
Chris Lattner
c444f0ceea
Simplify code
...
llvm-svn: 8139
2003-08-24 21:00:22 +00:00
Chris Lattner
94184ddd7b
Consult the target data, not the module, about how large the current pointer
...
size is. This ensures that if the module has no specified pointer size that
things will work correctly.
llvm-svn: 8136
2003-08-24 19:55:26 +00:00
Chris Lattner
24b58d4b81
Targets now configure themselves based on the source module, not on the
...
ad-hoc "Config" flags
llvm-svn: 8134
2003-08-24 19:50:53 +00:00
Chris Lattner
f31d84d7c5
Targets should configure themselves based on a Module, not some wierd flags
...
llvm-svn: 8132
2003-08-24 19:49:48 +00:00
Chris Lattner
bca7655aa9
Fix bug: Linker/2003-08-23-GlobalVarLinking.ll
...
llvm-svn: 8130
2003-08-24 19:30:20 +00:00
Chris Lattner
64c658e617
Implement: Linker/2003-08-24-InheritPtrSize.ll
...
llvm-svn: 8129
2003-08-24 19:26:42 +00:00
Chris Lattner
d627d84e23
Implement: Jello/test-constantexpr.ll
...
llvm-svn: 8127
2003-08-24 19:19:47 +00:00
Chris Lattner
a0203709f4
Implement SimplifyCFG/InvokeEliminate.ll
...
llvm-svn: 8126
2003-08-24 18:36:16 +00:00
Chris Lattner
688dd40912
Add preliminary support for "any" pointersize/endianness. This will need
...
to change soon though.
llvm-svn: 8123
2003-08-24 14:02:47 +00:00
Chris Lattner
d22a618a27
Add support for 'any' pointer size and endianness
...
llvm-svn: 8120
2003-08-24 13:49:22 +00:00
Chris Lattner
91cdd5dbc9
Support new 'any' support for pointer size and endianness
...
llvm-svn: 8119
2003-08-24 13:48:48 +00:00
Chris Lattner
03980a2b30
Allow modules to have 'any' pointer size and endianness. Luckily, we had
...
some space for extra flags, so we don't need to bump the revision number.
llvm-svn: 8118
2003-08-24 13:47:36 +00:00