Chris Lattner [Fri, 12 Mar 2004 05:52:44 +0000 (05:52 +0000)]
Add sccp support for select instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12318
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2004 05:52:32 +0000 (05:52 +0000)]
Add trivial optimizations for select instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12317
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2004 05:52:14 +0000 (05:52 +0000)]
ADd support for select instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12316
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2004 05:52:01 +0000 (05:52 +0000)]
Write select instructions to bytecode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12315
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2004 05:51:49 +0000 (05:51 +0000)]
Read select instrs from bytecode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12314
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2004 05:51:36 +0000 (05:51 +0000)]
Allow parsing select instruction and constant expr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12313
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2004 05:51:22 +0000 (05:51 +0000)]
Add the visitSelectInst visitor method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12312
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2004 05:51:05 +0000 (05:51 +0000)]
Add the SelectInst class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12311
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2004 05:50:53 +0000 (05:50 +0000)]
Add the Instruction::Select enum
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12310
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2004 05:50:39 +0000 (05:50 +0000)]
Add support for select constant exprs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12309
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2004 05:50:24 +0000 (05:50 +0000)]
This is no longer an open project
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12308
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2004 05:50:16 +0000 (05:50 +0000)]
Cleanup the cast section, add the select instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12307
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Mar 2004 05:50:02 +0000 (05:50 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12306
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 12 Mar 2004 00:58:41 +0000 (00:58 +0000)]
Make code more readable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12305
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 11 Mar 2004 23:53:51 +0000 (23:53 +0000)]
Fix indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12298
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 11 Mar 2004 23:52:43 +0000 (23:52 +0000)]
Move implementations of functions here, which avoids #including <cstdlib> in the
header file and all those who #include it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12297
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 11 Mar 2004 23:52:03 +0000 (23:52 +0000)]
Move function implementations to a .cpp file, avoid #including <cstdlib> here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12296
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 11 Mar 2004 23:42:24 +0000 (23:42 +0000)]
Forward-declare templates for fix compilation when Argument.h is included first.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12295
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 11 Mar 2004 23:08:20 +0000 (23:08 +0000)]
Doxygenified and cleand up comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12294
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 11 Mar 2004 21:26:29 +0000 (21:26 +0000)]
Miscellaneous additions are a separate section.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12293
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 11 Mar 2004 20:55:23 +0000 (20:55 +0000)]
Make sure libcrtend.a gets installed when you make install-bytecode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12292
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 11 Mar 2004 19:46:30 +0000 (19:46 +0000)]
Get rid of the abort in PhyRegAlloc::finishSavingState().
Make an explicit call to it from runOnFunction() if we know we're supposed to
write into the global. This is lame (esp. the const_cast), but it solves
the problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12291
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 11 Mar 2004 19:23:15 +0000 (19:23 +0000)]
Give pass a name
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12290
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 11 Mar 2004 19:08:24 +0000 (19:08 +0000)]
Fix compilation on Sparc: assert(0) => abort()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12289
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 11 Mar 2004 18:16:33 +0000 (18:16 +0000)]
SparcV8 removed until it grows up becomes a mature backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12288
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Thu, 11 Mar 2004 10:14:21 +0000 (10:14 +0000)]
Fix spelling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12287
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 11 Mar 2004 06:45:52 +0000 (06:45 +0000)]
In PhyRegAlloc::saveState(), dump Arguments' saved-state, and try to
make the output more compact.
Divorce state-saving from the doFinalization method; for some reason it's not
getting called when I want it to, at Reoptimizer time. Put the guts in
PhyRegAlloc::finishSavingState(). Put an abort() in it so that I can be really
really sure that it's getting called.
Update comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12286
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 11 Mar 2004 04:42:41 +0000 (04:42 +0000)]
Remove ghostly directory from the build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12285
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Thu, 11 Mar 2004 02:50:35 +0000 (02:50 +0000)]
Embed a floating frame of the bugzilla query in the page. This way
people looking for open projects cannot miss the link :-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12284
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 11 Mar 2004 00:50:54 +0000 (00:50 +0000)]
Minor additions and cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12279
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 10 Mar 2004 22:21:03 +0000 (22:21 +0000)]
Move all the SaveState options and stuff inton one spot at the top of the file.
De-constify SaveStateToModule; we have to set both it and SaveRegAllocState
explicitly in the reoptimizer.
Make SaveRegAllocState an 'external location' option.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12278
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 10 Mar 2004 22:01:59 +0000 (22:01 +0000)]
Only call verifySavedState if SaveRegAllocState is set AND debugging flag is on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12277
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 10 Mar 2004 21:43:47 +0000 (21:43 +0000)]
Bugz fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12276
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 10 Mar 2004 21:42:19 +0000 (21:42 +0000)]
Fix PR284: [indvars] Induction variable analysis violates LLVM invariants
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12275
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 10 Mar 2004 21:41:47 +0000 (21:41 +0000)]
New testcase for PR284: [indvars] Induction variable analysis violates LLVM invariants
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12274
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Wed, 10 Mar 2004 19:38:33 +0000 (19:38 +0000)]
Add link to bugzilla query of unassigned enhancements. Specific open
projects like 'port glibc to llvm' or 'improve nightly tester', should
have an unassigned enhancement bug opened for them so that they can be
tracked more easily. Open projects should only list generic projects
like 'compile programs with the LLVM compiler' or 'write a new backend
for target'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12273
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 10 Mar 2004 19:22:29 +0000 (19:22 +0000)]
We need a logo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12272
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 10 Mar 2004 19:15:50 +0000 (19:15 +0000)]
Add brainstorm for a random test vector generator
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12271
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 10 Mar 2004 19:08:52 +0000 (19:08 +0000)]
Recommend using install-bytecode target
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12270
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 10 Mar 2004 17:38:28 +0000 (17:38 +0000)]
My fix for PR274 broke the build on Darwin/PPC. As I'm fairly certain this
bug only affects Linux systems that use GLIBC, I'm going to put ifdefs around
the array.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12269
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 10 Mar 2004 17:38:01 +0000 (17:38 +0000)]
Add support for 'install-bytecode' target, used for ONLY installing
bytecode-libs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12268
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 10 Mar 2004 17:37:50 +0000 (17:37 +0000)]
Fix up a seriously outdated comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12267
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 10 Mar 2004 03:07:45 +0000 (03:07 +0000)]
New testcase for PR275
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12266
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Mar 2004 22:51:03 +0000 (22:51 +0000)]
New testcase for PR276: llvm-g++ does not mangle method names that match stdlib function names
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12265
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Mar 2004 19:37:06 +0000 (19:37 +0000)]
implement new method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12264
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Mar 2004 19:36:59 +0000 (19:36 +0000)]
new method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12263
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Tue, 9 Mar 2004 08:35:13 +0000 (08:35 +0000)]
Spill explicit physical register defs as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12260
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 9 Mar 2004 07:20:26 +0000 (07:20 +0000)]
Now that I read it again, this part in particular strikes me as kind of
pushy and contentious...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12259
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Tue, 9 Mar 2004 06:10:15 +0000 (06:10 +0000)]
Check if printing of implicit uses is required for all types of shift
instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12258
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 9 Mar 2004 05:43:59 +0000 (05:43 +0000)]
b00g fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12257
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 9 Mar 2004 05:22:10 +0000 (05:22 +0000)]
Address PR274 - '[JIT] Programs cannot resolve the fstat function'
by trying to get the compiler to generate an undefined reference for it
and related functions which live in libc_nonshared.a on Linux.
Linkers... sigh.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12256
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 9 Mar 2004 04:49:13 +0000 (04:49 +0000)]
Hmm, who left this sitting around in my tree
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12255
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Tue, 9 Mar 2004 03:37:54 +0000 (03:37 +0000)]
Differentiate between extended precision floats (80-bit) and double precision floats (64-bit)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12254
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Tue, 9 Mar 2004 03:35:34 +0000 (03:35 +0000)]
Use newly added API to emit bytes for instructions that gas misassembles
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12253
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Tue, 9 Mar 2004 03:34:53 +0000 (03:34 +0000)]
Add emitInstruction() API so that we can get the bytes of a simple instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12252
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Tue, 9 Mar 2004 03:30:12 +0000 (03:30 +0000)]
Constify things a bit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12251
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Mar 2004 00:59:15 +0000 (00:59 +0000)]
Bug fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12250
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Mar 2004 00:55:58 +0000 (00:55 +0000)]
Checkin testcase for PR261
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12249
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Mar 2004 00:40:49 +0000 (00:40 +0000)]
John fixed this bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12248
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 8 Mar 2004 23:22:03 +0000 (23:22 +0000)]
Change PhyRegAlloc::saveStateForValue()'s arg type to deal with
AllocInfo.Instruction becoming an int.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12247
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 8 Mar 2004 23:22:02 +0000 (23:22 +0000)]
Save argument list alloc state by recording it as the operands of Instruction
#-1. Other minor changes to deal with AllocInfo.Instruction becoming an int.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12246
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 8 Mar 2004 23:22:01 +0000 (23:22 +0000)]
Make AllocInfo's Instruction an int, so that we can overload it for arguments.
(Instruction #-1's operands = argument list).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12245
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 8 Mar 2004 23:06:46 +0000 (23:06 +0000)]
Fix some spelling and grammar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12244
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 22:29:35 +0000 (22:29 +0000)]
Update the profiling section
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12243
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 22:04:08 +0000 (22:04 +0000)]
Switch to using edge profiling information as the basic source of profile info
from using basic block counts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12242
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 22:03:45 +0000 (22:03 +0000)]
Switch over to using edge profile information as the basic profiling representation,
from basic block counts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12241
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 21:30:35 +0000 (21:30 +0000)]
Refactor implementations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12240
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 21:30:18 +0000 (21:30 +0000)]
We don't want to make this a pure interface, as it makes all implementors
bear the burden of implementing what will be all exactly the same methods.
They just want to provide the information in differing ways.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12239
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 21:07:12 +0000 (21:07 +0000)]
Rearrange some methods, implement the dominates method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12237
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 20:57:27 +0000 (20:57 +0000)]
Import the trace class from the reoptimizer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12236
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 20:04:46 +0000 (20:04 +0000)]
Default to using edge counts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12234
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 20:04:32 +0000 (20:04 +0000)]
Annotate functions with edge counts as well, if they are available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12233
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 20:03:52 +0000 (20:03 +0000)]
If we have edge counts, we can produce block counts. I've verified that
using an edge profile to produce block counts gives the exact same numbers
as using a block count directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12232
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 18:51:45 +0000 (18:51 +0000)]
Adjust to new interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12231
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 18:51:05 +0000 (18:51 +0000)]
Add the ability to put an annotation at the end of a basic block as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12230
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 18:20:18 +0000 (18:20 +0000)]
Add initial support for reading edge counts. This will be improved to enable
translation of edge counts into block/function counts when possible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12229
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 18:19:37 +0000 (18:19 +0000)]
Add support for representing edge counts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12228
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 18:04:31 +0000 (18:04 +0000)]
Add edge profiling support to the runtime library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12227
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 8 Mar 2004 17:59:31 +0000 (17:59 +0000)]
Fix link to license: point to current version in CVS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12226
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 17:54:34 +0000 (17:54 +0000)]
Initial support for edge profiling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12225
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 17:06:13 +0000 (17:06 +0000)]
Split utility functions out of BlockProfiling.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12224
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 16:49:10 +0000 (16:49 +0000)]
Remove the comment "Constants must always have an initial value.", which
is incorrect. Fix some formatting nastiness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12223
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 16:45:53 +0000 (16:45 +0000)]
finegrainify namespacification
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12221
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 16:14:19 +0000 (16:14 +0000)]
Insert functions into the module promptly, not lazily. This fixes a bug
I introduced last night. Note to self: test the *correct* tree...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12220
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 06:17:35 +0000 (06:17 +0000)]
Implement test/Regression/Assembler/2004-03-07-FunctionAddressAlignment.llx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12218
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 06:17:15 +0000 (06:17 +0000)]
New testcase for folding in some important situations. The first two
come up a lot in the code generated by the C++ front-end for pointers
to member functions. See PR166.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12217
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 06:16:10 +0000 (06:16 +0000)]
Remove Module::mutateConstantPointerRef, which is now thankfully dead!
This is one small step towards the complete obliteration of
ConstantPointerRef's entirely!! Woot!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12216
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 06:15:33 +0000 (06:15 +0000)]
Remove Module::mutateConstantPointerRef, which is now thankfully dead!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12215
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 06:11:10 +0000 (06:11 +0000)]
Eliminate nightmarish API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12214
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 06:10:32 +0000 (06:10 +0000)]
remove *THANKFULLY* dead method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12213
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 06:09:57 +0000 (06:09 +0000)]
Eliminate a REALLY HORRIBLE API: mutateReferences, which is gross gross gross.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12212
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 05:35:12 +0000 (05:35 +0000)]
New testcase for PR269
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12211
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 04:55:45 +0000 (04:55 +0000)]
Bug fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12210
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 04:41:32 +0000 (04:41 +0000)]
Testcase that crashes the C front-end.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12209
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 03:52:24 +0000 (03:52 +0000)]
Fix a bug handling globals that are constants, but are still external
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12208
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 03:48:07 +0000 (03:48 +0000)]
Avoid allocating special registers a bit more robustly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12207
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 02:12:36 +0000 (02:12 +0000)]
New code-quality testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12205
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 01:58:35 +0000 (01:58 +0000)]
Implement folding explicit load instructions into binary operations. For a
testcase like this:
int %test(int* %P, int %A) {
%Pv = load int* %P
%B = add int %A, %Pv
ret int %B
}
We now generate:
test:
mov %ECX, DWORD PTR [%ESP + 4]
mov %EAX, DWORD PTR [%ESP + 8]
add %EAX, DWORD PTR [%ECX]
ret
Instead of:
test:
mov %EAX, DWORD PTR [%ESP + 4]
mov %ECX, DWORD PTR [%ESP + 8]
mov %EAX, DWORD PTR [%EAX]
add %EAX, %ECX
ret
... saving one instruction, and often a register. Note that there are a lot
of other instructions that could use this, but they aren't handled. I'm not
really interested in adding them, but mul/div and all of the FP instructions
could be supported as well if someone wanted to add them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12204
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 01:18:36 +0000 (01:18 +0000)]
Rearrange and refactor some code. No functionality changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12203
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 01:04:36 +0000 (01:04 +0000)]
Implement ArgumentPromotion/aggregate-promote.ll
This allows pointers to aggregate objects, whose elements are only read, to
be promoted and passed in by element instead of by reference. This can
enable a LOT of subsequent optimizations in the caller function.
It's worth pointing out that this stuff happens a LOT of C++ programs, because
objects in templates are generally passed around by reference. When these
templates are instantiated on small aggregate or scalar types, however, it is
more efficient to pass them in by value than by reference.
This transformation triggers most on C++ codes (e.g. 334 times on eon), but
does happen on C codes as well. For example, on mesa it triggers 72 times,
and on gcc it triggers 35 times. this is amazingly good considering that
we are using 'basicaa' so far.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12202
91177308-0d34-0410-b5e6-
96231b3b80d8