oota-llvm.git
20 years agoAdd the visitSelectInst visitor method
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

20 years agoAdd the SelectInst class
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

20 years agoAdd the Instruction::Select enum
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

20 years agoAdd support for select constant exprs
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

20 years agoThis is no longer an open project
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

20 years agoCleanup the cast section, add the select instruction
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

20 years agoNew testcase
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

20 years agoMake code more readable.
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

20 years agoFix indentation.
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

20 years agoMove implementations of functions here, which avoids #including <cstdlib> in the
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

20 years agoMove function implementations to a .cpp file, avoid #including <cstdlib> here.
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

20 years agoForward-declare templates for fix compilation when Argument.h is included first.
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

20 years agoDoxygenified and cleand up comments.
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

20 years agoMiscellaneous additions are a separate section.
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

20 years agoMake sure libcrtend.a gets installed when you make install-bytecode.
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

20 years agoGet rid of the abort in PhyRegAlloc::finishSavingState().
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

20 years agoGive pass a name
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

20 years agoFix compilation on Sparc: assert(0) => abort()
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

20 years agoSparcV8 removed until it grows up becomes a mature backend.
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

20 years agoFix spelling.
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

20 years agoIn PhyRegAlloc::saveState(), dump Arguments' saved-state, and try to
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

20 years agoRemove ghostly directory from the build
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

20 years agoEmbed a floating frame of the bugzilla query in the page. This way
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

20 years agoMinor additions and cleanups
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

20 years agoMove all the SaveState options and stuff inton one spot at the top of the file.
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

20 years agoOnly call verifySavedState if SaveRegAllocState is set AND debugging flag is on.
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

20 years agoBugz fixed
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

20 years agoFix PR284: [indvars] Induction variable analysis violates LLVM invariants
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

20 years agoNew testcase for PR284: [indvars] Induction variable analysis violates LLVM invariants
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

20 years agoAdd link to bugzilla query of unassigned enhancements. Specific open
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

20 years agoWe need a logo.
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

20 years agoAdd brainstorm for a random test vector generator
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

20 years agoRecommend using install-bytecode target
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

20 years agoMy fix for PR274 broke the build on Darwin/PPC. As I'm fairly certain this
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

20 years agoAdd support for 'install-bytecode' target, used for ONLY installing
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

20 years agoFix up a seriously outdated comment.
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

20 years agoNew testcase for PR275
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

20 years agoNew testcase for PR276: llvm-g++ does not mangle method names that match stdlib funct...
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

20 years agoimplement new method
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

20 years agonew method
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

20 years agoSpill explicit physical register defs as well.
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

20 years agoNow that I read it again, this part in particular strikes me as kind of
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

20 years agoCheck if printing of implicit uses is required for all types of shift
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

20 years agob00g fixed
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

20 years agoAddress PR274 - '[JIT] Programs cannot resolve the fstat function'
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

20 years agoHmm, who left this sitting around in my tree
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

20 years agoDifferentiate between extended precision floats (80-bit) and double precision floats...
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

20 years agoUse newly added API to emit bytes for instructions that gas misassembles
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

20 years agoAdd emitInstruction() API so that we can get the bytes of a simple instruction
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

20 years agoConstify things a bit
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

20 years agoBug fixed
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

20 years agoCheckin testcase for PR261
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

20 years agoJohn fixed this bug
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

20 years agoChange PhyRegAlloc::saveStateForValue()'s arg type to deal with
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

20 years agoSave argument list alloc state by recording it as the operands of Instruction
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

20 years agoMake AllocInfo's Instruction an int, so that we can overload it for arguments.
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

20 years agoFix some spelling and grammar.
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

20 years agoUpdate the profiling section
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

20 years agoSwitch to using edge profiling information as the basic source of profile info
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

20 years agoSwitch over to using edge profile information as the basic profiling representation,
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

20 years agoRefactor implementations
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

20 years agoWe don't want to make this a pure interface, as it makes all implementors
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

20 years agoRearrange some methods, implement the dominates method
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

20 years agoImport the trace class from the reoptimizer
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

20 years agoDefault to using edge counts
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

20 years agoAnnotate functions with edge counts as well, if they are available.
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

20 years agoIf we have edge counts, we can produce block counts. I've verified that
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

20 years agoAdjust to new interface
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

20 years agoAdd the ability to put an annotation at the end of a basic block as well.
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

20 years agoAdd initial support for reading edge counts. This will be improved to enable
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

20 years agoAdd support for representing edge counts
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

20 years agoAdd edge profiling support to the runtime library
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

20 years agoFix link to license: point to current version in CVS.
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

20 years agoInitial support for edge profiling
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

20 years agoSplit utility functions out of BlockProfiling.cpp
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

20 years agoRemove the comment "Constants must always have an initial value.", which
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

20 years agofinegrainify namespacification
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

20 years agoInsert functions into the module promptly, not lazily. This fixes a bug
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

20 years agoImplement test/Regression/Assembler/2004-03-07-FunctionAddressAlignment.llx
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

20 years agoNew testcase for folding in some important situations. The first two
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

20 years agoRemove Module::mutateConstantPointerRef, which is now thankfully dead!
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

20 years agoRemove Module::mutateConstantPointerRef, which is now thankfully dead!
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

20 years agoEliminate nightmarish API
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

20 years agoremove *THANKFULLY* dead method
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

20 years agoEliminate a REALLY HORRIBLE API: mutateReferences, which is gross gross gross.
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

20 years agoNew testcase for PR269
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

20 years agoBug fixed
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

20 years agoTestcase that crashes the C front-end.
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

20 years agoFix a bug handling globals that are constants, but are still external
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

20 years agoAvoid allocating special registers a bit more robustly
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

20 years agoNew code-quality testcase.
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

20 years agoImplement folding explicit load instructions into binary operations. For a
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

20 years agoRearrange and refactor some code. No functionality changes.
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

20 years agoImplement ArgumentPromotion/aggregate-promote.ll
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

20 years agoNew testcase
Chris Lattner [Mon, 8 Mar 2004 00:58:19 +0000 (00:58 +0000)]
New testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12201 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoImplement: ArgumentPromotion/chained.ll
Chris Lattner [Sun, 7 Mar 2004 22:52:53 +0000 (22:52 +0000)]
Implement: ArgumentPromotion/chained.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12200 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoNew testcase for missed case
Chris Lattner [Sun, 7 Mar 2004 22:52:41 +0000 (22:52 +0000)]
New testcase for missed case

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12199 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix another minor bug, exposed by perlbmk
Chris Lattner [Sun, 7 Mar 2004 22:43:27 +0000 (22:43 +0000)]
Fix another minor bug, exposed by perlbmk

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12198 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoSince 'load null' is undefined, we can make it do whatever we want. Returning
Chris Lattner [Sun, 7 Mar 2004 22:16:24 +0000 (22:16 +0000)]
Since 'load null' is undefined, we can make it do whatever we want.  Returning
a zero value is the most likely way to cause further simplification, so we do it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12197 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRun the new pass in gccld now that it passes all tests
Chris Lattner [Sun, 7 Mar 2004 22:12:40 +0000 (22:12 +0000)]
Run the new pass in gccld now that it passes all tests

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12196 91177308-0d34-0410-b5e6-96231b3b80d8