Alkis Evlogimenos
a13672fd71
Check if printing of implicit uses is required for all types of shift
...
instructions.
llvm-svn: 12258
2004-03-09 06:10:15 +00:00
Brian Gaeke
b50d7fc23c
b00g fixed
...
llvm-svn: 12257
2004-03-09 05:43:59 +00:00
Brian Gaeke
acf93be258
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.
llvm-svn: 12256
2004-03-09 05:22:10 +00:00
Brian Gaeke
de0239b2a6
Hmm, who left this sitting around in my tree
...
llvm-svn: 12255
2004-03-09 04:49:13 +00:00
Alkis Evlogimenos
7c0224327e
Differentiate between extended precision floats (80-bit) and double precision floats (64-bit)
...
llvm-svn: 12254
2004-03-09 03:37:54 +00:00
Alkis Evlogimenos
f86d2df13d
Use newly added API to emit bytes for instructions that gas misassembles
...
llvm-svn: 12253
2004-03-09 03:35:34 +00:00
Alkis Evlogimenos
085957be0b
Add emitInstruction() API so that we can get the bytes of a simple instruction
...
llvm-svn: 12252
2004-03-09 03:34:53 +00:00
Alkis Evlogimenos
813daf05c3
Constify things a bit
...
llvm-svn: 12251
2004-03-09 03:30:12 +00:00
Chris Lattner
0653b478a4
Bug fixed
...
llvm-svn: 12250
2004-03-09 00:59:15 +00:00
Chris Lattner
bae65cdb6d
Checkin testcase for PR261
...
llvm-svn: 12249
2004-03-09 00:55:58 +00:00
Chris Lattner
75301571e5
John fixed this bug
...
llvm-svn: 12248
2004-03-09 00:40:49 +00:00
Brian Gaeke
57269b0c32
Change PhyRegAlloc::saveStateForValue()'s arg type to deal with
...
AllocInfo.Instruction becoming an int.
llvm-svn: 12247
2004-03-08 23:22:03 +00:00
Brian Gaeke
ed741b87c2
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.
llvm-svn: 12246
2004-03-08 23:22:02 +00:00
Brian Gaeke
b9b20ad428
Make AllocInfo's Instruction an int, so that we can overload it for arguments.
...
(Instruction #-1's operands = argument list).
llvm-svn: 12245
2004-03-08 23:22:01 +00:00
Misha Brukman
cf102d7d5b
Fix some spelling and grammar.
...
llvm-svn: 12244
2004-03-08 23:06:46 +00:00
Chris Lattner
e0bb2a521c
Update the profiling section
...
llvm-svn: 12243
2004-03-08 22:29:35 +00:00
Chris Lattner
9414c55663
Switch to using edge profiling information as the basic source of profile info
...
from using basic block counts.
llvm-svn: 12242
2004-03-08 22:04:08 +00:00
Chris Lattner
bf888377d5
Switch over to using edge profile information as the basic profiling representation,
...
from basic block counts.
llvm-svn: 12241
2004-03-08 22:03:45 +00:00
Chris Lattner
83c62c84d6
Refactor implementations
...
llvm-svn: 12240
2004-03-08 21:30:35 +00:00
Chris Lattner
3b0551752b
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.
llvm-svn: 12239
2004-03-08 21:30:18 +00:00
Chris Lattner
09255cd709
Rearrange some methods, implement the dominates method
...
llvm-svn: 12237
2004-03-08 21:07:12 +00:00
Chris Lattner
91ea0d3176
Import the trace class from the reoptimizer
...
llvm-svn: 12236
2004-03-08 20:57:27 +00:00
Chris Lattner
3d278501c4
Default to using edge counts
...
llvm-svn: 12234
2004-03-08 20:04:46 +00:00
Chris Lattner
d07c6d9c03
Annotate functions with edge counts as well, if they are available.
...
llvm-svn: 12233
2004-03-08 20:04:32 +00:00
Chris Lattner
de661f7219
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.
llvm-svn: 12232
2004-03-08 20:03:52 +00:00
Chris Lattner
94d2b3a524
Adjust to new interface
...
llvm-svn: 12231
2004-03-08 18:51:45 +00:00
Chris Lattner
529e3b261d
Add the ability to put an annotation at the end of a basic block as well.
...
llvm-svn: 12230
2004-03-08 18:51:05 +00:00
Chris Lattner
f3a838662e
Add initial support for reading edge counts. This will be improved to enable
...
translation of edge counts into block/function counts when possible.
llvm-svn: 12229
2004-03-08 18:20:18 +00:00
Chris Lattner
525635b764
Add support for representing edge counts
...
llvm-svn: 12228
2004-03-08 18:19:37 +00:00
Chris Lattner
6183fae972
Add edge profiling support to the runtime library
...
llvm-svn: 12227
2004-03-08 18:04:31 +00:00
Misha Brukman
abfc80d0fa
Fix link to license: point to current version in CVS.
...
llvm-svn: 12226
2004-03-08 17:59:31 +00:00
Chris Lattner
01062fb636
Initial support for edge profiling
...
llvm-svn: 12225
2004-03-08 17:54:34 +00:00
Chris Lattner
d40842737b
Split utility functions out of BlockProfiling.cpp
...
llvm-svn: 12224
2004-03-08 17:06:13 +00:00
Chris Lattner
28d0798a68
Remove the comment "Constants must always have an initial value.", which
...
is incorrect. Fix some formatting nastiness.
llvm-svn: 12223
2004-03-08 16:49:10 +00:00
Chris Lattner
41c4dc98a7
finegrainify namespacification
...
llvm-svn: 12221
2004-03-08 16:45:53 +00:00
Chris Lattner
e44cc1372e
Insert functions into the module promptly, not lazily. This fixes a bug
...
I introduced last night. Note to self: test the *correct* tree...
llvm-svn: 12220
2004-03-08 16:14:19 +00:00
Chris Lattner
38c2e1d1df
Implement test/Regression/Assembler/2004-03-07-FunctionAddressAlignment.llx
...
llvm-svn: 12218
2004-03-08 06:17:35 +00:00
Chris Lattner
cf72011426
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.
llvm-svn: 12217
2004-03-08 06:17:15 +00:00
Chris Lattner
23980d3a7c
Remove Module::mutateConstantPointerRef, which is now thankfully dead!
...
This is one small step towards the complete obliteration of
ConstantPointerRef's entirely!! Woot!
llvm-svn: 12216
2004-03-08 06:16:10 +00:00
Chris Lattner
164ebd3be3
Remove Module::mutateConstantPointerRef, which is now thankfully dead!
...
llvm-svn: 12215
2004-03-08 06:15:33 +00:00
Chris Lattner
aa5d8cb72f
Eliminate nightmarish API
...
llvm-svn: 12214
2004-03-08 06:11:10 +00:00
Chris Lattner
db6e86b1ed
remove *THANKFULLY* dead method
...
llvm-svn: 12213
2004-03-08 06:10:32 +00:00
Chris Lattner
df5ebdc8b1
Eliminate a REALLY HORRIBLE API: mutateReferences, which is gross gross gross.
...
llvm-svn: 12212
2004-03-08 06:09:57 +00:00
Chris Lattner
1ecf76aab7
New testcase for PR269
...
llvm-svn: 12211
2004-03-08 05:35:12 +00:00
Chris Lattner
74d74316fe
Bug fixed
...
llvm-svn: 12210
2004-03-08 04:55:45 +00:00
Chris Lattner
66f3cfa109
Testcase that crashes the C front-end.
...
llvm-svn: 12209
2004-03-08 04:41:32 +00:00
Chris Lattner
1ae4150e31
Fix a bug handling globals that are constants, but are still external
...
llvm-svn: 12208
2004-03-08 03:52:24 +00:00
Chris Lattner
a7180252e6
Avoid allocating special registers a bit more robustly
...
llvm-svn: 12207
2004-03-08 03:48:07 +00:00
Chris Lattner
8cd89d333c
New code-quality testcase.
...
llvm-svn: 12205
2004-03-08 02:12:36 +00:00
Chris Lattner
a55628694a
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.
llvm-svn: 12204
2004-03-08 01:58:35 +00:00