Brian Gaeke
251b979943
Move IsArchive and IsBytecode here from gccld. Refactor into CheckMagic.
...
llvm-svn: 9901
2003-11-11 21:53:50 +00:00
Chris Lattner
da05b05197
Compute node offsets correctly
...
llvm-svn: 9895
2003-11-11 20:12:32 +00:00
Brian Gaeke
ca35fbf33d
Add implementation of FileOpenable().
...
Refactor MakeFileExecutable() & MakeFileExecutable() into AddPermissionsBits().
llvm-svn: 9892
2003-11-11 18:27:21 +00:00
Chris Lattner
fdc8d6547b
Add new method for computing node mappings. This is used by the pool allocator
...
llvm-svn: 9880
2003-11-11 05:08:59 +00:00
Brian Gaeke
8f53a89edf
Fix problems linking against the reoptimizer; _llvm_regAllocState must have
...
externally-visible linkage, and SaveStateToModule must default to true for llc.
I don't remember why I made it const; perhaps it should be deconstified.
llvm-svn: 9858
2003-11-10 07:12:01 +00:00
Chris Lattner
1e6d3053f2
Reorganize code for locality, improve comments
...
llvm-svn: 9857
2003-11-10 04:42:42 +00:00
Chris Lattner
4474336166
Adjust to new critical edge interface
...
llvm-svn: 9853
2003-11-10 04:10:50 +00:00
Brian Gaeke
c0c23c29aa
Operand numbers are now ints. Save the register allocation of the value
...
each instruction produces as "operand" -1, and the other operands as 0
.. n, as before. PhyRegAlloc::saveState() is refactored into
PhyRegAlloc::saveStateForValue().
llvm-svn: 9842
2003-11-10 00:05:26 +00:00
Chris Lattner
9a010038f1
More additions
...
llvm-svn: 9834
2003-11-09 19:54:30 +00:00
Chris Lattner
a570f7b681
Fix PR95. I'm checking this patch in for Reid Spencer, who figured it out
...
and wrote it up. Thanks!!
llvm-svn: 9832
2003-11-09 19:39:48 +00:00
Chris Lattner
da8571b464
Add an assertion
...
llvm-svn: 9831
2003-11-09 15:51:07 +00:00
Brian Gaeke
75bc7cec4b
Fix PR103
...
llvm-svn: 9830
2003-11-09 07:08:34 +00:00
Chris Lattner
984e11792f
Do NOT inline self recursive calls into other functions. This is causing the
...
pool allocator no end of trouble, and doesn't make a lot of sense anyway. This
does not solve the problem with mutually recursive functions, but they are much less common.
llvm-svn: 9828
2003-11-09 05:05:36 +00:00
Chris Lattner
d61abe82d3
Untypo
...
llvm-svn: 9827
2003-11-09 05:04:25 +00:00
Chris Lattner
950c75f135
Add more functions
...
llvm-svn: 9826
2003-11-09 04:10:41 +00:00
Chris Lattner
5011b956a9
None of the __llvm_* functions call into the program. This makes the
...
callgraph MUCH simpler for eh using program.
llvm-svn: 9825
2003-11-09 04:00:59 +00:00
Chris Lattner
cff83a2f24
Add support for memmove
...
llvm-svn: 9824
2003-11-09 03:32:52 +00:00
Brian Gaeke
c3c242c3ac
Remove #include of PassManager.h which was marked FIXME, and apparently is no
...
longer used.
llvm-svn: 9823
2003-11-09 03:15:40 +00:00
Chris Lattner
12dd38aa99
Handle bzero and memset in the local analysis, because we were missing the fact
...
that memset returns its argument!!
llvm-svn: 9811
2003-11-08 21:55:50 +00:00
Chris Lattner
2cb1db763e
This doesn't use DSCallSiteIterator
...
llvm-svn: 9809
2003-11-08 21:17:37 +00:00
Brian Gaeke
f8cb2419ee
Fix two typos I found in comments.
...
llvm-svn: 9806
2003-11-08 18:12:24 +00:00
Misha Brukman
a1eefa40dc
For some reason, LICM and GCSE like to crash the FunctionPassManager when they
...
are being added as FunctionPasses... Sigh.
llvm-svn: 9798
2003-11-08 00:01:39 +00:00
Brian Gaeke
9ef636c698
Implement vaarg instruction. This is not quite perfect: 2003-08-11-VaListArg
...
still causes a crash. But it's better than before.
llvm-svn: 9794
2003-11-07 21:20:47 +00:00
Misha Brukman
508cc3e7a9
Implement branching to a PC-relative constant (not a BasicBlock).
...
llvm-svn: 9793
2003-11-07 21:07:30 +00:00
Brian Gaeke
85baf8c65a
popStackAndReturnValueToCaller() must advance instruction pointer to normal
...
destination, if returning from an invoke.
Implement 'unwind' instruction.
llvm-svn: 9792
2003-11-07 20:44:58 +00:00
Misha Brukman
3b2343eae9
PreSelection is not optional, it performs a necessary and vital transformation
...
for the Sparc backend: breaking up constant expressions. Thus, we cannot have it
guarded by a conditional, it should never be disabled.
Also, it's now available for the JIT since it is a FunctionPass.
llvm-svn: 9791
2003-11-07 20:33:25 +00:00
Misha Brukman
d7bcd99325
Remove the *BIG UGLY HACK* from the JIT: PreSelection is now a FunctionPass.
...
llvm-svn: 9790
2003-11-07 20:32:08 +00:00
Brian Gaeke
6d145eb65f
Add stub version of unwind support
...
llvm-svn: 9789
2003-11-07 20:07:06 +00:00
Brian Gaeke
a6454d3532
visitCallInst --> visitCallSite.
...
Use visitCallSite to implement both CallInsts and InvokeInsts.
llvm-svn: 9788
2003-11-07 20:04:22 +00:00
Brian Gaeke
a6d48e4db2
Make the operation of visitCallInst() only depend on the CallSite.
...
llvm-svn: 9787
2003-11-07 19:59:08 +00:00
Brian Gaeke
18b59578c9
Use CallSites for call sites, instead of CallInsts. A revolutionary concept.
...
llvm-svn: 9784
2003-11-07 19:26:23 +00:00
Misha Brukman
2c3068026a
Switch to emitting MachineConstantPool the way it was meant to be done.
...
llvm-svn: 9777
2003-11-07 18:06:26 +00:00
Misha Brukman
2133b0513d
Switch to using the standard representation of the constant pool -- namely, the
...
MachineConstantPool. This involved refactoring the two classes involved in
printing out Sparc assembly. In fact, they should share all this code anyway.
llvm-svn: 9776
2003-11-07 17:45:28 +00:00
Misha Brukman
faa42d264f
We accept TargetMachine as a const reference.
...
llvm-svn: 9775
2003-11-07 17:44:18 +00:00
Misha Brukman
bd4a8ed139
PreSelection and PeepholeOpts are now FunctionPasses.
...
llvm-svn: 9774
2003-11-07 17:43:43 +00:00
Misha Brukman
81c748c1e2
* Stop making a global for each constant that cannot live in an instruction;
...
it will be converted to a MachineConstantPool index during instruction
selection
* This is now eligible to become a FunctionPass since it does not have any side
effects outside of the function it is processing.
llvm-svn: 9773
2003-11-07 17:31:22 +00:00
Misha Brukman
bf9ed7ac1f
* Use the MachineConstantPool for storing constants instead of a hash_set;
...
* Do not create new globals for constants!
Also, order #includes as per coding style guide
llvm-svn: 9772
2003-11-07 17:29:48 +00:00
Misha Brukman
c16149d7dd
Use `basename $<` to get just the filename, not full path, for ease of reading.
...
llvm-svn: 9770
2003-11-07 17:26:27 +00:00
Misha Brukman
ad03afcb34
Declare FunctionPasses as such so that they can be used in FunctionPassManager.
...
llvm-svn: 9768
2003-11-07 17:20:18 +00:00
Brian Gaeke
65cac90a92
Refactor the return-from-function code into popStackAndReturnValueToCaller().
...
Make external function calls slightly less special; now they get a stack frame.
llvm-svn: 9765
2003-11-07 05:22:49 +00:00
Chris Lattner
5285e9c9a0
Hopefully this will fix PR98
...
llvm-svn: 9762
2003-11-07 00:38:09 +00:00
Chris Lattner
395aef6bbe
Hopefully fix the objdir != srcdir issue
...
llvm-svn: 9761
2003-11-07 00:34:33 +00:00
Chris Lattner
72a4db8b92
Fix warnings building on sparc
...
llvm-svn: 9758
2003-11-06 21:30:05 +00:00
Chris Lattner
38cd27e450
Various cleanups and efficiency improvements
...
llvm-svn: 9753
2003-11-06 19:46:29 +00:00
Chris Lattner
b0a4b49b23
Fix bug: PR93
...
llvm-svn: 9752
2003-11-06 19:18:49 +00:00
Misha Brukman
b4ad4c3d4c
* Make the comment header 80 columns long
...
* Alphabetize #includes
llvm-svn: 9751
2003-11-06 18:06:13 +00:00
Misha Brukman
2b8724acc6
Let's not forget about our friends -- Constant Pool indices.
...
llvm-svn: 9750
2003-11-06 00:04:11 +00:00
Chris Lattner
4e1b467594
Fix the problem with running cleanups in bugpoint: We were deleting arguments
...
of intrinsic functions, causing the verifier to fail.
llvm-svn: 9745
2003-11-05 21:53:41 +00:00
Chris Lattner
9e60aced2e
Split behavior into two pieces
...
llvm-svn: 9741
2003-11-05 21:43:02 +00:00
Chris Lattner
8055fb3afa
Yet more fixes for constant expr shifts
...
llvm-svn: 9739
2003-11-05 20:43:58 +00:00
Chris Lattner
ba55bd37fe
Further fixes for PR93
...
llvm-svn: 9738
2003-11-05 20:37:01 +00:00
Chris Lattner
c3d6f21bbe
no need for endl
...
llvm-svn: 9736
2003-11-05 19:53:32 +00:00
Chris Lattner
b36e8a1a2e
Add support for constant expr shifts
...
llvm-svn: 9735
2003-11-05 19:53:03 +00:00
Chris Lattner
e225507193
If we're not checking, don't check!
...
llvm-svn: 9732
2003-11-05 19:09:40 +00:00
Chris Lattner
7c94d1171a
Fix flawed logic that was breaking several SPEC benchmarks, including gzip and crafty.
...
llvm-svn: 9731
2003-11-05 17:31:36 +00:00
Misha Brukman
e5b358c829
We know exactly what the value of $< is, so instead of using `basename $<` to
...
get just the filename and not the full path, just use the filename directly.
llvm-svn: 9730
2003-11-05 06:43:36 +00:00
Chris Lattner
a9e7fe9ea2
Do not use a class before it is defined.
...
Be gcc 3.4 clean
llvm-svn: 9727
2003-11-05 06:25:06 +00:00
Chris Lattner
b5b9ba6ff6
Be friendly to gcc 3.4... good compiler. Nice compiler.
...
llvm-svn: 9726
2003-11-05 06:20:27 +00:00
Chris Lattner
813ec04735
Be gcc 3.4 clean
...
llvm-svn: 9725
2003-11-05 06:12:18 +00:00
Chris Lattner
5f6463c041
Fix name collision
...
llvm-svn: 9722
2003-11-05 05:55:45 +00:00
Chris Lattner
41baa98478
Make code gcc 3.4 clean
...
llvm-svn: 9719
2003-11-05 05:15:42 +00:00
Brian Gaeke
4e106f0649
Abort when the user program calls abort, instead of printing a funny message and calling exit(1).
...
llvm-svn: 9716
2003-11-05 01:18:49 +00:00
Chris Lattner
8f2f598024
Fix bug with previous implementation:
...
- // ~(c-X) == X-(c-1) == X+(-c+1)
+ // ~(c-X) == X-c-1 == X+(-c-1)
Implement: C - ~X == X + (1+C)
llvm-svn: 9715
2003-11-05 01:06:05 +00:00
Brian Gaeke
221827ab07
Use regular old malloc to emulate malloc/alloca instructions.
...
llvm-svn: 9713
2003-11-05 01:02:14 +00:00
Brian Gaeke
175018317e
Remove a comment which no longer applies.
...
llvm-svn: 9712
2003-11-05 00:59:28 +00:00
Chris Lattner
e580666532
Minor cleanup, plus implement InstCombine/xor.ll:test17
...
llvm-svn: 9711
2003-11-04 23:50:51 +00:00
Chris Lattner
0f68fa6569
Implement InstCombine/xor.ll:test(15|16)
...
llvm-svn: 9708
2003-11-04 23:37:10 +00:00
Alkis Evlogimenos
9118a426d3
Change all machine basic block modifier functions in MRegisterInfo to
...
return the number of instructions added to/removed from the basic block
passed as their first argument.
Note: This is only needed because we use a std::vector instead of an
ilist to keep MachineBasicBlock instructions. Inserting an instruction
to a MachineBasicBlock invalidates all iterators to the basic
block. The return value can be used to update an index to the machine
basic block instruction vector and circumvent the iterator elimination
problem but this is really not needed if we move to a better
representation.
llvm-svn: 9704
2003-11-04 22:57:09 +00:00
Brian Gaeke
69c2841b2a
Update verifySavedState()'s comment, so that it reflects its current
...
status. In doFinalization(), skip over external functions, just like
Anand's mapping info does.
llvm-svn: 9703
2003-11-04 22:42:41 +00:00
Brian Gaeke
2a262ef095
Add comments.
...
llvm-svn: 9697
2003-11-04 18:25:56 +00:00
Chris Lattner
47dfa641c3
Fix problems in previous changes. This fixes several regressions last night.
...
llvm-svn: 9694
2003-11-04 16:04:32 +00:00
John Criswell
81587e798a
Checking in Chris's suggestions:
...
Added assert() to ensure symbol table is well formed.
Added code to remember the value that was found; resolving types can change
the symbol table and invalidate the value of the iterator.
Added comments to the ResolveTypes() function (mainly for my own benefit).
Please feel free to correct the comments if they are not accurate.
llvm-svn: 9693
2003-11-04 15:22:26 +00:00
Chris Lattner
b71c3f7430
Significantly simplify constant emission by unifying the stuff which used to build up
...
strings with the stuff that used to print to an ostream directly. We now NEVER build
up big strings, only to print them once they are formed.
llvm-svn: 9686
2003-11-03 20:19:49 +00:00
Chris Lattner
469e404370
Incorporate printSingleConstantValue into its single caller
...
llvm-svn: 9684
2003-11-03 19:44:05 +00:00
Chris Lattner
72e516f0d1
* Reformat some code
...
* Emit bools as 1/0 instead of true/false, fixing compilation of eon and
PR 83 & Jello/2003-11-03-GlobalBool.llx
llvm-svn: 9683
2003-11-03 19:33:45 +00:00
Chris Lattner
7c18b18c46
Fix InstCombine/2003-11-03-VarargsCallBug.ll
...
llvm-svn: 9681
2003-11-03 18:44:58 +00:00
Chris Lattner
39c0a19894
Work around a bug in GCC where it can't handle common variables marked weak.
...
llvm-svn: 9679
2003-11-03 17:35:00 +00:00
Chris Lattner
e4e2595f71
Fix bugs with attribute weak emission
...
llvm-svn: 9678
2003-11-03 17:32:38 +00:00
Chris Lattner
6444c37488
Implement InstCombine/cast-set.ll:test6[a]. This improves code generated for
...
a hot function in em3d
llvm-svn: 9673
2003-11-03 05:17:03 +00:00
Chris Lattner
7be3ab2fb7
This simplifies the CWriter code, makes the generated code easier to read,
...
and makes the output work with the intel compiler. Overall, a win.
llvm-svn: 9671
2003-11-03 04:31:54 +00:00
Chris Lattner
1693079e92
Implement InstCombine/cast-set.ll: test1, test2, test7
...
llvm-svn: 9670
2003-11-03 04:25:02 +00:00
Chris Lattner
af7893203b
Fix bug with zero sized casts
...
llvm-svn: 9667
2003-11-03 01:29:41 +00:00
Chris Lattner
7af7d94df2
Eliminate the silly namedContext member of printType
...
llvm-svn: 9666
2003-11-03 01:01:59 +00:00
Chris Lattner
2b9926fc8e
All DSGraphs keep a reference to the targetdata they are created with. This is
...
used to eliminate the hard coded, hacked in, sparc specific, global TargetData.
Changing the TargetData used to actually match the code fixes problems, and
eliminates a crash.
llvm-svn: 9659
2003-11-02 22:27:28 +00:00
Chris Lattner
53e8fab411
Fix bug: test/Regression/Analysis/DSGraph/2003-11-02-NodeCollapsing.ll
...
llvm-svn: 9658
2003-11-02 21:02:20 +00:00
Chris Lattner
d4d987dd4a
Fix bug in previous checkin
...
llvm-svn: 9656
2003-11-02 06:54:48 +00:00
Chris Lattner
f4ad165e8b
Implement transmogriphication of allocation instructions
...
llvm-svn: 9654
2003-11-02 05:57:39 +00:00
Chris Lattner
7f7285bab7
Fix PR78
...
llvm-svn: 9648
2003-11-02 02:06:27 +00:00
Chris Lattner
4fa54568a3
The "correct" fix for CBackend/2003-10-23-UnusedType.ll is to not even try
...
to emit types which are not used.
llvm-svn: 9647
2003-11-02 01:29:27 +00:00
Chris Lattner
7949bf0d54
Including the symbol table in the FindUsedTypes analysis was the WRONG way
...
to fix test/Regression/CBackend/2003-10-23-UnusedType.ll. This completely
neutered the deadtypeelim pass.
llvm-svn: 9646
2003-11-02 01:28:41 +00:00
Chris Lattner
b45d9077cb
Strip off CPR's manually, because if we don't, the inliner doesn't delete dead
...
functions. GRR
llvm-svn: 9641
2003-10-31 21:05:58 +00:00
Chris Lattner
9c4a58b780
Make the call graph more precise despite the hated constantpointerrefs.
...
Do you detect the animosity I feel towards CPRs yet?
llvm-svn: 9640
2003-10-31 21:05:12 +00:00
Chris Lattner
9157ec025b
Did I mention that I _HATE_ CPRs?
...
llvm-svn: 9639
2003-10-31 18:38:06 +00:00
Chris Lattner
f6925da295
Constant pointer refs are causing these to fail unnecessarily, which is causing
...
a lot of code to be pessimized. I hate CPRs. :(
llvm-svn: 9635
2003-10-31 17:51:16 +00:00
Alkis Evlogimenos
6029d4032c
Use already existing classes for post order iterator.
...
llvm-svn: 9629
2003-10-31 03:02:34 +00:00
Chris Lattner
8339f7d379
Make use of the new AssemblyAnnotationWriter interface
...
llvm-svn: 9619
2003-10-30 23:41:03 +00:00
Brian Gaeke
8541bd9db9
Include llvm/CodeGen/MachineCodeForInstruction.h. Use it to start
...
implementing verifySavedState().
In saveState(), use the new AllocInfo::AllocStateTy enum, and increment
Insn each time through the loop.
llvm-svn: 9617
2003-10-30 21:21:33 +00:00
Brian Gaeke
727ec9bec5
Make AllocState an enum.
...
Move the stringifying method for that enum into class AllocInfo.
llvm-svn: 9616
2003-10-30 21:21:22 +00:00
Alkis Evlogimenos
5a320efd3b
Output types in reverse postorder. This will allow the ByteCode/Reader
...
to create the minimum number of opaque types for each type with a
cycle in its type graph.
llvm-svn: 9615
2003-10-30 21:04:44 +00:00
Alkis Evlogimenos
404beb98ef
Put DEBUG_OUTPUT at the top along with TRACE_LEVEL. Also fix the code
...
inside DEBUG_OUTPUT so that it compiles.
llvm-svn: 9614
2003-10-30 18:33:58 +00:00
Chris Lattner
dd63f9e22b
When someone includes CallGraph.h, make sure that they link in CallGraph.cpp
...
llvm-svn: 9611
2003-10-30 05:17:30 +00:00
Chris Lattner
0fc43a6048
Make sure that PHI node operands are first class types
...
llvm-svn: 9607
2003-10-30 01:38:18 +00:00
Chris Lattner
686767f3f6
Fix bug: 2003-10-29-CallSiteResolve.ll & PR70
...
llvm-svn: 9600
2003-10-30 00:46:41 +00:00
Chris Lattner
f14ead9210
Print the names of more opaque types
...
llvm-svn: 9598
2003-10-30 00:22:33 +00:00
Chris Lattner
92d60539c8
Make sure to print opaque types names if they are available.
...
llvm-svn: 9597
2003-10-30 00:12:51 +00:00
Chris Lattner
3420137e63
Refactor code, initial implementation of -insert-block-profiling pass
...
llvm-svn: 9593
2003-10-29 21:24:22 +00:00
Brian Gaeke
45eb2eeb74
Explicitly cast type, so we aren't passing output_vbr a size_t.
...
llvm-svn: 9590
2003-10-29 20:09:01 +00:00
Brian Gaeke
adc07972bc
Tweak sed commands so that they filter out more # stuff and also
...
work on Mac OS X. Also turn ${...} into $(...); we do not speak BSD
Make.
llvm-svn: 9589
2003-10-29 20:07:35 +00:00
Chris Lattner
bcb0f4bf2e
Fix PR66 & ScalarRepl/2003-10-29-ArrayProblem.ll
...
llvm-svn: 9585
2003-10-29 17:55:44 +00:00
Chris Lattner
e5f15cdc5f
Fix bug: ConstantMerge/2003-10-28-MergeExternalConstants.ll & PR64
...
llvm-svn: 9579
2003-10-29 06:01:26 +00:00
Brian Gaeke
9d2020003b
In VM::create(), comment out almost the whole function if NO_JITS_ENABLED,
...
because the Arch variable will likely be undefined.
llvm-svn: 9576
2003-10-29 04:24:09 +00:00
Alkis Evlogimenos
d478d3d19c
Add more debugging info to help tracing the SlotCalculator.
...
llvm-svn: 9575
2003-10-29 03:12:12 +00:00
Chris Lattner
3e5ff2568c
Check in statistifying patch for Bill
...
llvm-svn: 9572
2003-10-28 23:14:59 +00:00
Chris Lattner
54ac910a5c
Fix PR62, and llvm/test/Regression/CBackend/2003-10-28-CastToPtrToStruct.ll
...
ConstantExpr's can use unrelated types, make sure to scan them.
llvm-svn: 9569
2003-10-28 23:09:45 +00:00
Chris Lattner
183fa7ceb3
Pass in argc & argv
...
llvm-svn: 9563
2003-10-28 22:42:24 +00:00
Chris Lattner
c8ba0672ac
Initial checkin of profiling instrumentation pass. So far, despite the
...
file name, we only support function profiling. This will be fixed in the
near future.
llvm-svn: 9547
2003-10-28 18:59:04 +00:00
Chris Lattner
233989316c
Eliminate using declarations
...
llvm-svn: 9543
2003-10-27 21:44:09 +00:00
Chris Lattner
5e004e8ce0
Propagating constants to arguments can make other arguments constant. For now
...
do something dumb, and inefficient, but more complete.
llvm-svn: 9542
2003-10-27 21:09:00 +00:00
Chris Lattner
b727fb2663
Fix test: Linker/2003-10-27-LinkOncePromote.ll
...
Fix PR58
llvm-svn: 9530
2003-10-27 16:39:39 +00:00
Chris Lattner
d9f4ffdf5e
Get the list of PHI node values before the basic block is split. Also, add
...
PHI node entries for unwind instructions just like for call instructions which
became invokes! This fixes PR57, tested by
Inline/2003-10-26-InlineInvokeExceptionDestPhi.ll
llvm-svn: 9526
2003-10-27 05:33:09 +00:00
Chris Lattner
4d5767c703
Attempt to provide support for those without RTLD_DEFAULT.
...
llvm-svn: 9503
2003-10-25 16:55:32 +00:00
Chris Lattner
37edb43831
Unbreak the build
...
llvm-svn: 9502
2003-10-25 16:18:03 +00:00
Brian Gaeke
eca381c7e8
Publicize the type of FnAllocState.
...
Prototype option to save state in a global instead of as a Constant in
the Module. (Turned off, for now, with the on/off switch welded in the off
position. You get the idea.)
llvm-svn: 9500
2003-10-24 21:21:58 +00:00
Chris Lattner
9ab7fbef60
standardize command line option names
...
llvm-svn: 9496
2003-10-24 20:05:58 +00:00
Brian Gaeke
b77e589bd1
ExecutionEngine::create no longer takes a TraceMode argument.
...
CurFrame, TraceMode, and the CachedWriter are history.
The ExecutionAnnotations (SlotNumber, InstNumber, and FunctionInfo) are history.
ExecutionContext now keeps Values for each stack frame in a std::map.
printValue() and print() are history.
executeInstruction() is now part of run().
llvm-svn: 9493
2003-10-24 19:59:37 +00:00
Brian Gaeke
65c60e24cd
ExecutionEngine::create no longer takes a TraceMode argument.
...
CurFrame, TraceMode, and the CachedWriter are history.
llvm-svn: 9492
2003-10-24 19:59:28 +00:00
Brian Gaeke
759ba76905
The ExecutionAnnotations (SlotNumber, InstNumber, and FunctionInfo) are history.
...
llvm-svn: 9490
2003-10-24 19:59:18 +00:00
Brian Gaeke
e278c22380
Reduce the number of #includes.
...
CurFrame, TraceMode, and the CachedWriter are history.
ArrayChecksEnabled and non-QuietMode are history.
The ExecutionAnnotations (SlotNumber, InstNumber, and FunctionInfo) are history.
ExecutionContext now keeps Values for each stack frame in a std::map.
Stop pre-initializing Values on the stack to 42.
Remove some dead variables, excess whitespace and commented-out code.
executeInstruction() is now part of run().
printValue() and print() are history.
llvm-svn: 9489
2003-10-24 19:59:01 +00:00
Brian Gaeke
65cd504822
ExecutionEngine::create no longer takes a TraceMode argument.
...
llvm-svn: 9488
2003-10-24 19:58:38 +00:00
Brian Gaeke
98b618270a
Destroy MachineFunction for any Function that we are about to
...
recompile and relink. This keeps it from failing an assertion when
it goes and tries to construct a new MachineFunction for that Function.
llvm-svn: 9459
2003-10-24 03:55:37 +00:00
Brian Gaeke
24fb8f07f3
Move the implementations of ==, != on AllocInfos here, from UnpackTraceFunction.
...
llvm-svn: 9452
2003-10-23 20:39:18 +00:00
Brian Gaeke
390d31cde4
Move AllocInfo structure to a private AllocInfo.h header file.
...
Make FnAllocState contain vectors of AllocInfo, instead of LLVM Constants.
Give doFinalization a method comment, and let it do the work of converting
AllocInfos to LLVM Constants.
llvm-svn: 9451
2003-10-23 20:32:55 +00:00
Brian Gaeke
a6bfe8eb9e
Make FnAllocState contain vectors of AllocInfo, instead of LLVM Constants.
...
llvm-svn: 9450
2003-10-23 20:32:02 +00:00
Brian Gaeke
8e766c7ab3
New file, containing AllocInfo structure.
...
llvm-svn: 9449
2003-10-23 20:31:51 +00:00
Chris Lattner
fb8e19b7ca
Fix bug: CBackend/2003-10-23-UnusedType.ll and hopefully 252.eon
...
llvm-svn: 9441
2003-10-23 19:30:30 +00:00
Chris Lattner
12b78db685
We might as well strip off any CPRs before propagation
...
llvm-svn: 9437
2003-10-23 18:49:23 +00:00
Chris Lattner
bf9584b041
Fail gracefully if we have a zero arg varargs function
...
llvm-svn: 9436
2003-10-23 18:39:22 +00:00
Misha Brukman
88df876012
* Eliminate `using' directive
...
* Fix order of #includes
* Make code layout more consistent
* Eliminate extraneous whitespace and comment-lines
llvm-svn: 9433
2003-10-23 18:10:02 +00:00
Misha Brukman
dc07775d58
* Fix order of #include files
...
* Doxygen-ify method comments
llvm-svn: 9432
2003-10-23 18:06:27 +00:00
Misha Brukman
0b624fefb7
* Order #includes as per style guide
...
* Doxygen-ify comments
* Make code layout more consistent
llvm-svn: 9431
2003-10-23 18:03:50 +00:00
Misha Brukman
28ba80e648
* Use C++ style comments instead of C-style
...
* Make file description more readable
* Make code layout more consistent, include comment in assert so it's visible
during execution if it hits
llvm-svn: 9430
2003-10-23 18:02:47 +00:00
Misha Brukman
ad44de185d
* Eliminate `using' directive
...
* Order #includes as per style guide
llvm-svn: 9429
2003-10-23 18:00:34 +00:00
Chris Lattner
05c71fb3e6
* We were forgetting to pass varargs arguments through a call
...
* Add a work around for bug PR56, gross but necessary for now.
llvm-svn: 9428
2003-10-23 17:44:53 +00:00
Misha Brukman
7d56d2c6fb
* Eliminate `using' directive
...
* Make code layout more consistent
llvm-svn: 9427
2003-10-23 17:43:17 +00:00
Misha Brukman
c7b1bce283
Make code layout more consistent.
...
llvm-svn: 9426
2003-10-23 17:39:37 +00:00
Chris Lattner
37f4a4c184
Delete unused EmitByteSwap method
...
Implement mul/div/rem constant expressions
llvm-svn: 9424
2003-10-23 17:21:43 +00:00
Chris Lattner
f516c698ff
Check in initial version of ipcp
...
llvm-svn: 9423
2003-10-23 16:52:27 +00:00
Misha Brukman
3f45389172
Make code layout more consistent.
...
llvm-svn: 9418
2003-10-23 16:48:30 +00:00
Misha Brukman
998cabe4ff
* Order includes according to style guide
...
* Convert tabs to spaces
* Make code fit within 80 columns
llvm-svn: 9416
2003-10-23 16:22:08 +00:00
Chris Lattner
8a55262c76
Fix bug: instcombine/2003-10-23-InstcombineNullFail.ll
...
llvm-svn: 9403
2003-10-23 05:21:48 +00:00
Chris Lattner
0658cc20bd
Make this pass substantially stronger by having it delete dead return values
...
as well as arguments. Now it can delete arguments and return values which are
only passed into other arguments or are returned, if they are dead. This causes
it to delete several hundred extra args/retvals from the C++ hello world program,
shrinking it by about 2K.
llvm-svn: 9398
2003-10-23 03:48:17 +00:00
Chris Lattner
9e8fe49c37
This important patch fixes two warnings in the linker which can occur from linking
...
valid pieces of code
llvm-svn: 9390
2003-10-22 23:03:38 +00:00
Brian Gaeke
f140b28c16
Change the type of FnAllocState.
...
llvm-svn: 9388
2003-10-22 20:44:29 +00:00
Brian Gaeke
41fe18cbaa
Don't worry about converting each function's reg. alloc. state into One Big
...
Constant early on, because we can do it in doFinalization.
Tighten up a comment.
llvm-svn: 9387
2003-10-22 20:44:23 +00:00
Brian Gaeke
f29231ec3a
Add prototype for verifySavedState().
...
llvm-svn: 9386
2003-10-22 20:23:13 +00:00
Brian Gaeke
e3cf072d9e
Doxygenify method comments.
...
Try to improve method comments a little.
Get rid of some excess whitespace; put braces on previous line when possible.
Add stub for method to verify the work of saveState().
llvm-svn: 9385
2003-10-22 20:22:53 +00:00
Chris Lattner
5987ab8677
This is a disgusting hack that improves code substantially, by making
...
callgraphSCC passes more effective.
llvm-svn: 9384
2003-10-22 18:53:31 +00:00
Chris Lattner
ac4238f7bc
Do not add unreachable code to a natural loop!
...
llvm-svn: 9377
2003-10-22 16:41:21 +00:00
Chris Lattner
aa81dce20c
Make sure to print labels on nodes without names
...
llvm-svn: 9376
2003-10-22 16:30:58 +00:00
Chris Lattner
9d63afdea5
If the basic block has no name, make sure to print the % number of it
...
llvm-svn: 9375
2003-10-22 16:22:42 +00:00
Chris Lattner
a93d11bc1d
Implement the Function::viewCFG* methods, for use in a debugger. Also, the
...
-print-cfg pass now lives here.
llvm-svn: 9374
2003-10-22 16:03:49 +00:00
Misha Brukman
dbe73c5d6d
Add comments to describe what these functions actually do.
...
llvm-svn: 9370
2003-10-22 05:50:40 +00:00
Misha Brukman
8c0608cf0d
* Use <cmath> instead of <math.h>
...
* Order #includes according to LLVM coding standards
llvm-svn: 9369
2003-10-22 05:09:56 +00:00
Misha Brukman
cc0d34223d
Removed completely duplicated function comment (an identical one appears later).
...
llvm-svn: 9368
2003-10-22 04:55:09 +00:00
Misha Brukman
980d74c752
No, really, order the #includes correctly.
...
llvm-svn: 9367
2003-10-22 04:51:36 +00:00
Chris Lattner
6d3425e87a
Update the 'used' flag correctly
...
llvm-svn: 9366
2003-10-22 04:43:18 +00:00
Chris Lattner
12b3593dea
Loop over the module, not the symbol table. This makes the code handle
...
unused external functions again
llvm-svn: 9365
2003-10-22 04:42:20 +00:00
Chris Lattner
4cd99ffa57
Implement FunctionResolve/2003-10-21-GlobalResolveHack.ll
...
llvm-svn: 9363
2003-10-22 03:35:34 +00:00
Misha Brukman
88be700644
* Fix order of #includes to follow style guide
...
* It's no longer a BasicBlock pass: update comment on run() method
* Fix placement of braces to be consistent
* Delete extraneous whitespace
llvm-svn: 9361
2003-10-22 03:27:45 +00:00
Misha Brukman
53d8490186
Converted tabs to spaces.
...
llvm-svn: 9360
2003-10-22 03:10:26 +00:00
Chris Lattner
af2c00bf14
Fix bug: FunctionResolve/2003-10-21-GlobalTypeDifference.ll
...
llvm-svn: 9359
2003-10-21 23:17:56 +00:00
Chris Lattner
4f2581f828
Fix bug: Linker/2003-10-21-ConflictingTypesTolerance.ll
...
llvm-svn: 9357
2003-10-21 22:46:38 +00:00
Chris Lattner
9bc22b7439
Fix message to make more sense and confuse Chris less
...
llvm-svn: 9354
2003-10-21 21:52:20 +00:00
Chris Lattner
2c35b1c94c
Make sure to add a type for va_next operands, which may not other wise
...
occur in the module
llvm-svn: 9336
2003-10-21 17:40:54 +00:00
Chris Lattner
7267b352fb
Fix problem which effected linking apache
...
llvm-svn: 9335
2003-10-21 17:39:59 +00:00
Chris Lattner
73d9355fea
Hrm, unbreak stuph :(
...
llvm-svn: 9334
2003-10-21 17:22:23 +00:00
Chris Lattner
a62228d01a
Fix preselection/lowerswitches bug
...
llvm-svn: 9333
2003-10-21 16:29:23 +00:00
Chris Lattner
4439aee504
Pull the PHI special case into it's own visit* method
...
llvm-svn: 9332
2003-10-21 16:09:23 +00:00
Chris Lattner
898a42afde
The lastOp operand is never used
...
llvm-svn: 9331
2003-10-21 16:06:07 +00:00
John Criswell
9583cfafc5
Added LLVM copyright notice.
...
llvm-svn: 9324
2003-10-21 15:29:18 +00:00
John Criswell
29265fe981
Added LLVM copyright header.
...
llvm-svn: 9321
2003-10-21 15:17:13 +00:00
Chris Lattner
2e2a0ed7e1
Preselection is _not_ a basicblock pass, because it adds global variables to
...
the module. This change converts it from being a basic block pass to being
a simple pass. This allows elimination of the annotation and simplification
of the logic for moving constants into global variables.
llvm-svn: 9320
2003-10-21 14:49:19 +00:00
Vikram S. Adve
8264e29e01
When opcodes like ADD were split into reg. and immed. versions (ADDi and ADDr),
...
this code wasn't fixed correctly so it missed copy operations that used ADDi.
llvm-svn: 9318
2003-10-21 12:29:45 +00:00
Vikram S. Adve
64e8a13b7b
Why does g++ not even generate a warning when you miss a break statement?
...
llvm-svn: 9317
2003-10-21 12:28:27 +00:00
Vikram S. Adve
af2df5b7f9
Implement the new varargs instructions and intrinsics.
...
llvm-svn: 9316
2003-10-21 11:25:09 +00:00
John Criswell
4436c49787
Added LLVM copyright notice to Makefiles.
...
llvm-svn: 9312
2003-10-20 22:26:57 +00:00
Chris Lattner
dcd1466a80
Convert this code from using annotations to using a local map
...
llvm-svn: 9310
2003-10-20 20:52:23 +00:00
Brian Gaeke
e7621515c0
Goodbye, AddRegNumToValues
...
llvm-svn: 9309
2003-10-20 20:44:03 +00:00
Chris Lattner
93fa46476b
Remove using declaration
...
llvm-svn: 9307
2003-10-20 20:38:17 +00:00
John Criswell
482202a601
Added LLVM project notice to the top of every C++ source file.
...
Header files will be on the way.
llvm-svn: 9298
2003-10-20 19:43:21 +00:00
Chris Lattner
d77dd78c52
"Function"[0] == 'F', not 'M'
...
llvm-svn: 9297
2003-10-20 19:10:06 +00:00
Brian Gaeke
ca1789d3f5
Minor leftover fixups from replaceMachineCodeForFunction () change.
...
llvm-svn: 9295
2003-10-20 17:59:09 +00:00
Brian Gaeke
4bc3958c7b
Make replaceMachineCodeForFunction() return void.
...
llvm-svn: 9289
2003-10-20 15:17:12 +00:00
Brian Gaeke
67a5a865ae
Make replaceMachineCodeForFunction return void.
...
llvm-svn: 9288
2003-10-20 15:15:17 +00:00
Chris Lattner
f187b7691d
Apparently the dependencies are wrong for this file, so it didn't rebuild it
...
when changing Instruction.def. :(
llvm-svn: 9286
2003-10-20 14:12:52 +00:00
Chris Lattner
2d9c117e21
Reorder for minor efficiency gain
...
llvm-svn: 9285
2003-10-20 05:54:26 +00:00
Chris Lattner
6acb1bedb1
Emit x86 instructions for: A = B op C, where A and B are 16-bit registers,
...
C is a constant which can be sign-extended from 8 bits without value loss,
and op is one of: add, sub, imul, and, or, xor.
This allows the JIT to emit the one byte version of the constant instead of
the two or 4 byte version. Because these instructions are very common, this
can save a LOT of code space. For example, I sampled two benchmarks, 176.gcc
and 254.gap.
BM Old New Reduction
176.gcc 2673621 2548962 4.89%
254.gap 498261 475104 4.87%
Note that while the percentage is not spectacular, this did eliminate
124.6 _KILOBYTES_ of codespace from gcc. Not bad.
Note that this doesn't effect the llc version at all, because the assembler
already does this optimization.
llvm-svn: 9284
2003-10-20 05:53:31 +00:00
Chris Lattner
f2a34aa278
Hrm, a relic from the past. How cute :)
...
llvm-svn: 9283
2003-10-20 05:45:49 +00:00
Chris Lattner
369246d855
Further cleanups and simplifications
...
llvm-svn: 9282
2003-10-20 04:48:06 +00:00
Chris Lattner
358e7c3edb
Eliminate code for pointer size and endianness emulation.
...
llvm-svn: 9281
2003-10-20 04:11:23 +00:00
Misha Brukman
42856eb1bd
The Grammar Police was here.
...
llvm-svn: 9280
2003-10-20 04:03:10 +00:00
Chris Lattner
97e1b55723
* Rename X86::IMULr16 -> X86::IMULrr16
...
* Implement R1 = R2 * C where R1 and R2 are 32 or 16 bits. This avoids an
extra copy into a register, reducing register pressure.
llvm-svn: 9278
2003-10-20 03:42:58 +00:00
Chris Lattner
24c67e8553
Eliminate unused class
...
llvm-svn: 9270
2003-10-19 21:39:41 +00:00
Chris Lattner
b94550e537
Change the Opcode enum for PHI nodes from "Instruction::PHINode" to "Instruction::PHI" to be more consistent with the other instructions.
...
llvm-svn: 9269
2003-10-19 21:34:28 +00:00
Chris Lattner
bf87734fa0
* Multiplications by 2^X are turned into shifts. This factors code out of the
...
getelementptr code path for use by other code paths (like malloc and alloca).
* Optimize comparisons with zero
* Generate neg, not, inc, and dec instructions, when possible.
This gives some code size wins, which might translate into performance. We'll
see tommorow in the nightly tester.
llvm-svn: 9267
2003-10-19 21:09:10 +00:00
Chris Lattner
55a8ef0cc8
Add some new instructions. Wheee
...
llvm-svn: 9266
2003-10-19 19:25:35 +00:00
Chris Lattner
406ac8e741
.string adds an implicit zero at the end. This is not what we wanted.
...
This fixes PR#44.
llvm-svn: 9252
2003-10-19 02:51:01 +00:00
Chris Lattner
4aad8b9ed8
Add debugtype, make output marginally more nice
...
llvm-svn: 9251
2003-10-19 02:27:40 +00:00
Chris Lattner
97d7f8373c
Fix PR #47
...
llvm-svn: 9250
2003-10-19 02:14:58 +00:00
Chris Lattner
ee898b35a1
Fix bug: Jello/2003-10-18-PHINode-ConstantExpr-CondCode-Failure.llx
...
This also fixes miscompilation of 176.gcc.
llvm-svn: 9249
2003-10-19 00:26:11 +00:00
Chris Lattner
0132ae4117
Without this option, the -run-llc mode does not work with shared objects at
...
all, making it pointless for use with the code generator debugger. With it,
it works like a charm.
llvm-svn: 9245
2003-10-18 21:54:47 +00:00
Chris Lattner
eb6cfaef4b
Fix warning
...
llvm-svn: 9236
2003-10-18 19:48:10 +00:00
Chris Lattner
dc83293a38
add support for new linkage types
...
llvm-svn: 9228
2003-10-18 06:30:21 +00:00
Chris Lattner
b32f5748b7
Fix PR#50
...
llvm-svn: 9227
2003-10-18 06:14:59 +00:00
Chris Lattner
5b33748497
Add support for the new varargs intrinsics and instructions
...
llvm-svn: 9226
2003-10-18 05:57:43 +00:00
Chris Lattner
f0fc9be634
ADd support for the new varargs instructions
...
llvm-svn: 9225
2003-10-18 05:56:52 +00:00
Chris Lattner
80a308c920
Add support for the new varargs intrinsics
...
llvm-svn: 9224
2003-10-18 05:56:40 +00:00
Chris Lattner
fb40334c25
Update the sparc backend to at least compile correctly with the new varargs stuff even if it's not all implemented yet.
...
llvm-svn: 9223
2003-10-18 05:55:58 +00:00
Chris Lattner
fefd3bebc4
Interpret the new varargs intrinsics correctly
...
llvm-svn: 9222
2003-10-18 05:55:25 +00:00
Chris Lattner
9d57347490
Updated to emit the final 1.0 bytecode format. This supports weak linkage,
...
more efficient encoding of varargs calls, and the new varargs intrinsics.
llvm-svn: 9221
2003-10-18 05:54:48 +00:00
Chris Lattner
7c6c539296
* New revised variable argument handling support
...
* More dense bytecode encoding for varargs calls (like printf)
* Eliminated the extremely old bytecode format. rev #0 is now 1.0
llvm-svn: 9220
2003-10-18 05:54:18 +00:00
Chris Lattner
0079e7dd6d
New revised variable argument handling support
...
llvm-svn: 9219
2003-10-18 05:53:13 +00:00
Misha Brukman
e5a2565b91
Chris says it's better to assert that TheModule is valid than silently return 0.
...
llvm-svn: 9212
2003-10-17 21:59:57 +00:00
Brian Gaeke
c42d7951f2
You can't just blat the address into memory, you have to blat its
...
displacement.
llvm-svn: 9210
2003-10-17 21:47:25 +00:00
Misha Brukman
e37fb9ddc5
Don't release the Module, as that invalidates the Module* within the
...
ModuleProvider, which has bad consequences in lli::callAsMain() which tries to
access that same Module*.
llvm-svn: 9205
2003-10-17 18:31:59 +00:00
Brian Gaeke
1a7668a9fd
Implement replaceMachineCodeForFunction() for x86.
...
llvm-svn: 9204
2003-10-17 18:27:46 +00:00
Brian Gaeke
2e24fcadf5
Refactor jump insertion code from CompilationCallback() into insertJumpAtAddr().
...
Make insertFarJumpAtAddr() return void, because nothing uses its return value.
Remove some commented-out code.
Implement replaceMachineCodeForFunction() for SPARC.
llvm-svn: 9203
2003-10-17 18:27:37 +00:00
Brian Gaeke
240fc39b07
Add prototype for replaceMachineCodeForFunction().
...
llvm-svn: 9202
2003-10-17 18:27:25 +00:00
Misha Brukman
de360f88c8
Return the Module that we just materialized.
...
llvm-svn: 9201
2003-10-17 18:27:13 +00:00
Brian Gaeke
d2bc5ac045
Tidy up doxygen comment for getPointerToFunction().
...
Add prototypes for recompileAndRelinkFunction() and runJITOnFunction().
llvm-svn: 9200
2003-10-17 18:27:12 +00:00
Brian Gaeke
3b5f24513c
Refactor running the JIT passes on a single function into the new method,
...
runJITOnFunction().
Add new method for recompiling and patching in new versions of functions,
recompileAndRelinkFunction().
llvm-svn: 9199
2003-10-17 18:27:00 +00:00
Brian Gaeke
09d40333a2
Remove extra blank line.
...
llvm-svn: 9196
2003-10-17 18:09:10 +00:00
Chris Lattner
1facf89eaf
Do not crash on empty structures
...
llvm-svn: 9195
2003-10-17 18:03:54 +00:00
Chris Lattner
0aa8eaf7bf
Tighten up handling of checks for shift instructions
...
llvm-svn: 9191
2003-10-17 05:11:44 +00:00
Alkis Evlogimenos
8faf8d93d5
Eliminate some extraneous code in SlotCalculator::insertVal().
...
Rename SlotCalculator::getValSlot() to SlotCalculator::getSlot(),
SlotCalculator::insertValue() to SlotCalculator::getOrCreateSlot(),
SlotCalculator::insertVal() to SlotCalculator::insertValue(), and
SlotCalculator::doInsertVal() to SlotCalculator::doInsertValue().
llvm-svn: 9190
2003-10-17 02:02:40 +00:00
Brian Gaeke
c05684ad22
Fix typo in comment.
...
llvm-svn: 9187
2003-10-16 23:45:05 +00:00
Brian Gaeke
13b9395071
Fix a typo in a comment, and zap a blank line.
...
llvm-svn: 9184
2003-10-16 23:33:38 +00:00
Misha Brukman
0659ddc455
Add separator between different types of readers.
...
llvm-svn: 9183
2003-10-16 21:19:54 +00:00
Misha Brukman
1273147daf
JIT.cpp:
...
* #include "llvm/ModuleProvider"
* alphabetize #includes
* omit extraneous parens in pointer expressions
VM.cpp:
* #include "llvm/ModuleProvider"
* alphabetize #includes
llvm-svn: 9182
2003-10-16 21:19:34 +00:00
Misha Brukman
260b0c88a0
* Reorder includes as per the style guide
...
* Move the constructors from .h file here
* Document ExecutionEngine::create()
* Catch exception possibly thrown by ModuleProvider::releaseModule()
llvm-svn: 9181
2003-10-16 21:18:05 +00:00
Chris Lattner
6187774380
Minor cleanups
...
llvm-svn: 9177
2003-10-16 20:12:13 +00:00
Chris Lattner
068ad84038
Add support for 'weak' linkage.
...
llvm-svn: 9171
2003-10-16 18:29:00 +00:00
Chris Lattner
2d05c60bac
Add support for 'weak' linkage.
...
For now, we translate linkonce into weak linkage in the bytecode format because
we don't have enough bits to represent it. We will rev the bytecode version
soon anyways, so this will be fixed in the near future.
llvm-svn: 9170
2003-10-16 18:28:50 +00:00
Chris Lattner
079edeb919
Completely rewrite support for the Value::use_* list. Now, all operations on
...
this list (except use_size()) are constant time. Before the killUse method
(used whenever something stopped using a value) was linear time, and thus
very very slow for large programs.
This speeds GCCAS up _substantially_ on large programs: almost 2x for 176.gcc:
176.gcc: 77.07s -> 37.38s
177.mesa: 7.59s -> 5.57s
252.eon: 21.02s -> 19.52s (*)
253.perlbmk: 11.40s -> 13.05s
254.gap: 7.25s -> 7.42s
252.eon would speed up a whole lot more, but optimization time is being
dominated by the inlining pass, which needs to be fixed.
llvm-svn: 9160
2003-10-16 16:53:07 +00:00
Chris Lattner
50b6858e2e
This code does not require random access use_lists
...
llvm-svn: 9156
2003-10-16 16:49:12 +00:00
Chris Lattner
5dbb244edb
Eliminate using declaration
...
Rewrite code to work with use_lists what are either random access or bidirectional
llvm-svn: 9155
2003-10-16 16:48:53 +00:00
Chris Lattner
9177d11367
#include vector which we will need here soon
...
llvm-svn: 9144
2003-10-15 22:09:32 +00:00
Brian Gaeke
828449f9fe
Fix up error message.
...
llvm-svn: 9139
2003-10-15 20:46:58 +00:00
Chris Lattner
f95d9b99b3
Decrease usage of use_size()
...
llvm-svn: 9135
2003-10-15 16:48:29 +00:00
Chris Lattner
f77a856f3b
Cleanup
...
llvm-svn: 9133
2003-10-15 16:42:21 +00:00
Chris Lattner
1499851ef6
Generalize abstract interpreter interface to allow linking in an arbitrary number of shared objects
...
llvm-svn: 9129
2003-10-14 21:52:52 +00:00
Misha Brukman
1d2d8ec853
Order #includes as per the style guide.
...
llvm-svn: 9128
2003-10-14 21:42:11 +00:00
Misha Brukman
56a8642a42
Enabling incremental bytecode loading in the JIT:
...
* FunctionPassManager ctor now takes in a ModuleProvider
* run() materializes function before running passes on it
llvm-svn: 9126
2003-10-14 21:38:42 +00:00
Misha Brukman
299f3e650f
Enabling incremental bytecode loading in the JIT:
...
* The VM is now constructed with a ModuleProvider
llvm-svn: 9125
2003-10-14 21:37:41 +00:00
Misha Brukman
2f1e200248
Enabling incremental bytecode loading in the JIT:
...
* ExecutionEngine and VM can be constructed using a ModuleProvider.
llvm-svn: 9124
2003-10-14 21:36:31 +00:00
Chris Lattner
66da9ef634
Substantial cleanups:
...
* Add header comment
* Remove extraneous #includes
* Move the FileType enum into the GCC class
* The GCC class is not virtual.
* Move all of the "constructor" functions into the classes themselves
* Stop using cl::list as arguments, use std::vector instead (which cl::list
derives from)
* Improve comments
llvm-svn: 9121
2003-10-14 21:34:11 +00:00
Chris Lattner
74d64c7d02
Actually return an error if something bad happens, don't just exit.
...
llvm-svn: 9119
2003-10-14 21:07:25 +00:00
Chris Lattner
fdfe370406
Output a contorted sequence of instructions to make sure that we don't access
...
off the bottom of the stack. This fixes PR#41
llvm-svn: 9114
2003-10-14 19:09:05 +00:00
Chris Lattner
97c7a8ed1a
Disable the leaf function optimization, which is apparently not legal on
...
X86/linux. :( The problem is that a signal delivered while the function
is executing could clobber the functions stack. This is a partial fix
for PR41.
llvm-svn: 9113
2003-10-14 18:52:41 +00:00
Chris Lattner
b4778c73c9
Do not move variable sized allocations to the top of the caller, which might
...
break dominance relationships, and is otherwise bad. This fixes bug:
Inline/2003-10-13-AllocaDominanceProblem.ll. This also fixes miscompilation
of 3 176.gcc source files (reload1.c, global.c, flow.c)
llvm-svn: 9109
2003-10-14 01:11:07 +00:00
Chris Lattner
08ca35b6d6
Do not allow fallthroughs in switch statements. This fixes PR37,
...
253.perlbmk, and test/Programs/SingleSource/UnitTests/2003-10-13-SwitchTest.c!
llvm-svn: 9101
2003-10-13 20:32:04 +00:00
Brian Gaeke
6855f03c56
Remove WordsEmitted statistic; there's already a non-backend-specific
...
jello statistic for this (just divide #-bytes-of-code-emitted by 4).
Rewrite head-of-file comment.
llvm-svn: 9098
2003-10-13 19:51:20 +00:00
Chris Lattner
abb3b38448
LLI no longer has -abort-on-exception
...
llvm-svn: 9097
2003-10-13 18:26:49 +00:00
Chris Lattner
8260db9a69
Use the autoconf macro John wrote
...
llvm-svn: 9095
2003-10-13 17:13:53 +00:00
Chris Lattner
612cafef0a
Whoops, we inserted into the wrong set. What's up with the dead set anyway?
...
llvm-svn: 9094
2003-10-13 16:49:21 +00:00
Chris Lattner
951e7329e8
Use external df iterators to avoid revisiting blocks in functions with
...
multiple setjmp calls.
llvm-svn: 9093
2003-10-13 16:44:50 +00:00
Chris Lattner
f5d946eced
Make use of "external" depth-first iterators to avoid revisiting nodes
...
multiple times. This reduces the time to construct post-dominance sets a LOT.
For example, optimizing perlbmk goes from taking 12.9894s to 1.4074s.
llvm-svn: 9091
2003-10-13 16:36:06 +00:00
Chris Lattner
0c068c097a
Stop using "reverse depth first" order
...
llvm-svn: 9081
2003-10-13 15:21:58 +00:00
Chris Lattner
aa78cc9e5d
Minor cleanups
...
llvm-svn: 9079
2003-10-13 14:57:53 +00:00
Chris Lattner
e859403772
Speed up TypesEqual by specializing it for all of the derived types, avoiding
...
a lot of virtual method dispatch overhead.
llvm-svn: 9078
2003-10-13 14:55:56 +00:00
Chris Lattner
a785563692
Avoid calling getTypeSlot more
...
llvm-svn: 9077
2003-10-13 14:34:59 +00:00
Chris Lattner
1dc3f3fdc0
Avoid creating lots of pointless opaque types, with short lifetimes
...
llvm-svn: 9076
2003-10-13 14:03:36 +00:00
Chris Lattner
c7bc3bb503
This is a header file, hear me roar
...
llvm-svn: 9075
2003-10-13 05:34:24 +00:00
Chris Lattner
ab16a659d7
* Remove extraneous #includes
...
* Fix a nasty initializer ordering bug. Any only-CFG passes which registered
themselves before the CFGOnlyAnalysis vector initialized got forgotten and
thus got invalidated and recomputed.
In particular, in my compiled version of gccas, the Loop information pass was
being recomputed unnecessarily.
llvm-svn: 9074
2003-10-13 05:33:01 +00:00
Chris Lattner
178957028b
Wrap code at 80 columns
...
llvm-svn: 9073
2003-10-13 05:04:27 +00:00
Chris Lattner
f0bf7cb739
This is a header file, thus it needs a -*-C++-*-
...
llvm-svn: 9072
2003-10-13 04:22:07 +00:00
Chris Lattner
44d2c3514a
Regularize header file comments
...
llvm-svn: 9071
2003-10-13 03:32:08 +00:00
Chris Lattner
7cce14bfbf
Regularize header file comment, eliminate using's
...
llvm-svn: 9069
2003-10-13 03:30:47 +00:00
Chris Lattner
f7a60cd9fa
Minor cleanups
...
llvm-svn: 9067
2003-10-13 01:02:33 +00:00
Chris Lattner
56b8526083
Checkin an improvement contributed by Bill:
...
Only transform call sites in a setjmp'ing function which are reachable from
the setjmp. If the call dominates the setjmp (for example), the called
function cannot longjmp to the setjmp.
This dramatically reduces the number of invoke instructions created in some
large testcases.
llvm-svn: 9066
2003-10-13 00:57:16 +00:00
Chris Lattner
c4622a6955
Add support to the loop canonicalization pass to make it transform loops to
...
have a SINGLE backedge. This is useful to, for example, the -indvars pass.
This implements testcase LoopSimplify/single-backedge.ll and closes PR#34
llvm-svn: 9065
2003-10-13 00:37:13 +00:00
Chris Lattner
e43629bad6
Make getNumBackEdges more efficient
...
llvm-svn: 9063
2003-10-12 22:14:27 +00:00
Chris Lattner
72272a70b8
Rename loop preheaders pass to loop simplify
...
llvm-svn: 9061
2003-10-12 21:52:28 +00:00
Chris Lattner
55d4788397
File is renamed to LoopSimplify.cpp
...
llvm-svn: 9059
2003-10-12 21:44:18 +00:00
Chris Lattner
154e4d5dea
First step in renaming the preheaders pass to loopsimplify
...
llvm-svn: 9058
2003-10-12 21:43:28 +00:00
Chris Lattner
9703c02ce4
The preheader insertion pass only depends on the CFG. Mark it as such, which
...
allows GCCAS to only run it once.
llvm-svn: 9056
2003-10-12 19:33:10 +00:00
Chris Lattner
dd99f5bf8f
Rename method
...
llvm-svn: 9055
2003-10-12 18:52:12 +00:00
Chris Lattner
1d243169d9
* Spell "necessary" correctly
...
* Print floating point values using C99 hexadecimal style FP if possible.
This increases the number of floating point constants that may be emitted
inline, and improves precision for global variable initializers which
can not be emitted in integer form.
This fixes the Olden/Power benchmark with the CBE!!!!
llvm-svn: 9052
2003-10-12 08:12:58 +00:00
Chris Lattner
5d841b2de5
* Be TBAA safe
...
* Fix isFPCSafeToPrint to find more constants safe to print, which it was
failing because ftostr was padding with leading space characters.
* Scan the entire module for global constants instead of each function at a
time. This has the advantage of allowing us to emit constants at global
scope instead of function scope. This speeds FP programs quite a bit.
llvm-svn: 9048
2003-10-12 04:36:29 +00:00
Brian Gaeke
74edce6f7c
Make mmap's fd for anonymous memory acquisition default to -1, except on
...
Linux. This is consistent with what FreeBSD and Solaris both want.
This makes the JIT work on FreeBSD 5.1-RELEASE. Whee.
llvm-svn: 9045
2003-10-11 03:51:18 +00:00
Brian Gaeke
2797c131ef
Don't include "Config/stdlib.h".
...
llvm-svn: 9037
2003-10-10 19:12:22 +00:00
Brian Gaeke
bc12709888
Include <cctype> and <cstdlib> instead of <ctype.h> and "Config/stdlib.h".
...
llvm-svn: 9036
2003-10-10 19:12:08 +00:00
Brian Gaeke
b8a4ed6543
Include <cstdio> instead of <stdio.h>.
...
llvm-svn: 9032
2003-10-10 18:46:52 +00:00
Brian Gaeke
cc31fddf13
Don't include Config/stdio.h or <stdio.h>.
...
llvm-svn: 9031
2003-10-10 18:46:29 +00:00
Misha Brukman
8b2bd4ed47
Fix spelling.
...
llvm-svn: 9027
2003-10-10 17:57:28 +00:00
Misha Brukman
fa100531e1
Fix spelling/grammar.
...
llvm-svn: 9023
2003-10-10 17:54:14 +00:00
Misha Brukman
857c21b4e0
* Tabs to spaces
...
* Doxygenified function comments
* Added FIXMEs to solicit documentation for other functions
llvm-svn: 9022
2003-10-10 17:45:12 +00:00
Misha Brukman
aa7d26c8c8
Fix spelling.
...
llvm-svn: 9021
2003-10-10 17:42:19 +00:00
Misha Brukman
80f283b316
* Doxygenified comments
...
* Wrap code at 80 columns
* Ordered includes according to LLVM style guide
llvm-svn: 9020
2003-10-10 17:41:32 +00:00
Brian Gaeke
20c65741d0
Never set any signal handlers.
...
Never call setjmp(), longjmp() or strsignal().
llvm-svn: 9014
2003-10-10 17:03:22 +00:00