OSDN Git Service
Chris Lattner [Fri, 7 May 2004 22:09:22 +0000 (22:09 +0000)]
Implement folding of GEP's like:
%tmp.0 = getelementptr [50 x sbyte]* %ar, uint 0, int 5 ; <sbyte*> [#uses=2]
%tmp.7 = getelementptr sbyte* %tmp.0, int 8 ; <sbyte*> [#uses=1]
together. This patch actually allows us to simplify and generalize the code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13415
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Fri, 7 May 2004 21:47:36 +0000 (21:47 +0000)]
Allow the user to set the LLVMINTERP environment variable as a workaround, for
when they have to run a gccld shell script without having lli in their path.
This is intended to address Bug 289.
Also, emit the traditional syntax ${1+"$@"} for passing all of a shell script's
args to a subprocess. If you have arguments that have spaces in them, $* will
not preserve the quoting (i.e., the quoted string "foo bar" as an argument will
end up as two arguments "foo" "bar" to lli.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13414
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Fri, 7 May 2004 21:39:30 +0000 (21:39 +0000)]
Add support for copying bool constants to registers.
Disable the code that copies long constants to registers - it looks fishy.
Implement some simple casts: integral, smaller than longs, and equal-width
or narrowing only.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13413
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 May 2004 21:18:15 +0000 (21:18 +0000)]
Codegen floating point stores of constants into integer instructions. This
allows us to compile:
store float 10.0, float* %P
into:
mov DWORD PTR [%EAX],
1092616192
instead of:
.CPItest_0: # float 0x4024000000000000
.long
1092616192 # float 10
...
fld DWORD PTR [.CPItest_0]
fstp DWORD PTR [%EAX]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13409
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Fri, 7 May 2004 21:10:28 +0000 (21:10 +0000)]
Add more casts. You can never have enough casts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13408
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 May 2004 19:55:55 +0000 (19:55 +0000)]
Make comparisons against the null pointer as efficient as integer comparisons
against zero. In particular, don't emit:
mov %ESI, 0
cmp %ECX, %ESI
instead, emit:
test %ECX, %ECX
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13407
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 May 2004 19:23:05 +0000 (19:23 +0000)]
PR implemented
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13406
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 May 2004 18:40:38 +0000 (18:40 +0000)]
Bug fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13403
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 May 2004 18:38:59 +0000 (18:38 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13402
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 May 2004 15:38:50 +0000 (15:38 +0000)]
New testcase for PR336
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13401
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 May 2004 15:35:56 +0000 (15:35 +0000)]
Fix PR336: The instcombine pass asserts when visiting load instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13400
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Fri, 7 May 2004 13:57:19 +0000 (13:57 +0000)]
Regression test for PR#330.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13399
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 May 2004 02:27:32 +0000 (02:27 +0000)]
Add the enum corresponding to the source change I made earlier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13395
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Thu, 6 May 2004 22:23:24 +0000 (22:23 +0000)]
Bug fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13392
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Thu, 6 May 2004 22:15:47 +0000 (22:15 +0000)]
Don't call getForwardedType() twice, as recommended by Chris.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13391
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 6 May 2004 22:05:35 +0000 (22:05 +0000)]
Use the new commandline flag to allow us to call bugpoint like this:
bugpoint ... --tool-args -enable-correct-eh-support -regalloc=linearscan --args -- -foo
So that tool-args option gets the -enable-correct-eh-support -regalloc=linearscan flags instead of bugpoint.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13389
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 6 May 2004 22:04:31 +0000 (22:04 +0000)]
Implement the new cl::PositionalEatsArgs flag, refactor code a bit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13388
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 6 May 2004 22:03:59 +0000 (22:03 +0000)]
Add a new cl::PositionalEatsArgs flag
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13387
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Thu, 6 May 2004 21:18:08 +0000 (21:18 +0000)]
Fix for PR#330.
When looking at getelementptr instructions, make sure to use a forwarded
type. We want to do this because a DerivedType may drop its uses and then
refine its users, who may then use another user who hasn't been refined yet.
By getting the forwarded type, we always ensure that we're looking at a
Type that isn't in a halfway refined state.
Now, I should be able to put this stuff in PATypeHandle, but it doesn't work
for some reason. This should do for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13386
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 6 May 2004 19:29:58 +0000 (19:29 +0000)]
Remove a really old comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13385
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 6 May 2004 18:06:18 +0000 (18:06 +0000)]
Just testing the "Reid has CVS commit access" system
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13384
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 6 May 2004 16:53:18 +0000 (16:53 +0000)]
Give props to Vladimir Prus for the inst_iterator patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13383
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 6 May 2004 16:25:59 +0000 (16:25 +0000)]
numeric_limits::infinity() apparently does not work on all systems. As a
workaround, use the C HUGE_VAL macro instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13377
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Thu, 6 May 2004 02:07:42 +0000 (02:07 +0000)]
Fix for gcc3.4: invalid use of forward delacred class on line 93
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13370
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 5 May 2004 06:10:06 +0000 (06:10 +0000)]
Move the stuff that fixes the size, orientation & fonts of graphs to
the debugging functions that call "dot". These fixed settings have
various problems: for example, the fixed size that is set in the graph
traits classes is not appropriate for turning the dot file into a PNG,
and if TrueType font rendering is being used, the 'Courier' TrueType font
may not be installed. It seems easy enough to specify these things on the
command line, anyhow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13366
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 4 May 2004 22:02:41 +0000 (22:02 +0000)]
Apply simplification suggested by Chris: why assign() when operator = will do?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13364
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Tue, 4 May 2004 21:46:05 +0000 (21:46 +0000)]
Fixed inconsistent indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13363
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 4 May 2004 21:41:45 +0000 (21:41 +0000)]
Missing piece of fix for Bug 333
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13362
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 4 May 2004 21:22:57 +0000 (21:22 +0000)]
Bugs fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13360
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 4 May 2004 21:13:35 +0000 (21:13 +0000)]
update command guide to have --tool-args
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13359
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 4 May 2004 21:09:16 +0000 (21:09 +0000)]
Add --tool-args flag which lets you pass arguments to llc or lli.
This is intended to address Bug 40.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13358
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 4 May 2004 21:09:02 +0000 (21:09 +0000)]
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 *.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13357
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 4 May 2004 21:09:01 +0000 (21:09 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13356
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 May 2004 19:35:11 +0000 (19:35 +0000)]
Remove unneeded check
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13355
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 May 2004 19:33:58 +0000 (19:33 +0000)]
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 :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13354
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 4 May 2004 18:30:38 +0000 (18:30 +0000)]
Provide visit(Module&) and visitModule(Module&) functionality.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13353
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 4 May 2004 17:11:14 +0000 (17:11 +0000)]
Add stub support for reading BBTraces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13352
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 4 May 2004 17:11:13 +0000 (17:11 +0000)]
Add BBTrace accessor method and data member.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13351
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 May 2004 17:04:09 +0000 (17:04 +0000)]
Bug fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13350
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 May 2004 17:00:46 +0000 (17:00 +0000)]
Do not mark instructions in unreachable sections of the function as live.
This fixes PR332 and ADCE/2004-05-04-UnreachableBlock.llx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13349
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 May 2004 17:00:10 +0000 (17:00 +0000)]
New testcase for PR332
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13348
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 4 May 2004 16:57:57 +0000 (16:57 +0000)]
New header file containing profile info enums shared between the C++ analysis
libraries and the C runtime support library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13347
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 4 May 2004 16:53:07 +0000 (16:53 +0000)]
Share ProfilingType enum with the C profiling runtime libraries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13346
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 4 May 2004 16:51:48 +0000 (16:51 +0000)]
Share the profile info type enum with the C++ analysis libraries.
Add a documentation comment for write_profiling_data().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13345
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 4 May 2004 16:51:47 +0000 (16:51 +0000)]
Constants for profile info type changed names to match the C++ ones.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13344
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 4 May 2004 16:51:46 +0000 (16:51 +0000)]
Constants for profile info type changed names to match the C++ ones.
Edited comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13343
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 May 2004 15:47:14 +0000 (15:47 +0000)]
Improve code generated for integer multiplications by 2,3,5,9
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13342
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 May 2004 15:19:33 +0000 (15:19 +0000)]
Minor efficiency tweak, suggested by Patrick Meredith
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13341
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 3 May 2004 23:52:07 +0000 (23:52 +0000)]
Fix typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13340
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 3 May 2004 23:51:50 +0000 (23:51 +0000)]
Add initial implementation of basic block tracing runtime
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13339
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 3 May 2004 23:49:17 +0000 (23:49 +0000)]
Add basic block tracing functions as exported symbols.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13338
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 3 May 2004 23:49:16 +0000 (23:49 +0000)]
Add basic block tracing information as a type of "profiling" information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13337
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 3 May 2004 22:06:33 +0000 (22:06 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13336
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 3 May 2004 22:06:32 +0000 (22:06 +0000)]
Add initial implementation of basic-block tracing instrumentation pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13335
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 May 2004 16:06:40 +0000 (16:06 +0000)]
Initialize member out of paranoia
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13319
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 May 2004 16:06:18 +0000 (16:06 +0000)]
Fix a problem with double freeing memory. For some reason, CallGraph is not
acting like a normal pass. :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13318
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 May 2004 07:31:34 +0000 (07:31 +0000)]
Plug a minor memory leak
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13317
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 May 2004 05:19:36 +0000 (05:19 +0000)]
Do not clone arbitrary condition instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13316
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 May 2004 05:02:03 +0000 (05:02 +0000)]
Do not infinitely "unroll" single BB loops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13315
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 May 2004 04:19:15 +0000 (04:19 +0000)]
Add some stuff to the release notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13314
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Sun, 2 May 2004 01:04:52 +0000 (01:04 +0000)]
Chris told me to take these assertions out a few days ago, but I forgot to
check this in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13313
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 May 2004 01:00:44 +0000 (01:00 +0000)]
Dont' merge terminators that are needed to select PHI node values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13312
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 May 2004 23:35:43 +0000 (23:35 +0000)]
Implement SimplifyCFG/branch-cond-merge.ll
Turning "if (A < B && B < C)" into "if (A < B & B < C)"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13311
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 May 2004 23:35:21 +0000 (23:35 +0000)]
New testcase:
Turn "if (A < B && B < C)" into "if (A < B & B < C)"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13310
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 May 2004 23:27:23 +0000 (23:27 +0000)]
Make sure to reprocess instructions used by deleted instructions to avoid
missing opportunities for combination.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13309
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 May 2004 23:19:52 +0000 (23:19 +0000)]
Make sure the instruction combiner doesn't lose track of instructions
when replacing them, missing the opportunity to do simplifications
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13308
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 May 2004 22:41:51 +0000 (22:41 +0000)]
Fix my missing parens
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13307
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 May 2004 22:36:37 +0000 (22:36 +0000)]
Implement SimplifyCFG/branch-cond-prop.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13306
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 May 2004 22:36:24 +0000 (22:36 +0000)]
New testcase for case that simplifycfg should catch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13305
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 May 2004 21:29:16 +0000 (21:29 +0000)]
Remove unused #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13304
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 May 2004 21:27:53 +0000 (21:27 +0000)]
Iterate over the Machine CFG that Brian added instead of the LLVM CFG.
Look at all of the pretty minuses. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13303
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 May 2004 21:24:39 +0000 (21:24 +0000)]
Operate on the Machine CFG instead of on the LLVM CFG
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13302
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 May 2004 21:24:24 +0000 (21:24 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13301
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 May 2004 21:23:35 +0000 (21:23 +0000)]
Stop LiveVariables from using BasicBlocks as part of the mapping, instead
use MachineBasicBlocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13300
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 May 2004 21:05:34 +0000 (21:05 +0000)]
Move the GraphTraits for MachineBasicBlocks to the MachineBasicBlock file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13299
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 May 2004 11:40:07 +0000 (11:40 +0000)]
Add comment about optimizations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13298
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 May 2004 11:17:13 +0000 (11:17 +0000)]
Add a constructor that got lost
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13297
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Sat, 1 May 2004 06:42:15 +0000 (06:42 +0000)]
Generalize the strlen size_t hack, for the benefit of the other external
functions with wrappers that either take or return size_ts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13296
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 30 Apr 2004 22:17:12 +0000 (22:17 +0000)]
Fix broken link, again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13295
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Fri, 30 Apr 2004 20:48:37 +0000 (20:48 +0000)]
Sorry, now friend class name should be right!!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13294
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Fri, 30 Apr 2004 20:47:59 +0000 (20:47 +0000)]
Fixed friend class name for ModuloScheduling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13293
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Fri, 30 Apr 2004 20:46:40 +0000 (20:46 +0000)]
Fixed friend class name for ModuloSched
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13292
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Fri, 30 Apr 2004 20:40:38 +0000 (20:40 +0000)]
Removing MachineResource class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13291
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 30 Apr 2004 14:13:16 +0000 (14:13 +0000)]
Fix a broken link
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13290
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 30 Apr 2004 04:37:52 +0000 (04:37 +0000)]
Fix a major pessimization in the instcombiner. If an allocation instruction
is only used by a cast, and the casted type is the same size as the original
allocation, it would eliminate the cast by folding it into the allocation.
Unfortunately, it was placing the new allocation instruction right before
the cast, which could pull (for example) alloca instructions into the body
of a function. This turns statically allocatable allocas into expensive
dynamically allocated allocas, which is bad bad bad.
This fixes the problem by placing the new allocation instruction at the same
place the old one was, duh. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13289
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 29 Apr 2004 17:43:55 +0000 (17:43 +0000)]
Add machine-CFG graph traits specializations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13288
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 29 Apr 2004 04:05:30 +0000 (04:05 +0000)]
Wrapped code and comments at 80 cols; doxygenified some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13264
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 29 Apr 2004 04:04:47 +0000 (04:04 +0000)]
Reorder #includes as per style guide.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13263
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 28 Apr 2004 19:36:08 +0000 (19:36 +0000)]
Added `zeroinitializer' keyword.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13253
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 28 Apr 2004 19:24:28 +0000 (19:24 +0000)]
class AssemblyWriter:
* Make contained ostream pointer, not reference
* Allow setting of that ostream via setStream()
class CachedWriter:
* setStream() in turn calls setStream() on the AssemblyWriter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13247
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 28 Apr 2004 19:22:58 +0000 (19:22 +0000)]
* Make contained ostream not public.
* Remove various print methods that called the Value* method, just have one that
all subclasses of Value will use anyway.
* Remove template for printing constant references
* Add methods to print char* and strings
* setStream now sets the stream on the contained AssemblyWriter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13246
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 28 Apr 2004 18:52:43 +0000 (18:52 +0000)]
Send text and numbers directly to CachedWriter's contained ostream.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13243
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 28 Apr 2004 15:32:09 +0000 (15:32 +0000)]
Squelch compile-time warning (profile build).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13228
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 28 Apr 2004 15:31:21 +0000 (15:31 +0000)]
* Add ability to print out type as symbolic
* Add Module accessor to AssemblyWriter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13227
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 28 Apr 2004 15:30:33 +0000 (15:30 +0000)]
* Add ability to get and set the output stream
* New feature: outputting a Type* as symbolic, controlled via the stream
similarly to sending std::hex to change number format
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13226
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 28 Apr 2004 04:46:35 +0000 (04:46 +0000)]
Add pred./succ. list size methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13214
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 28 Apr 2004 04:45:55 +0000 (04:45 +0000)]
Make RequiresFPRegKill() take a MachineBasicBlock arg.
In InsertFPRegKills(), just check the MachineBasicBlock for successors
instead of its corresponding BasicBlock.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13213
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 28 Apr 2004 04:34:16 +0000 (04:34 +0000)]
In InsertFPRegKills(), use the machine-CFG itself rather than the
LLVM CFG when trying to find the successors of BB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13212
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 28 Apr 2004 04:19:37 +0000 (04:19 +0000)]
Update the machine-CFG edges whenever we see a branch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13211
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 28 Apr 2004 04:15:06 +0000 (04:15 +0000)]
Move private methods to end of class decl at Chris's request
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13210
91177308-0d34-0410-b5e6-
96231b3b80d8