Brian Gaeke
5485e6fa0a
Bugs fixed
...
llvm-svn: 13360
2004-05-04 21:22:57 +00:00
Brian Gaeke
439e61cc1f
update command guide to have --tool-args
...
llvm-svn: 13359
2004-05-04 21:13:35 +00:00
Brian Gaeke
433b49b796
Add --tool-args flag which lets you pass arguments to llc or lli.
...
This is intended to address Bug 40.
llvm-svn: 13358
2004-05-04 21:09:16 +00:00
Brian Gaeke
28d81c4d0d
Correctly mangle function names when they are used as part of a
...
constant pool member's name.
This is intended to address Bug 333.
Also, fix an anachronistic usage of "M" as a parameter of type Function *.
llvm-svn: 13357
2004-05-04 21:09:02 +00:00
Brian Gaeke
ba26360c7e
Add "Args" optional argument to AbstractInterpreter factory methods, which
...
fills in a ToolArgs vector in the AbstractInterpreter if it is set. This
ToolArgs vector is used to pass additional arguments to LLI and/or LLC.
This is intended to address Bug 40.
Also, make -debug-only=toolrunner work for the LLC and CBE
AbstractInterpreters.
llvm-svn: 13356
2004-05-04 21:09:01 +00:00
Chris Lattner
42e602b94f
Remove unneeded check
...
llvm-svn: 13355
2004-05-04 19:35:11 +00:00
Chris Lattner
dac54ebbee
Improve signed division by power of 2 *dramatically* from this:
...
div:
mov %EDX, DWORD PTR [%ESP + 4]
mov %ECX, 64
mov %EAX, %EDX
sar %EDX, 31
idiv %ECX
ret
to this:
div:
mov %EAX, DWORD PTR [%ESP + 4]
mov %ECX, %EAX
sar %ECX, 5
shr %ECX, 26
mov %EDX, %EAX
add %EDX, %ECX
sar %EAX, 6
ret
Note that the intel compiler is currently making this:
div:
movl 4(%esp), %edx #3.5
movl %edx, %eax #4.14
sarl $5, %eax #4.14
shrl $26, %eax #4.14
addl %edx, %eax #4.14
sarl $6, %eax #4.14
ret #4.14
Which has one less register->register copy. (hint hint alkis :)
llvm-svn: 13354
2004-05-04 19:33:58 +00:00
Misha Brukman
4d6a3d4e1e
Provide visit(Module&) and visitModule(Module&) functionality.
...
llvm-svn: 13353
2004-05-04 18:30:38 +00:00
Brian Gaeke
f3b62c562e
Add stub support for reading BBTraces.
...
llvm-svn: 13352
2004-05-04 17:11:14 +00:00
Brian Gaeke
e9fab81769
Add BBTrace accessor method and data member.
...
llvm-svn: 13351
2004-05-04 17:11:13 +00:00
Chris Lattner
6adc20db80
Bug fixed
...
llvm-svn: 13350
2004-05-04 17:04:09 +00:00
Chris Lattner
05f657f5c2
Do not mark instructions in unreachable sections of the function as live.
...
This fixes PR332 and ADCE/2004-05-04-UnreachableBlock.llx
llvm-svn: 13349
2004-05-04 17:00:46 +00:00
Chris Lattner
fb38755cdd
New testcase for PR332
...
llvm-svn: 13348
2004-05-04 17:00:10 +00:00
Brian Gaeke
c9d203e3d2
New header file containing profile info enums shared between the C++ analysis
...
libraries and the C runtime support library
llvm-svn: 13347
2004-05-04 16:57:57 +00:00
Brian Gaeke
ae8607e56a
Share ProfilingType enum with the C profiling runtime libraries.
...
llvm-svn: 13346
2004-05-04 16:53:07 +00:00
Brian Gaeke
c30f79d8f4
Share the profile info type enum with the C++ analysis libraries.
...
Add a documentation comment for write_profiling_data().
llvm-svn: 13345
2004-05-04 16:51:48 +00:00
Brian Gaeke
2690f648c6
Constants for profile info type changed names to match the C++ ones.
...
llvm-svn: 13344
2004-05-04 16:51:47 +00:00
Brian Gaeke
b2d9d71730
Constants for profile info type changed names to match the C++ ones.
...
Edited comments.
llvm-svn: 13343
2004-05-04 16:51:46 +00:00
Chris Lattner
cb9a614ea4
Improve code generated for integer multiplications by 2,3,5,9
...
llvm-svn: 13342
2004-05-04 15:47:14 +00:00
Chris Lattner
7896144611
Minor efficiency tweak, suggested by Patrick Meredith
...
llvm-svn: 13341
2004-05-04 15:19:33 +00:00
Brian Gaeke
a5b32230db
Fix typo
...
llvm-svn: 13340
2004-05-03 23:52:07 +00:00
Brian Gaeke
6b569a35ba
Add initial implementation of basic block tracing runtime
...
llvm-svn: 13339
2004-05-03 23:51:50 +00:00
Brian Gaeke
581652e2e1
Add basic block tracing functions as exported symbols.
...
llvm-svn: 13338
2004-05-03 23:49:17 +00:00
Brian Gaeke
0f806b8509
Add basic block tracing information as a type of "profiling" information.
...
llvm-svn: 13337
2004-05-03 23:49:16 +00:00
Brian Gaeke
dcfc3c580e
In InsertProfilingInitCall(), make it legal to pass in a null array, in
...
which case you'll get a null array and zero passed to the profiling function.
llvm-svn: 13336
2004-05-03 22:06:33 +00:00
Brian Gaeke
c8cd0e9092
Add initial implementation of basic-block tracing instrumentation pass.
...
llvm-svn: 13335
2004-05-03 22:06:32 +00:00
Chris Lattner
2e752b62b4
Initialize member out of paranoia
...
llvm-svn: 13319
2004-05-02 16:06:40 +00:00
Chris Lattner
f5f6f8c0de
Fix a problem with double freeing memory. For some reason, CallGraph is not
...
acting like a normal pass. :(
llvm-svn: 13318
2004-05-02 16:06:18 +00:00
Chris Lattner
099edda1b1
Plug a minor memory leak
...
llvm-svn: 13317
2004-05-02 07:31:34 +00:00
Chris Lattner
d8345001fa
Do not clone arbitrary condition instructions.
...
llvm-svn: 13316
2004-05-02 05:19:36 +00:00
Chris Lattner
da2d746a3b
Do not infinitely "unroll" single BB loops.
...
llvm-svn: 13315
2004-05-02 05:02:03 +00:00
Chris Lattner
5fdb901643
Add some stuff to the release notes.
...
llvm-svn: 13314
2004-05-02 04:19:15 +00:00
Brian Gaeke
397162e886
Chris told me to take these assertions out a few days ago, but I forgot to
...
check this in.
llvm-svn: 13313
2004-05-02 01:04:52 +00:00
Chris Lattner
5f393764c8
Dont' merge terminators that are needed to select PHI node values.
...
llvm-svn: 13312
2004-05-02 01:00:44 +00:00
Chris Lattner
bd705d7776
Implement SimplifyCFG/branch-cond-merge.ll
...
Turning "if (A < B && B < C)" into "if (A < B & B < C)"
llvm-svn: 13311
2004-05-01 23:35:43 +00:00
Chris Lattner
c8991cdae8
New testcase:
...
Turn "if (A < B && B < C)" into "if (A < B & B < C)"
llvm-svn: 13310
2004-05-01 23:35:21 +00:00
Chris Lattner
eb59aec632
Make sure to reprocess instructions used by deleted instructions to avoid
...
missing opportunities for combination.
llvm-svn: 13309
2004-05-01 23:27:23 +00:00
Chris Lattner
f5a5668cf6
Make sure the instruction combiner doesn't lose track of instructions
...
when replacing them, missing the opportunity to do simplifications
llvm-svn: 13308
2004-05-01 23:19:52 +00:00
Chris Lattner
911e21e8ca
Fix my missing parens
...
llvm-svn: 13307
2004-05-01 22:41:51 +00:00
Chris Lattner
82278b599b
Implement SimplifyCFG/branch-cond-prop.ll
...
llvm-svn: 13306
2004-05-01 22:36:37 +00:00
Chris Lattner
d4abdd9dc3
New testcase for case that simplifycfg should catch
...
llvm-svn: 13305
2004-05-01 22:36:24 +00:00
Chris Lattner
4b5d4eb5b1
Remove unused #include
...
llvm-svn: 13304
2004-05-01 21:29:16 +00:00
Chris Lattner
ffbf667718
Iterate over the Machine CFG that Brian added instead of the LLVM CFG.
...
Look at all of the pretty minuses. :)
llvm-svn: 13303
2004-05-01 21:27:53 +00:00
Chris Lattner
c09a94de9e
Operate on the Machine CFG instead of on the LLVM CFG
...
llvm-svn: 13302
2004-05-01 21:24:39 +00:00
Chris Lattner
769668c09a
Stop LiveVariables from using BasicBlocks as part of the mapping, instead
...
use MachineBasicBlocks. To do this, we traverse the Machine CFG instead of
the LLVM CFG, which is also *MUCH* more efficient by having fewer levels of
indirections and mappings.
llvm-svn: 13301
2004-05-01 21:24:24 +00:00
Chris Lattner
dd7eb23ccf
Stop LiveVariables from using BasicBlocks as part of the mapping, instead
...
use MachineBasicBlocks.
llvm-svn: 13300
2004-05-01 21:23:35 +00:00
Chris Lattner
939685e14b
Move the GraphTraits for MachineBasicBlocks to the MachineBasicBlock file.
...
llvm-svn: 13299
2004-05-01 21:05:34 +00:00
Chris Lattner
aac6ae5b07
Add comment about optimizations
...
llvm-svn: 13298
2004-05-01 11:40:07 +00:00
Chris Lattner
5f29db9741
Add a constructor that got lost
...
llvm-svn: 13297
2004-05-01 11:17:13 +00:00
Brian Gaeke
aaeb4c4d23
Generalize the strlen size_t hack, for the benefit of the other external
...
functions with wrappers that either take or return size_ts.
llvm-svn: 13296
2004-05-01 06:42:15 +00:00