Devang Patel
29a8ae3025
Add AnalysisResolver_New.
...
llvm-svn: 32384
2006-12-08 23:52:04 +00:00
Devang Patel
6f0bb6fbed
Add AnalysisResolver_New. It is a replacement for existing
...
AnalysisResolver.
llvm-svn: 32383
2006-12-08 23:28:54 +00:00
Chris Lattner
9c52dc6c34
Change the implementation of statistic to not need destructors at all.
...
Instead, the stat info is printed when llvm_shutdown() is called.
These also don't need static ctors, but getting rid of them is uglier:
still investigating. This reduces the number of static dtors in llvm from
~1400 to ~750.
llvm-svn: 32372
2006-12-08 20:00:42 +00:00
Devang Patel
4833df8e9e
Implement FunctionPassManager_New::FunctionPassManager_New(ModuleProvider *P)
...
llvm-svn: 32368
2006-12-08 18:57:16 +00:00
Evan Cheng
88a55bdd64
Move findTiedToSrcOperand to TargetInstrDescriptor.
...
llvm-svn: 32366
2006-12-08 18:45:48 +00:00
Andrew Lenharth
d115fe7ce3
Packed Structures
...
llvm-svn: 32361
2006-12-08 18:06:16 +00:00
Evan Cheng
dfec38a575
Use MI's TargetInstrDescriptor.
...
llvm-svn: 32352
2006-12-08 07:57:56 +00:00
Bill Wendling
fe0af72bc4
Don't use <sstream> in Streams.h but <iosfwd> instead.
...
llvm-svn: 32340
2006-12-07 23:41:45 +00:00
Bill Wendling
4d1444725b
Removed more <iostream> includes
...
llvm-svn: 32321
2006-12-07 20:28:15 +00:00
Reid Spencer
076e7af638
Provide a getOpcode() method on CmpInst to ensure the opcode is returned
...
as the right type. Use this to shorten some code.
llvm-svn: 32300
2006-12-07 04:18:31 +00:00
Bill Wendling
a3246c4272
Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are
...
now cerr, cout, and NullStream resp.
llvm-svn: 32298
2006-12-07 01:30:32 +00:00
Jim Laskey
25d00cc31d
Ignoring the upper 32 bits of a 64 bit constant is not a good thing.
...
llvm-svn: 32294
2006-12-06 22:47:14 +00:00
Reid Spencer
19cb81393d
For PR950:
...
Remove the getMaxValue and getMinValue functions from ConstantIntegral.
They don't make sense for a signless type. Also, for isMaxValue and
isMinValue, have the caller provided the signedness rather than obtaining
it from the constant's type.
llvm-svn: 32287
2006-12-06 20:30:17 +00:00
Reid Spencer
3ad24eb214
Fix some 80 col violations.
...
llvm-svn: 32286
2006-12-06 20:28:46 +00:00
Chris Lattner
e626f6de68
merge the Statistic and StatisticBase classes, eliminating virtual methods
...
and eliminating #includes from the Statistic.h file.
llvm-svn: 32282
2006-12-06 18:20:44 +00:00
Chris Lattner
a531ce882e
Detemplatize the Statistic class. The only type it is instantiated with
...
is 'unsigned'.
llvm-svn: 32279
2006-12-06 17:46:33 +00:00
Evan Cheng
59494f9e3d
Move copyKillDeadInfo out-of-line. Add findRegisterUseOperand().
...
llvm-svn: 32273
2006-12-06 08:27:42 +00:00
Chris Lattner
f92de9a3d2
Remove the dead CachedWriter class.
...
llvm-svn: 32271
2006-12-06 06:40:49 +00:00
Chris Lattner
3d1758e08c
Remove the 'printname' argument to WriteAsOperand. It is always true, and
...
passing false would make the asmprinter fail anyway.
llvm-svn: 32264
2006-12-06 06:16:21 +00:00
Chris Lattner
b4df9a6e9c
remove unused api
...
llvm-svn: 32261
2006-12-06 05:55:44 +00:00
Chris Lattner
30bf130327
add a helper to call llvm_shutdown()
...
llvm-svn: 32249
2006-12-06 01:01:14 +00:00
Reid Spencer
c87c3e5a70
Bail on the getInferredCast idea. Remove the function and convert
...
remaining uses to more specific casts.
llvm-svn: 32231
2006-12-05 19:14:13 +00:00
Reid Spencer
671de8b576
Add cast creation functions for Pointer Casts, either BitCast or PtrToInt
...
llvm-svn: 32207
2006-12-04 23:14:27 +00:00
Reid Spencer
2e158ac2a0
Separate the get and getTy functions for ICmp and FCmp into getCompare
...
and getCompareTy. Also, fix some incorrect comments.
llvm-svn: 32199
2006-12-04 21:34:17 +00:00
Reid Spencer
faa1b54104
Unclutter this by using new cast creation functions.
...
llvm-svn: 32192
2006-12-04 20:18:26 +00:00
Reid Spencer
2d2a26767e
Implement new cast creation functions for both instructions and constant
...
expressions. These will get used to reduce clutter as we replace various
calls to createInferredCast and getCast.
llvm-svn: 32191
2006-12-04 20:17:56 +00:00
Reid Spencer
b45bf0421e
For PR950: Provide an isCompare method for detection of ICmp and FCmp constant expressions. Change interfaces to allow for ICmp and FCmp predicate values.
...
llvm-svn: 32167
2006-12-04 05:19:02 +00:00
Reid Spencer
0668975146
Change inferred casts to explicit casts.
...
llvm-svn: 32165
2006-12-04 02:46:44 +00:00
Reid Spencer
4cb4234c17
Take a baby step towards getting rid of inferred casts. Provide methods on
...
CastInst and ConstantExpr that allow the signedness to be explicitly passed
in and reliance on signedness removed from getCastOpcode. These are
temporary measures useful during the conversion of inferred casts.
llvm-svn: 32164
2006-12-04 02:43:42 +00:00
Reid Spencer
470e894f5c
Remove dead code.
...
llvm-svn: 32157
2006-12-03 16:21:33 +00:00
Reid Spencer
a468638458
Implement creation of ICmp and FCmp constant expressions.
...
llvm-svn: 32147
2006-12-03 05:48:19 +00:00
Chris Lattner
7a39941897
Switch analysis groups to be unregistered when llvm_shutdown is called.
...
llvm-svn: 32110
2006-12-01 23:46:50 +00:00
Chris Lattner
1b0e89e022
Start moving pass registration over to using the ManagedStatic mechanism.
...
This fixes issues where passes get unregistered before llvm_shutdown is
called, and is generally cleaner and simpler. Analysis groups up next.
llvm-svn: 32108
2006-12-01 23:27:45 +00:00
Chris Lattner
dc1a679533
pass cfgonly up the ctor instead of calling an explicit method.
...
llvm-svn: 32105
2006-12-01 22:36:43 +00:00
Chris Lattner
a2bd5d4aaa
move 'cfgonly' pass tracking into PassInfo, instead of handling it with
...
yet-another global data structure.
llvm-svn: 32102
2006-12-01 22:21:11 +00:00
Chris Lattner
e91ec14530
remove 'target constructor' support.
...
llvm-svn: 32100
2006-12-01 22:00:50 +00:00
Evan Cheng
3f151090e6
Typo
...
llvm-svn: 32095
2006-12-01 21:50:17 +00:00
Evan Cheng
d042dac8ab
- Add getOperandConstraint() to TargetInstrDescriptor.
...
- convertToThreeAddress() change to allow single two-address MI to be converted
into one or more 3-address MIs.
llvm-svn: 32094
2006-12-01 21:46:55 +00:00
Evan Cheng
c5ad9caeff
Add weak reference directive.
...
llvm-svn: 32091
2006-12-01 20:47:11 +00:00
Chris Lattner
9c68364bfc
Remove dead methods
...
llvm-svn: 32088
2006-12-01 20:14:47 +00:00
Chris Lattner
497c976859
add a new ConstantIntegral::get method. Simplify the implementation of
...
ConstantInt::get
llvm-svn: 32080
2006-12-01 19:20:02 +00:00
Reid Spencer
5dd01281a0
Define the HAVE_PTHREAD symbol.
...
llvm-svn: 32059
2006-12-01 03:46:01 +00:00
Jim Laskey
0369cab61e
Change global descriptor names to provide name, full name and linkage name.
...
llvm-svn: 32036
2006-11-30 14:35:45 +00:00
Evan Cheng
cb65ba1821
- MachineInstr now keeps a ptr to TargetInstrDescriptor instead of Opcode.
...
- Remove the ugly TargetInstrDescriptors hack.
llvm-svn: 32032
2006-11-30 07:08:44 +00:00
Reid Spencer
52d8c5bd3b
Get the delegation right for InstVisitor.
...
llvm-svn: 32025
2006-11-29 21:37:00 +00:00
Bill Wendling
43476f030c
Oops! didn't mean to put this in there yet.
...
llvm-svn: 32014
2006-11-29 07:31:23 +00:00
Chris Lattner
d00734a230
add a hook to allow targets to hack on inline asms to lower them to llvm
...
when they want to.
llvm-svn: 31997
2006-11-29 01:12:32 +00:00
Bill Wendling
a29e6c5ec9
Converted to using llvm streams instead of <iostream>s
...
llvm-svn: 31992
2006-11-29 00:39:47 +00:00
Bill Wendling
4effa38086
Replacing std::iostreams with llvm iostreams. Some of these changes involve
...
adding a temporary wrapper around the ostream to make it friendly to
functions expecting an LLVM stream. This should be fixed in the future.
llvm-svn: 31990
2006-11-29 00:19:40 +00:00
Bill Wendling
5def3648f4
Support for llvm_ostreams.
...
llvm-svn: 31988
2006-11-28 23:31:42 +00:00
Bill Wendling
4688855715
Support for llvm streams.
...
llvm-svn: 31982
2006-11-28 22:45:17 +00:00
Chris Lattner
339c732e0b
Add a helper function
...
llvm-svn: 31981
2006-11-28 22:32:35 +00:00
Bill Wendling
4157840bd6
Added a temporary hack to get the llvm-streams to work for future checkins.
...
llvm-svn: 31978
2006-11-28 22:21:29 +00:00
Andrew Lenharth
c51f451af5
Add per-target support for asm translation in the cbe
...
llvm-svn: 31972
2006-11-28 19:52:20 +00:00
Evan Cheng
40044ef4b0
Fix indentation.
...
llvm-svn: 31956
2006-11-28 02:22:51 +00:00
Bill Wendling
c65e0ffb78
Added helper function to transition to using llvm streams.
...
llvm-svn: 31953
2006-11-28 02:07:29 +00:00
Evan Cheng
98fa7ab4d7
Change MachineInstr ctor's to take a TargetInstrDescriptor reference instead
...
of opcode and number of operands.
llvm-svn: 31947
2006-11-27 23:37:22 +00:00
Bill Wendling
250560d106
Protect against null streams.
...
llvm-svn: 31937
2006-11-27 10:45:49 +00:00
Reid Spencer
992d9788b3
For PR950:
...
The long awaited CAST patch. This introduces 12 new instructions into LLVM
to replace the cast instruction. Corresponding changes throughout LLVM are
provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the
exception of 175.vpr which fails only on a slight floating point output
difference.
llvm-svn: 31931
2006-11-27 01:05:10 +00:00
Bill Wendling
78be822ec4
Add method that will take a function pointer so that it can handle things
...
like "llvm_cerr << std::flush";
llvm-svn: 31926
2006-11-26 10:51:51 +00:00
Chris Lattner
31f45746ad
setOperand should not zap the operand list or add implicit operands to an
...
instruction. Doing so breaks the FP stackifier, the alpha branch selector
the sparc fpmover.
This fixes PR1012 and CodeGen/X86/fp-stack-compare.ll
llvm-svn: 31876
2006-11-20 17:57:22 +00:00
Reid Spencer
6e34ef887b
For PR950:
...
First in a series of patches to convert SetCondInst into ICmpInst and
FCmpInst using only two opcodes and having the instructions contain their
predicate value. Nothing uses these classes yet. More patches to follow.
llvm-svn: 31867
2006-11-20 01:22:35 +00:00
Chris Lattner
4715f9a02e
MachineInstr includes this
...
llvm-svn: 31858
2006-11-18 21:48:05 +00:00
Chris Lattner
3a34164b82
Implement operator<< for machine basic blocks to make it easier to dump them.
...
llvm-svn: 31857
2006-11-18 21:47:36 +00:00
Jim Laskey
bc27bd0c6e
Hopefully a good crack at making debugging work on intel -disable-fp-elim.
...
llvm-svn: 31830
2006-11-17 21:19:15 +00:00
Bill Wendling
48bd5207a4
Used llvm_ostream instead of std::ostream objects. This will reduce use
...
of the icky <iostream> class.
llvm-svn: 31818
2006-11-17 09:52:49 +00:00
Bill Wendling
dbbb5112c5
Added wrappers for the std::cerr/std::cout objects. The wrappers will
...
soon replace all uses of those objects.
llvm-svn: 31817
2006-11-17 09:51:22 +00:00
Bill Wendling
efe40f4316
#ifndef NDEBUG the "if (Stream) ..." stuff.
...
llvm-svn: 31803
2006-11-17 01:43:48 +00:00
Evan Cheng
6f5962e79f
Add opcode to TargetInstrDescriptor.
...
llvm-svn: 31802
2006-11-17 01:36:01 +00:00
Bill Wendling
d2627f76dd
Adjusted the // comments so that doxygen picks them up.
...
llvm-svn: 31801
2006-11-17 01:13:12 +00:00
Bill Wendling
748f1ae70b
Added "DOUT" macro. This is used as a replacement for the std::cerr
...
stream. It centralizes the use of std::cerr so that static c'tor/d'tors
aren't scattered around all over the place. The way to use it is like this:
DOUT << "This is a status line: " << Var << "\n";
If "-debug" is specified, it will print. Otherwise, it'll not print. If
NDEBUG is defined, the DOUT does nothing.
llvm-svn: 31798
2006-11-17 00:49:12 +00:00
Evan Cheng
2503d332cd
Allow target to specify alignment for function stub.
...
llvm-svn: 31788
2006-11-16 20:04:54 +00:00
Bill Wendling
9cea24d40e
Added "removeRange", which takes and removes an entire LiveRange.
...
llvm-svn: 31781
2006-11-16 02:43:32 +00:00
Bill Wendling
985d7e09ec
Added a new method "CreateNewLiveInterval" which, given a list of
...
LiveRanges, creates a new LiveInterval from them. The LiveRanges should
have existed already in another LiveInterval, but removed.
llvm-svn: 31780
2006-11-16 02:41:50 +00:00
Evan Cheng
40fe5349ea
ChangeToRegister should clear IsImp bit.
...
llvm-svn: 31772
2006-11-15 23:55:03 +00:00
Evan Cheng
d79427b22c
Do away with kill / dead maps. Move kill / dead info onto MI's.
...
llvm-svn: 31759
2006-11-15 20:51:59 +00:00
Evan Cheng
21b524d10f
Add copyKillDeadInfo to copy kill / dead info; other minor updates.
...
llvm-svn: 31758
2006-11-15 20:48:17 +00:00
Devang Patel
6060a1e3dc
Add run(Function &F) support in FunctionPassManager_New
...
llvm-svn: 31756
2006-11-15 19:39:54 +00:00
Chris Lattner
ccbbe940eb
Simplify IntrinsicLowering and clarify that it is only for use by the
...
CBE and interpreter.
llvm-svn: 31755
2006-11-15 18:00:10 +00:00
Reid Spencer
aea6da0b13
Add a method to get the bit width of a packed type.
...
llvm-svn: 31750
2006-11-15 03:02:41 +00:00
Devang Patel
cb9cd60f59
Add doInitialization and doFinalization support in FunctionManager_New.
...
llvm-svn: 31747
2006-11-15 02:07:25 +00:00
Andrew Lenharth
6bf99e12a8
A shim over other AA impls to catch incorrect uses
...
llvm-svn: 31724
2006-11-14 05:21:04 +00:00
Reid Spencer
f65a8539ec
Discard code that supported old bytecode formats. This makes the Bytecode
...
Reader code much easier to read and maintain. Backwards compatibility from
version 5 format has been retained. Older formats will produce an error.
llvm-svn: 31723
2006-11-14 04:47:22 +00:00
Evan Cheng
0e82270ff2
Matches MachineInstr changes.
...
llvm-svn: 31712
2006-11-13 23:36:35 +00:00
Evan Cheng
7cabf9d02c
- Let MachineInstr ctors add implicit def and use operands. Other operands
...
will be inserted before these operands. If the opcode changes (by
setOpcode), the implicit operands are updated as well.
- Added IsKill, IsDead fields to MachineOperand in preparation for changes
that move kill / dead info to MachineInstr's.
llvm-svn: 31711
2006-11-13 23:34:06 +00:00
Reid Spencer
90ded85f8f
Revert premature patch.
...
llvm-svn: 31692
2006-11-11 23:06:47 +00:00
Reid Spencer
e43e97e798
Document new constant expr operators, rename bitconvert as bitcast.
...
llvm-svn: 31691
2006-11-11 22:34:59 +00:00
Reid Spencer
6b01730b52
Minor style fixes from review.
...
llvm-svn: 31685
2006-11-11 19:59:25 +00:00
Reid Spencer
72bcd0530b
For PR998:
...
Fix an infinite loop in the Linker and a few other assorted link problems.
Patch contributed by Scott Michel. Thanks, Scott!
llvm-svn: 31680
2006-11-11 11:54:25 +00:00
Evan Cheng
7dab9abfb8
Add methods to add implicit def use operands to a MI.
...
llvm-svn: 31675
2006-11-11 10:20:02 +00:00
Devang Patel
785d727d1c
Move CommonPassManagerImpl from PassManager.h to PassManager.cpp
...
llvm-svn: 31666
2006-11-11 01:31:05 +00:00
Devang Patel
124cfa3f26
Keep track if analysis made available by the pass.
...
llvm-svn: 31664
2006-11-11 01:10:19 +00:00
Devang Patel
1bff0f0174
Keep track of analysis required by the passes. Force use of new pass
...
manager if a pass does not preserve analysis that is used by other
passes.
llvm-svn: 31659
2006-11-11 00:42:16 +00:00
Devang Patel
a9504181aa
s/PassManagerAnalysisHelper/CommonPassManagerImpl
...
Inherit CommonPassManagerImpl from Pass.
llvm-svn: 31642
2006-11-10 21:33:13 +00:00
Jim Laskey
900444d686
Shut up the warning.
...
llvm-svn: 31635
2006-11-10 14:44:12 +00:00
Evan Cheng
b5ca73688b
Add implicit def / use operands to MachineInstr.
...
llvm-svn: 31632
2006-11-10 08:32:14 +00:00
Chris Lattner
89e9bb620a
allow clients to indicate that they never want lazy compilation.
...
llvm-svn: 31600
2006-11-09 19:30:47 +00:00
Evan Cheng
c050bb298f
Add a mechanism to specify whether a target supports a particular indexed load / store.
...
llvm-svn: 31597
2006-11-09 18:56:43 +00:00
Evan Cheng
89ee587963
Rename ISD::MemOpAddrMode to ISD::MemIndexedMode
...
llvm-svn: 31595
2006-11-09 17:55:04 +00:00
Jim Laskey
c7044db565
math.h creates ambiguity
...
llvm-svn: 31591
2006-11-09 08:26:22 +00:00
Jim Laskey
03b3ec783d
math.h for C's sake.
...
llvm-svn: 31590
2006-11-09 08:05:39 +00:00
Evan Cheng
6b7d127df9
getPostIndexedAddressParts change: passes in load/store instead of its loaded / stored VT.
...
llvm-svn: 31584
2006-11-09 04:29:46 +00:00
Evan Cheng
8743c67826
Remove M_2_ADDR_FLAG.
...
llvm-svn: 31583
2006-11-09 02:22:54 +00:00
Jim Laskey
c42c7476ce
Make sure <cmath> comes first
...
llvm-svn: 31559
2006-11-08 18:48:14 +00:00
Jim Laskey
092c00cb14
Add backup support for HUGH_VALF.
...
llvm-svn: 31553
2006-11-08 17:19:29 +00:00
Jim Laskey
8ffcf505f2
Wasn't handling case of when machine move labels were undefined.
...
llvm-svn: 31548
2006-11-08 14:16:39 +00:00
Devang Patel
0aa28c8146
Split FunctionPassManager_New into FunctionPassManager_New and FunctionPassManagerImpl_New.
...
FunctionPassManagerImpl_New implements the pass manager.
FunctionPassManager_New is the public interface.
llvm-svn: 31547
2006-11-08 10:44:40 +00:00
Devang Patel
12982590fa
Split PassManager_New into PassManager_New and PassManagerImpl_New.
...
PassManagerImpl_New implements the pass manager.
PassManager_New is the public interface.
llvm-svn: 31546
2006-11-08 10:29:57 +00:00
Devang Patel
03dc236bdd
Move BasicBlockPassManager_New, FunctionPassManager_New and
...
ModulePassManager_New class declarations from PassManager.h
to PassManager.cpp
llvm-svn: 31545
2006-11-08 10:05:38 +00:00
Reid Spencer
da1f5b882a
For PR950:
...
This patch converts the old SHR instruction into two instructions,
AShr (Arithmetic) and LShr (Logical). The Shr instructions now are not
dependent on the sign of their operands.
llvm-svn: 31542
2006-11-08 06:47:33 +00:00
Devang Patel
d3961139f4
Beautify.
...
Clarify comments.
llvm-svn: 31529
2006-11-08 00:19:31 +00:00
Devang Patel
283833c127
Derive new pass managers from PassManagerAnalysisHelper.
...
llvm-svn: 31525
2006-11-07 22:44:55 +00:00
Devang Patel
fece2777c4
Introduce PassManagerAnalysisHelper.
...
llvm-svn: 31522
2006-11-07 22:35:17 +00:00
Devang Patel
6d4ef98c03
Add PassManager_New.
...
llvm-svn: 31521
2006-11-07 22:23:34 +00:00
Devang Patel
1082a50ecf
Fix comment.
...
llvm-svn: 31518
2006-11-07 22:04:53 +00:00
Devang Patel
cacc940858
Add ModulePassManager_New.
...
llvm-svn: 31517
2006-11-07 22:03:15 +00:00
Devang Patel
9a2c6538dd
Add FunctionPassManager_New.
...
llvm-svn: 31515
2006-11-07 21:49:50 +00:00
Devang Patel
b7d2cd5ec2
Add BasicBlockPassManager_New.
...
llvm-svn: 31513
2006-11-07 21:31:57 +00:00
Jim Laskey
7e0f0b2d24
1. Add a pass to fold debug label instructions so a debug info client can detect
...
empty ranges.
2. Reorg how MachineDebugInfo maintains changes to debug labels.
3. Have dwarf writer use debug label info to simplify scopes and source line
coorespondence.
4. Revert the merging of compile units until I can get the bugs ironed out.
llvm-svn: 31507
2006-11-07 19:33:46 +00:00
Evan Cheng
db0add3bcb
Added target hook for post-indexed memory ops transformation.
...
llvm-svn: 31499
2006-11-07 09:04:16 +00:00
Chris Lattner
b6be2b873f
Add a new operand flag to mark which operand is the first predicate operand
...
of an M_PREDICATED instruction.
llvm-svn: 31482
2006-11-06 23:53:08 +00:00
Chris Lattner
d7138e5f2d
add a flag so that predicated instructions can be recognized by branch
...
folding
llvm-svn: 31479
2006-11-06 21:44:17 +00:00
Reid Spencer
3d33eff52e
Fix a small bug noticed on code review.
...
llvm-svn: 31476
2006-11-06 18:47:14 +00:00
Jeff Cohen
e1003da1a2
Unbreak VC++ build.
...
llvm-svn: 31464
2006-11-05 19:31:28 +00:00
Reid Spencer
ac23a62ab3
Add a -disable-cbe-printf-a option so that the output of the C Backend
...
stands a chance of being compiled with a non C99 C compiler. The default
is enabled so you must specifically disable this feature if you want the
CBE output compiled with an older C compiler.
llvm-svn: 31461
2006-11-05 17:08:18 +00:00
Evan Cheng
ae357e5044
Added getIndexedStore.
...
llvm-svn: 31458
2006-11-05 09:30:09 +00:00
Evan Cheng
a4bfb23119
Move to operand constraints for two-address instructions.
...
llvm-svn: 31452
2006-11-04 09:42:53 +00:00
Evan Cheng
047a33d3e3
Fix comments.
...
llvm-svn: 31414
2006-11-03 07:31:32 +00:00
Evan Cheng
466e20fca2
Rename
...
llvm-svn: 31413
2006-11-03 07:21:16 +00:00
Evan Cheng
9ebbced355
Added a target specific hook to check whether / how a node can be transformed
...
into a pair of base / offset nodes for pre-indexed load / store ops.
llvm-svn: 31407
2006-11-03 03:04:06 +00:00
Evan Cheng
b19289a84d
Add isPredecessor to check whether a node is another's predecessor.
...
llvm-svn: 31406
2006-11-03 03:02:18 +00:00
Chris Lattner
f6b840a1ae
silence warning
...
llvm-svn: 31402
2006-11-03 01:45:13 +00:00
Jim Laskey
c770e68c11
Allow FoldingSet clients to pump up the initial hash size.
...
llvm-svn: 31377
2006-11-02 14:21:26 +00:00
Reid Spencer
1abf69e923
For PR950:
...
Replace the REM instruction with UREM, SREM and FREM.
llvm-svn: 31369
2006-11-02 01:53:59 +00:00
Chris Lattner
4cb79a5f9d
generalize this api
...
llvm-svn: 31365
2006-11-02 01:39:10 +00:00
Evan Cheng
1da5ee8485
Rename
...
llvm-svn: 31364
2006-11-01 23:18:32 +00:00
Evan Cheng
b1ac9f6c12
Added getTiedToSrcOperand() to check for two-address'ness.
...
llvm-svn: 31360
2006-11-01 23:00:31 +00:00
Evan Cheng
83b0827a2e
Add a printSetLabel that takes two id's.
...
llvm-svn: 31347
2006-11-01 09:23:08 +00:00
Evan Cheng
c566892bd5
Add operand constraints to TargetInstrInfo.
...
llvm-svn: 31333
2006-11-01 00:27:05 +00:00
Chris Lattner
d9afd310a6
Change the prototype for TargetLowering::isOperandValidForConstraint
...
llvm-svn: 31318
2006-10-31 19:40:43 +00:00
Anton Korobeynikov
9867bf5eaf
Unbreaking static ctors patch.
...
Defaulting second arguments of SwitchTo*Section, this should make things
somehow clearer.
llvm-svn: 31306
2006-10-31 06:11:06 +00:00
Reid Spencer
e01994f8b1
Don't mislead readers by claiming a variable is defaulted to false when
...
the default is actually true.
llvm-svn: 31300
2006-10-30 22:46:49 +00:00
Reid Spencer
db06ed9156
Add debug support for X86/ELF targets (Linux). This allows llvm-gcc4
...
generated object modules to be debugged with gdb. Hopefully this helps
pre-release debugging.
llvm-svn: 31299
2006-10-30 22:32:30 +00:00
Jim Laskey
1ccb7c5d03
Simplify DwarfWriter header.
...
llvm-svn: 31295
2006-10-30 13:35:07 +00:00
Evan Cheng
7437ed9f30
Added a new SDNode type: BR_JT for jumptable branch.
...
llvm-svn: 31292
2006-10-30 07:59:36 +00:00
Chris Lattner
5c33fa2a37
add a new form of insert.
...
llvm-svn: 31290
2006-10-30 05:07:51 +00:00
Chris Lattner
9a99a284dc
Add SmallString a (currently) minimal class that adapts SmallVector to be
...
more string-like.
llvm-svn: 31289
2006-10-30 03:39:20 +00:00
Chris Lattner
593e2361b4
add a method
...
llvm-svn: 31288
2006-10-30 03:14:15 +00:00
Chris Lattner
08b405916c
add newline at end of file
...
llvm-svn: 31287
2006-10-29 23:47:01 +00:00
Chris Lattner
1db6efc297
add a highly efficient hash table that is specialized for mapping C strings
...
to some other type.
llvm-svn: 31286
2006-10-29 23:42:03 +00:00
Chris Lattner
6a498a7658
Add a new llvm::Allocator abstraction, which will be used by a container
...
I'm about to add. This is similar to, but necessarily different than, the
STL allocator class.
llvm-svn: 31285
2006-10-29 22:08:03 +00:00
Chris Lattner
fbe8021392
add an assertion
...
llvm-svn: 31272
2006-10-28 18:21:51 +00:00
Chris Lattner
2d12a0cb70
remove dead method
...
llvm-svn: 31271
2006-10-28 18:21:29 +00:00
Chris Lattner
bcd43c46ab
add a method for hacking on JTIdx's
...
llvm-svn: 31270
2006-10-28 18:18:36 +00:00
Chris Lattner
3c19558b6b
const'ify jump table stuff
...
llvm-svn: 31269
2006-10-28 18:17:09 +00:00
Chris Lattner
fa7bf778e5
add a method for deleting dead jump tables.
...
llvm-svn: 31268
2006-10-28 18:12:00 +00:00
Chris Lattner
394da08e59
determine whether a change was made
...
llvm-svn: 31265
2006-10-28 18:00:05 +00:00
Chris Lattner
dcfee77788
add another target hook for branch folding.
...
llvm-svn: 31262
2006-10-28 17:29:57 +00:00
Chris Lattner
65f872288d
add option to isCriticalEdge
...
llvm-svn: 31258
2006-10-28 06:58:17 +00:00
Chris Lattner
85bc826ca6
Expose a smarter way to break critical edges.
...
llvm-svn: 31256
2006-10-28 06:44:56 +00:00
Jim Laskey
f5452dfa52
Editorial clean up.
...
llvm-svn: 31250
2006-10-28 01:34:21 +00:00
Chris Lattner
44b3550217
add a method
...
llvm-svn: 31249
2006-10-28 01:24:05 +00:00
Jim Laskey
ef56bc9680
Switch over from SelectionNodeCSEMap to FoldingSet.
...
llvm-svn: 31240
2006-10-27 23:46:08 +00:00
Jim Laskey
e65b6c3c60
Clean up
...
llvm-svn: 31238
2006-10-27 22:52:02 +00:00
Chris Lattner
05159debc4
Turn conditions like x<Y|z==q into multiple blocks.
...
This compiles Regression/CodeGen/X86/or-branch.ll into:
_foo:
subl $12, %esp
call L_bar$stub
movl 20(%esp), %eax
movl 16(%esp), %ecx
cmpl $5, %eax
jl LBB1_1 #cond_true
LBB1_3: #entry
testl %ecx, %ecx
jne LBB1_2 #UnifiedReturnBlock
LBB1_1: #cond_true
call L_bar$stub
addl $12, %esp
ret
LBB1_2: #UnifiedReturnBlock
addl $12, %esp
ret
instead of:
_foo:
subl $12, %esp
call L_bar$stub
movl 20(%esp), %eax
movl 16(%esp), %ecx
cmpl $4, %eax
setg %al
testl %ecx, %ecx
setne %cl
testb %cl, %al
jne LBB1_2 #UnifiedReturnBlock
LBB1_1: #cond_true
call L_bar$stub
addl $12, %esp
ret
LBB1_2: #UnifiedReturnBlock
addl $12, %esp
ret
And on ppc to:
cmpwi cr0, r29, 5
blt cr0, LBB1_1 ;cond_true
LBB1_3: ;entry
cmplwi cr0, r30, 0
bne cr0, LBB1_2 ;UnifiedReturnBlock
instead of:
cmpwi cr7, r4, 4
mfcr r2
addic r4, r3, -1
subfe r30, r4, r3
rlwinm r29, r2, 30, 31, 31
and r2, r29, r30
cmplwi cr0, r2, 0
bne cr0, LBB1_2 ;UnifiedReturnBlock
llvm-svn: 31230
2006-10-27 21:36:01 +00:00
Jim Laskey
3d1116e32c
Apply editorials.
...
llvm-svn: 31218
2006-10-27 18:05:12 +00:00
Jim Laskey
69b57830c2
Breakout folding hash set from SelectionDAGCSEMap.
...
llvm-svn: 31215
2006-10-27 16:16:16 +00:00
Evan Cheng
d2d6b83b83
Indexed load / store changes.
...
llvm-svn: 31208
2006-10-26 21:52:24 +00:00
Devang Patel
ac5109eec8
Save temp. bc files when saveTemps flag is true. Use final output file
...
name supplied by linker to construct temp bc file names.
Remove tabs.
llvm-svn: 31205
2006-10-26 20:46:22 +00:00
Evan Cheng
5963dcb6e8
Added CStringSection.
...
llvm-svn: 31202
2006-10-26 19:16:20 +00:00
Evan Cheng
9d0bfecda6
Add isCString() - returns true if a ConstantArray is a CString.
...
llvm-svn: 31201
2006-10-26 19:15:05 +00:00
Chris Lattner
257998ec14
Add isFPOrFPVector() method, which indicates if a type is either FP or a
...
vector of FP types.
llvm-svn: 31198
2006-10-26 18:22:45 +00:00
Reid Spencer
6833ffe8b8
For PR950:
...
Make necessary changes to support DIV -> [SUF]Div. This changes llvm to
have three division instructions: signed, unsigned, floating point. The
bytecode and assembler are bacwards compatible, however.
llvm-svn: 31195
2006-10-26 06:15:43 +00:00
Devang Patel
3c1afad503
Supply alignment info to linker through LLVMSymbol.
...
llvm-svn: 31181
2006-10-25 18:10:07 +00:00
Devang Patel
cb480ce29c
TargetData is not subclassed. So no need to have virtual method.
...
llvm-svn: 31173
2006-10-24 20:48:29 +00:00
Devang Patel
0691019e12
Move getPreferredAlignmentLog from AsmPrinter to TargetData
...
llvm-svn: 31171
2006-10-24 20:32:14 +00:00
Devang Patel
c114a200c5
Instead of hard coding global prefix, use TargetAsmInfo.
...
Add LTO destructor.
llvm-svn: 31168
2006-10-24 18:41:02 +00:00
Chris Lattner
79a1ca0a61
Generalize CaseBlock a bit more:
...
Rename LHSBB/RHSBB to TrueBB/FalseBB. Allow the RHS value to be null,
in which case the LHS is treated as a bool.
llvm-svn: 31166
2006-10-24 17:57:59 +00:00
Chris Lattner
bc4f0e8b56
update comment
...
llvm-svn: 31165
2006-10-24 17:41:22 +00:00
Chris Lattner
fc8e70297e
generalize 'CaseBlock'. It really allows any comparison to be inserted.
...
llvm-svn: 31161
2006-10-24 17:03:35 +00:00
Rafael Espindola
b35e4b16ae
fix assert comment
...
llvm-svn: 31154
2006-10-24 14:47:28 +00:00
Jim Laskey
605cf8cc6a
Tighter data structure for deleted debug labels.
...
llvm-svn: 31152
2006-10-24 11:50:43 +00:00
Chris Lattner
eb7ccde058
add missing dcb* intrinsics
...
llvm-svn: 31147
2006-10-24 01:07:39 +00:00
Chris Lattner
108484eb68
add two helper methods
...
llvm-svn: 31143
2006-10-23 23:35:35 +00:00
Devang Patel
5ff2903a58
Add removeModule().
...
llvm-svn: 31142
2006-10-23 23:12:26 +00:00
Andrew Lenharth
b22538d23c
change this back
...
llvm-svn: 31134
2006-10-23 19:52:54 +00:00
Jim Laskey
f6a28d7161
More complete solution to deleting blocks and debug info.
...
llvm-svn: 31129
2006-10-23 14:56:37 +00:00
Chris Lattner
9b527c4477
New, wonderful isSuccessor method
...
llvm-svn: 31103
2006-10-21 06:50:05 +00:00
Chris Lattner
f959f98fda
typo
...
llvm-svn: 31089
2006-10-20 22:44:45 +00:00
Chris Lattner
b9ea8d6ddd
add isIdenticalTo method to machineinstr/operand.
...
llvm-svn: 31087
2006-10-20 22:39:36 +00:00
Chris Lattner
684db58e17
add method
...
llvm-svn: 31066
2006-10-20 18:00:03 +00:00
Reid Spencer
82347acc95
Fix a comment to be accurate.
...
llvm-svn: 31064
2006-10-20 07:24:55 +00:00
Reid Spencer
d414793dbc
For PR950:
...
This patch implements the first increment for the Signless Types feature.
All changes pertain to removing the ConstantSInt and ConstantUInt classes
in favor of just using ConstantInt.
llvm-svn: 31063
2006-10-20 07:07:24 +00:00
Chris Lattner
5b4ca99562
add a method to determine whether evaluation of a constant can trap.
...
llvm-svn: 31059
2006-10-20 00:27:06 +00:00
Owen Anderson
12374f766b
Add support for the new "target data" information in .ll files. This provides
...
a better encoding of the targets data layout, rather than trying to guess it
from the endianness and pointersize like before.
llvm-svn: 31030
2006-10-18 02:21:12 +00:00
Chris Lattner
22e311fe77
add a method to remove a line # record.
...
llvm-svn: 31025
2006-10-17 23:16:42 +00:00
Chris Lattner
7353b07275
expose DWARF_LABEL opcode# so the branch folder can update debug info properly.
...
llvm-svn: 31024
2006-10-17 22:41:45 +00:00
Chris Lattner
ea84388ac0
update comment
...
llvm-svn: 31023
2006-10-17 22:12:15 +00:00
Chris Lattner
dd39b9d358
Do not leak all of the SourceLineInfo objects. Do not bother mallocing each
...
one separately.
llvm-svn: 31022
2006-10-17 22:06:46 +00:00
Chris Lattner
9771af72c1
minor cleanups
...
llvm-svn: 31021
2006-10-17 21:51:44 +00:00
Evan Cheng
582d22a821
Split PRE_INDEXED to PRE_INC / PRE_DEC and similarly for POST_INDEXED.
...
llvm-svn: 31015
2006-10-17 21:12:56 +00:00
Jim Laskey
37679253ae
Clean up interface to getGlobalLinkName.
...
llvm-svn: 31001
2006-10-17 17:17:24 +00:00
Jim Laskey
620df3ea5f
Basic support for getGlobalLinkName.
...
llvm-svn: 30997
2006-10-17 13:41:07 +00:00
Jim Laskey
06f4428abc
Pass AliasAnalysis thru to DAGCombiner.
...
llvm-svn: 30984
2006-10-16 20:52:31 +00:00
Chris Lattner
3bfbb5eabd
add a ReplaceMBBInJumpTables method
...
llvm-svn: 30983
2006-10-16 20:41:42 +00:00
Evan Cheng
c8b9d15614
Start checking from the root of the matched sub-tree.
...
llvm-svn: 30957
2006-10-14 08:30:53 +00:00
Chris Lattner
25ad62d132
When SimplifySetCC was moved to the DAGCombiner, it was never removed from
...
SelectionDAG and it has since bitrotted. Remove the copy from SelectionDAG.
Next, remove the constant folding piece of DAGCombiner::SimplifySetCC into
a new FoldSetCC method which can be used by getNode() and SimplifySetCC.
This fixes obscure bugs.
llvm-svn: 30952
2006-10-14 00:41:01 +00:00
Evan Cheng
fe5bb5dbe6
Merge ISD::TRUNCSTORE to ISD::STORE. Switch to using StoreSDNode.
...
llvm-svn: 30945
2006-10-13 21:14:26 +00:00
Chris Lattner
b441d8e8ce
it is easier to implement these when they are virtual
...
llvm-svn: 30944
2006-10-13 21:02:27 +00:00
Chris Lattner
520bf168f5
allow branch reversal to fail
...
llvm-svn: 30943
2006-10-13 20:59:31 +00:00
Bill Wendling
85f53a4427
Corrected formatting.
...
llvm-svn: 30942
2006-10-13 20:53:50 +00:00
Chris Lattner
f8eaaded24
replace the existing branch inspection/modification APIs with something more
...
useful and general.
llvm-svn: 30940
2006-10-13 20:44:01 +00:00
Chris Lattner
63ec35db20
Expose method and ivars for measuring inline asm length properly.
...
llvm-svn: 30934
2006-10-13 17:50:07 +00:00
Chris Lattner
cf5bfb0e80
simplify trivial function
...
llvm-svn: 30924
2006-10-12 23:50:28 +00:00
Evan Cheng
61afb767eb
Add RemoveDeadNode to remove a dead node and its (potentially) dead operands.
...
llvm-svn: 30916
2006-10-12 20:34:05 +00:00
Evan Cheng
9b31a4d4ed
Naming consistency.
...
llvm-svn: 30878
2006-10-11 07:10:22 +00:00
Andrew Lenharth
4b783303e5
Jimptables working again on alpha.
...
As a bonus, use the GOT node instead of the AlphaISD::GOT for internal stuff.
llvm-svn: 30873
2006-10-11 04:29:42 +00:00
Chris Lattner
aa1741fc87
add two helper methods.
...
llvm-svn: 30869
2006-10-11 03:58:02 +00:00
Evan Cheng
8090a67f40
Comments; getChain(), getBasePtr(), etc. should return a SDOperand by value.
...
llvm-svn: 30850
2006-10-10 01:44:58 +00:00
Evan Cheng
967d6af1d2
Merging ISD::LOAD and ISD::LOADX. Added LoadSDNode to represent load nodes.
...
Chain and address ptr remains as operands. SrcValue, extending mode, extending
VT (or rather loaded VT before extension) are now instance variables of
LoadSDNode.
Introduce load / store addressing modes to represent pre- and post-indexed
load and store. Also added an additional operand offset that is only used in
post-indexed mode (i.e. base ptr += offset after load/store).
Added alignment info (not yet used) and isVolatile fields.
llvm-svn: 30843
2006-10-09 20:55:20 +00:00
Andrew Lenharth
6223a6ce63
Fix build error in gcc 3.4 and make more this general
...
llvm-svn: 30839
2006-10-09 19:05:44 +00:00
Nick Lewycky
3c69e2291b
Fix usage example.
...
llvm-svn: 30837
2006-10-09 18:33:08 +00:00
Chris Lattner
e3f0524253
Fix PR897
...
llvm-svn: 30820
2006-10-08 22:28:34 +00:00
Chris Lattner
77545e4a28
Add support for targets to declare that they use a GOT
...
llvm-svn: 30777
2006-10-06 22:46:34 +00:00
Chris Lattner
621a182abd
add an accessor
...
llvm-svn: 30761
2006-10-06 01:16:29 +00:00
Evan Cheng
c9e079d0c1
Add getStore() helper function to create ISD::STORE nodes.
...
llvm-svn: 30758
2006-10-05 22:57:11 +00:00
Chris Lattner
14ad447136
Add insertelement/extractelement helper ctors.
...
llvm-svn: 30750
2006-10-05 06:24:58 +00:00
Chris Lattner
94d1cfd32d
remove JumpTableTextSection
...
llvm-svn: 30746
2006-10-05 03:14:23 +00:00
Chris Lattner
068190eb91
Pass the MachineFunction into EmitJumpTableInfo.
...
llvm-svn: 30742
2006-10-05 03:01:21 +00:00
Chris Lattner
da8321b52e
move getSectionForFunction to AsmPrinter.
...
llvm-svn: 30734
2006-10-05 02:41:43 +00:00
Chris Lattner
6ba6d0e937
Give TargetAsmInfo a virtual dtor, add a new getSectionForFunction method.
...
llvm-svn: 30732
2006-10-05 00:35:16 +00:00
Evan Cheng
494e8e6971
Combine ISD::EXTLOAD, ISD::SEXTLOAD, ISD::ZEXTLOAD into ISD::LOADX. Add an
...
extra operand to LOADX to specify the exact value extension type.
llvm-svn: 30714
2006-10-04 00:56:09 +00:00
Chris Lattner
a05ee6de92
ADd a method
...
llvm-svn: 30707
2006-10-03 20:16:45 +00:00
Chris Lattner
77aa419991
Provide a function that ensures MBB numbering is dense and inorder. This
...
can be used by MachineFunctionPasses who need this property.
llvm-svn: 30706
2006-10-03 19:18:57 +00:00
Chris Lattner
4b7c9854bf
clean up use of 'explicit'. This is PR934.
...
Patch contributed by Kevin Sopp!
llvm-svn: 30701
2006-10-03 17:09:12 +00:00
Bill Wendling
9b15198af4
Fix for PR929. The PHI nodes were being gone through for each instruction
...
in a successor block for every block...resulting in some O(N^k) algorithm
which wasn't very good for performance. Calculating this information up
front and keeping it in a map made it much faster.
llvm-svn: 30697
2006-10-03 07:20:20 +00:00
Chris Lattner
895cf34500
Move DominatorTree to immediately follow DominatorTreeBase
...
llvm-svn: 30693
2006-10-03 05:24:56 +00:00
Jim Laskey
3d44b337d9
Add ability to annotate (color) nodes in a viewGraph.
...
llvm-svn: 30686
2006-10-02 12:26:53 +00:00
Chris Lattner
1ab553b24d
Override use_back in instruction/basicblock to provide more type information.
...
llvm-svn: 30678
2006-09-30 22:20:34 +00:00
Chris Lattner
78e10ebf8a
Add a version of the globalvariable ctor that inserts at a specific location.
...
llvm-svn: 30677
2006-09-30 21:31:26 +00:00
Chris Lattner
220e198fbe
Now that ConstantBool::True/False are gone, we can modify Type.cpp to
...
eliminate its static dtors, without having code that depends on order of
initialization. Eliminate static ctors/dtors from Type.cpp.
llvm-svn: 30667
2006-09-28 23:38:07 +00:00
Chris Lattner
155e6b8403
Eliminate ConstantBool::True and ConstantBool::False. Instead, provide
...
ConstantBool::getTrue() and ConstantBool::getFalse().
llvm-svn: 30666
2006-09-28 23:36:21 +00:00
Chris Lattner
b512048344
refactor critical edge breaking out into the SplitCritEdgesForPHIConstants method.
...
This is a baby step towards fixing PR925.
llvm-svn: 30643
2006-09-28 06:17:10 +00:00
Chris Lattner
7e0e7c7bc9
remove dead method
...
llvm-svn: 30640
2006-09-28 00:37:43 +00:00
Chris Lattner
30da1ba0a2
new helper class to provide more explicit management of static ctor/dtors.
...
llvm-svn: 30638
2006-09-28 00:31:55 +00:00
Evan Cheng
51144ea51c
- Added a hook processFunctionBeforeCalleeSaveScn(). This is called by PEI just
...
before it determines which callee-save registers are to be spilled. This allows
the target to make changes such as forcing certain physical registers to be
spilled.
- Modified comments. It's important to note the order of registers in the array
returns by getCalleeSaveRegs() determines the order of callee save spill code.
llvm-svn: 30635
2006-09-28 00:07:19 +00:00
Chris Lattner
ddf92db1ca
Add support for ${:comment}, which expands to the current target's comment
...
character, and ${:uid} which expands to a unique ID for the MachineInstr.
More can be added if/when they are needed.
llvm-svn: 30619
2006-09-26 23:59:50 +00:00
Chris Lattner
167aa73273
Add support for targets that want to do something with the llvm.used list,
...
because they have an aggressive linker that does dead code stripping.
llvm-svn: 30604
2006-09-26 03:38:18 +00:00
Chris Lattner
bab51c66fc
order this properly to avoid warnings in TargetAsmInfo.cpp. Add a comment
...
in a format that matches every other ivars in this class.
llvm-svn: 30603
2006-09-25 22:38:36 +00:00
Andrew Lenharth
58f5a24f0c
Add support for other relocation bases to jump tables, as well as custom asm directives
...
llvm-svn: 30593
2006-09-24 19:45:58 +00:00
Chris Lattner
941d6d205a
remove misleading comment
...
llvm-svn: 30585
2006-09-23 06:09:45 +00:00
Chris Lattner
bf0b610dfa
add method, correct comment
...
llvm-svn: 30584
2006-09-23 04:03:45 +00:00
Devang Patel
8248ba3afc
Use iterative algorith to assign DFS number. This reduces
...
call stack depth.
llvm-svn: 30575
2006-09-22 01:05:33 +00:00
Devang Patel
5bc8dcf913
Use abstract class to facilitate dlopen() interface.
...
llvm-svn: 30569
2006-09-21 17:22:55 +00:00
Nick Lewycky
ad4eb4f0de
Fix findCaseDest to return null when BB is both the default dest and one
...
of the numeric cases.
llvm-svn: 30468
2006-09-18 20:44:37 +00:00
Nick Lewycky
87f79d5d69
Add a new helper method to SwitchInst. Useful when you've got a BB from
...
somewhere (like the dominator graph) and would like to know which case it
came from.
llvm-svn: 30466
2006-09-18 19:03:59 +00:00
Jim Laskey
07ac577a34
Sort out mangled names for globals
...
llvm-svn: 30460
2006-09-18 14:47:26 +00:00
Chris Lattner
3c4ca91dbd
Add support for pattern matching cast operations
...
llvm-svn: 30454
2006-09-18 05:17:11 +00:00
Chris Lattner
93bc6e881f
fix typo
...
llvm-svn: 30453
2006-09-18 04:58:06 +00:00
Chris Lattner
be102d68c2
add a helper method
...
llvm-svn: 30452
2006-09-18 04:54:57 +00:00
Anton Korobeynikov
7c2118575c
Added some eye-candy for Subtarget type checking
...
Added X86 StdCall & FastCall calling conventions. Codegen will follow.
llvm-svn: 30446
2006-09-17 20:25:45 +00:00
Chris Lattner
547b62a967
Add ShiftInst::isLogical/ArithmeticShift methods.
...
llvm-svn: 30445
2006-09-17 19:29:56 +00:00
Chris Lattner
8aa718b0ed
Add new SetCondInst::isRelational/isEquality methods. Rename
...
Instruction::isRelational to Instruction::isComparison.
llvm-svn: 30444
2006-09-17 19:14:47 +00:00
Chris Lattner
9306fac571
Keep track of the start of MBB's in a separate map from instructions. This
...
is faster and is needed for future improvements.
llvm-svn: 30383
2006-09-15 03:57:23 +00:00
Devang Patel
0d540a2f9a
Undo previous check-in.
...
Reintroduce recursive assignDFSNumber().
llvm-svn: 30380
2006-09-14 21:43:24 +00:00
Anton Korobeynikov
6e19f80688
Adding dllimport, dllexport and external weak linkage types.
...
DLL* linkages got full (I hope) codegeneration support in C & both x86
assembler backends.
External weak linkage added for future use, we don't provide any
codegeneration, etc. support for it.
llvm-svn: 30374
2006-09-14 18:23:27 +00:00
Evan Cheng
489428e6f8
Add MachineConstantPoolEntry getOffset() accessor.
...
llvm-svn: 30325
2006-09-14 07:32:32 +00:00
Evan Cheng
b25fd42e43
The top bit is used to determine whether it's a MachineConstantPoolValue.
...
llvm-svn: 30324
2006-09-14 07:30:48 +00:00
Chris Lattner
31e8414b3f
revert accidentally committed file
...
llvm-svn: 30323
2006-09-14 06:42:17 +00:00
Chris Lattner
2544818d6b
Remove dead methods, add getNumBlockIDs() method
...
llvm-svn: 30322
2006-09-14 06:40:48 +00:00
Reid Spencer
2a3ab75d50
Add a HAVE_MACH_MACH_H #define to detect the presence of the mach/mach.h
...
header file on Darwin.
llvm-svn: 30319
2006-09-14 06:17:21 +00:00
Evan Cheng
b68bfafe09
Mirrors ConstantPoolSDNode.
...
llvm-svn: 30314
2006-09-14 05:48:39 +00:00
Devang Patel
2983c628cd
Avoid recursion in assignDFSNumber(). Move def from ET-Forest.h
...
to Dominators.h
llvm-svn: 30309
2006-09-14 01:27:42 +00:00
Evan Cheng
499d77553a
Added support for machine specific constantpool values. These are useful for
...
representing expressions that can only be resolved at link time, etc.
llvm-svn: 30278
2006-09-12 21:00:35 +00:00
Nick Lewycky
a2c3d7b1ca
Add ability to remove nodes from DominatorTree, for when a BasicBlock
...
is being removed.
llvm-svn: 30270
2006-09-12 00:18:28 +00:00
Nate Begeman
1109e4a222
Behold, more work on relocations. Things are looking pretty good now.
...
llvm-svn: 30240
2006-09-10 23:03:44 +00:00
Chris Lattner
7005757ced
Implement new fpowi node
...
llvm-svn: 30223
2006-09-09 05:55:44 +00:00
Nate Begeman
2dfa13e74f
First pass at supporting relocations. Relocations are written correctly to
...
the file now, however the relocated address is currently wrong. Fixing
that will require some deep pondering.
llvm-svn: 30207
2006-09-08 22:42:09 +00:00
Chris Lattner
98c39f8e5b
add powi intrinsics.
...
llvm-svn: 30176
2006-09-08 06:43:00 +00:00
Jim Laskey
160a8aa339
1. Remove condition on delete.
...
2. Protect and outline createTargetAsmInfo.
3. Misc. kruft.
llvm-svn: 30169
2006-09-07 23:39:26 +00:00
Jim Laskey
9da25f6119
Make target asm info a property of the target machine.
...
llvm-svn: 30162
2006-09-07 22:06:40 +00:00
Chris Lattner
47f39eb3db
Add new option to leave asm names alone
...
llvm-svn: 30149
2006-09-07 18:20:41 +00:00
Devang Patel
2e6c5085f8
Add getTargetTriple() that linker can use to query target architecture.
...
llvm-svn: 30132
2006-09-06 20:16:28 +00:00
Devang Patel
bb3ca8e494
Keep track of all modules crated using a name to module map.
...
Add private member function getMoudle().
llvm-svn: 30130
2006-09-06 18:50:26 +00:00
Jim Laskey
b3cfa98236
Separate target specifc asm properties from asm printers.
...
llvm-svn: 30127
2006-09-06 18:35:33 +00:00
Jim Laskey
6b86ef852c
Separate target specific asm properties from the asm printers.
...
llvm-svn: 30126
2006-09-06 18:34:40 +00:00
Devang Patel
208eaf86a6
Extract target triplet from optimized module.
...
Untabify.
llvm-svn: 30123
2006-09-06 00:28:22 +00:00
Evan Cheng
e7875b655d
IsDef can only be accessed / set if operand is a register.
...
llvm-svn: 30119
2006-09-05 20:20:04 +00:00
Evan Cheng
f041d2de7e
Initialize IsDef of all non-register MachineOperand to false.
...
llvm-svn: 30116
2006-09-05 18:56:02 +00:00
Chris Lattner
9cd4e3429e
Completely eliminate def&use operands. Now a register operand is EITHER a
...
def operand or a use operand.
llvm-svn: 30109
2006-09-05 02:31:13 +00:00
Chris Lattner
40e16d9e51
ADd getImm/setImm methods
...
llvm-svn: 30105
2006-09-04 23:35:22 +00:00
Chris Lattner
35f1acab3a
Add some short-hand accessors
...
llvm-svn: 30104
2006-09-04 23:05:29 +00:00
Duraid Madina
51396ffd3e
add setJumpBufSize() and setJumpBufAlignment() to target-lowering.
...
Call these from your backend to enjoy setjmp/longjmp goodness, see
lib/Target/IA64/IA64ISelLowering.cpp for an example
llvm-svn: 30095
2006-09-04 06:21:35 +00:00
Chris Lattner
33c9ddc91d
Completely rearchitect the interface between targets and the pass manager.
...
This pass:
1. Splits TargetMachine into TargetMachine (generic targets, can be implemented
any way, like the CBE) and LLVMTargetMachine (subclass of TM that is used by
things using libcodegen and other support).
2. Instead of having each target fully populate the passmgr for file or JIT
output, move all this to common code, and give targets hooks they can
implement.
3. Commonalize the target population stuff between file emission and JIT
emission.
4. All (native code) codegen stuff now happens in a FunctionPassManager, which
paves the way for "fast -O0" stuff in the CFE later, and now LLC could
lazily stream .bc files from disk to use less memory.
5. There are now many fewer #includes and the targets don't depend on the
scalar xforms or libanalysis anymore (but codegen does).
6. Changing common code generator pass ordering stuff no longer requires
touching all targets.
7. The JIT now has the option of "-fast" codegen or normal optimized codegen,
which is now orthogonal to the fact that JIT'ing is being done.
llvm-svn: 30081
2006-09-04 04:14:57 +00:00
Chris Lattner
50f76d4c5d
Add explicit doInitialization/doFinalization methods instead of making
...
the FunctionPassManager redo this for each function.
llvm-svn: 30079
2006-09-04 04:07:39 +00:00
Chris Lattner
2024543fb2
Eliminate target name.
...
llvm-svn: 30071
2006-09-03 18:44:26 +00:00
Chris Lattner
b590a41f7b
Avoid beating on the mi2i map when we know the answer already.
...
llvm-svn: 30066
2006-09-03 08:07:11 +00:00
Chris Lattner
cc5b4bff8f
Move two methods out of line, make them work when the record for a machine
...
instruction includes physregs.
llvm-svn: 30061
2006-09-03 00:05:09 +00:00
Chris Lattner
518f055373
Fix a typo pointed out by Gabor
...
llvm-svn: 30058
2006-09-02 22:27:29 +00:00
Chris Lattner
c01fbffc67
add a prototype
...
llvm-svn: 30051
2006-09-02 05:37:53 +00:00
Chris Lattner
dfda549a00
Iteration is required for some cases, even if they don't occur in crafty.
...
Restore it, which re-fixes X86/2006-08-21-ExtraMovInst.ll
llvm-svn: 30050
2006-09-02 05:32:53 +00:00
Chris Lattner
9ad19f6f8b
new method
...
llvm-svn: 30048
2006-09-02 05:26:01 +00:00
Chris Lattner
89a7eadf22
remove some particularly expensive assertions
...
llvm-svn: 30014
2006-09-01 06:57:35 +00:00
Chris Lattner
7453a7d197
add a simple reserve method.
...
llvm-svn: 30011
2006-09-01 06:08:16 +00:00
Chris Lattner
0c120af606
Iterative coallescing doesn't buy us anything (we get identical results on
...
crafty with and without it). Removing it speeds up live intervals 6%.
llvm-svn: 30010
2006-09-01 04:02:42 +00:00
Chris Lattner
998dd9b42e
avoid calling the virtual isMoveInstr method endlessly by caching its results.
...
llvm-svn: 29994
2006-08-31 05:54:43 +00:00
Chris Lattner
45063c4be4
Restore source-level compatibility with clients of these functions.
...
llvm-svn: 29978
2006-08-30 20:47:48 +00:00
Chris Lattner
c7fb7a05bf
fix 80 column issue
...
llvm-svn: 29972
2006-08-30 05:56:52 +00:00
Chris Lattner
e84b1b8352
Instantiate Statistic<> in one place, not in every .o file that uses it.
...
llvm-svn: 29971
2006-08-30 04:17:00 +00:00
Chris Lattner
3a4d512930
Teach the coallescer to coallesce live intervals joined by an arbitrary
...
number of copies, potentially defining live ranges that appear to have
differing value numbers that become identical when coallsced. Among other
things, this fixes CodeGen/X86/shift-coalesce.ll and PR687.
llvm-svn: 29968
2006-08-29 23:18:15 +00:00
Devang Patel
a5bb9b49d3
Do not rely on std::sort and std::erase to get list of unique
...
exit blocks. The output is dependent on addresses of basic block.
Add and use Loop::getUniqueExitBlocks.
llvm-svn: 29966
2006-08-29 22:29:16 +00:00
Evan Cheng
2335c819cd
Move isCommutativeBinOp from SelectionDAG.cpp and DAGCombiner.cpp out. Make it a static method of SelectionDAG.
...
llvm-svn: 29951
2006-08-29 06:42:35 +00:00
Nick Lewycky
9535a84c33
Add PredicateSimplifier pass. Collapses equal variables into one form
...
and simplifies expressions. This implements the optimization described
in PR807.
llvm-svn: 29947
2006-08-28 22:44:55 +00:00
Chris Lattner
4fa85705f6
Add 2nd form of resize
...
llvm-svn: 29945
2006-08-28 21:52:08 +00:00
Chris Lattner
5571652921
remove extraneous space
...
llvm-svn: 29940
2006-08-28 17:30:49 +00:00
Reid Spencer
959705759f
Back out last revision which should not have been committed (yet).
...
llvm-svn: 29935
2006-08-28 01:08:45 +00:00
Reid Spencer
2567610703
For PR387:
...
Close out this long standing bug by removing the remaining overloaded
virtual functions in LLVM. The -Woverloaded-virtual option is now turned on.
llvm-svn: 29934
2006-08-28 01:02:49 +00:00
Chris Lattner
8a59e8be23
simplify AnalysisGroup registration, eliminating one typeid call.
...
llvm-svn: 29932
2006-08-28 00:42:29 +00:00
Chris Lattner
6474b3fe80
Silence -Woverloaded-virtual warnings.
...
llvm-svn: 29929
2006-08-28 00:09:00 +00:00
Chris Lattner
a39dcb5377
eliminate RegisterOpt. It does the same thing as RegisterPass.
...
llvm-svn: 29925
2006-08-27 22:42:52 +00:00
Chris Lattner
f530302eda
Eliminate RegisterAnalysis. RegisterPass now does all that is necessary.
...
llvm-svn: 29921
2006-08-27 22:30:17 +00:00
Chris Lattner
216059ff5a
We no longer care whether something is an opt vs analysis pass, only whether
...
something is a pass vs an analysis group now. Simplify interfaces.
llvm-svn: 29920
2006-08-27 22:21:55 +00:00
Chris Lattner
dc7bad1787
Remove a dead class.
...
llvm-svn: 29918
2006-08-27 22:11:07 +00:00
Chris Lattner
db0a995bbe
add directive to disable inlining
...
llvm-svn: 29912
2006-08-27 13:16:05 +00:00
Chris Lattner
33bd5dcfb7
s|llvm/Support/Visibility.h|llvm/Support/Compiler.h|
...
llvm-svn: 29911
2006-08-27 12:54:02 +00:00
Chris Lattner
91f098c9f7
Add external definitions for commonly-used template specializations and add
...
anchor methods to others. This eliminates the vtable/template method bloat
in .o files that defining a cl::opt used to impose (~4K per .o file for one
cp::opt<unsigned>).
llvm-svn: 29909
2006-08-27 12:45:47 +00:00
Chris Lattner
a72e220a25
New place to put compiler-specific functionality. This replaces Visibility.h,
...
and provides macros that can be used to make explicit instantiations of
template specializations, which is a gcc-specific feature.
llvm-svn: 29908
2006-08-27 12:42:45 +00:00
Evan Cheng
6e08e7035f
Eliminate SelectNodeTo() and getTargetNode() variants which take more than
...
3 SDOperand operands. They are replaced by versions which take an array
of SDOperand and the number of operands.
llvm-svn: 29905
2006-08-27 08:08:54 +00:00
Chris Lattner
5d7bd21c41
make optional pointer really optional
...
llvm-svn: 29904
2006-08-27 07:11:54 +00:00
Nate Begeman
f94ddf0d12
Properly size the string table, and emit symbol table and string table
...
entries in the correct order, fixing several fixmes.
llvm-svn: 29902
2006-08-26 15:46:34 +00:00
Evan Cheng
1c3d571e4b
SelectNodeTo now returns a SDNode*.
...
llvm-svn: 29901
2006-08-26 08:00:10 +00:00
Chris Lattner
ec9c7fa089
Completely change the way that joining with physregs is implemented. This
...
paves the way for future changes, increases coallescing opportunities (in
theory, not witnessed in practice), and eliminates the really expensive
LiveIntervals::overlapsAliases method.
llvm-svn: 29890
2006-08-25 23:41:24 +00:00
Jim Laskey
e9b0e1014e
Tidy up.
...
llvm-svn: 29888
2006-08-25 22:56:30 +00:00
Reid Spencer
9b5ea0704e
For PR797:
...
Make the Win32 code exception free (untested/uncompiled) which forced some
interface changes which had ripple effect. This should be the last of 797.
llvm-svn: 29884
2006-08-25 21:37:17 +00:00
Reid Spencer
e2b7b29a82
For PR797:
...
Final commit for this bug. This removes the last EH holdouts in LLVM
and turns off exception support by using the -fno-exceptions option. This
leads to the following reduction in library and executable sizes:
DEBUG BUILD RELEASE BUILD
before after delta before after delta
lib 162,328K 157,616K 4,712 17,864K 16,416K 1,448K
bin 571,444K 557,156K 14,288 63,296K 56,996K 6,300K
Debug Improvement: 19,000K (2.59%)
Release Improvement: 7,748K (9.55%)
llvm-svn: 29882
2006-08-25 19:54:53 +00:00
Jim Laskey
3af6953257
Consolidate callee saved register information so that it can me used by debug
...
information and exception handling.
llvm-svn: 29881
2006-08-25 19:45:51 +00:00
Reid Spencer
741140980f
For PR797:
...
Remove exception throwing/handling from lib/Bytecode, and adjust its users
to compensate for changes in the interface.
llvm-svn: 29875
2006-08-25 17:43:11 +00:00
Nate Begeman
ce8ab85260
Get closer to handling globals correctly. We now generally get them in the
...
right section.
llvm-svn: 29871
2006-08-25 06:36:58 +00:00
Reid Spencer
d813eae003
For PR797:
...
Remove exception handling from the bytecode archiver and adjust the llvm-ar
tool to accommodate the new interfaces.
llvm-svn: 29866
2006-08-24 23:45:08 +00:00
Chris Lattner
28645a15bd
Take advantage of the recent improvements to the liveintervals set (tracking
...
instructions which define each value#) to simplify and improve the coallescer.
In particular, this patch:
1. Implements iterative coallescing.
2. Reverts an unsafe hack from handlePhysRegDef, superceeding it with a
better solution.
3. Implements PR865, "coallescing" away the second copy in code like:
A = B
...
B = A
This also includes changes to symbolically print registers in intervals
when possible.
llvm-svn: 29862
2006-08-24 22:43:55 +00:00
Reid Spencer
88bbd0bcf8
Remove a FIXME. Don't use strlcpy that isn't available on non-BSD platforms
...
and ensure that a memory overrun won't occur while still writing Length
bytes in the outstring function.
llvm-svn: 29855
2006-08-24 14:25:39 +00:00
Chris Lattner
a6ad752f16
update some comments
...
llvm-svn: 29853
2006-08-24 00:21:32 +00:00
Nate Begeman
0f0148d5f8
Correctly attribute file author & remote tabs
...
llvm-svn: 29852
2006-08-23 21:33:27 +00:00
Nate Begeman
1268d6cd46
Initial checkin of the Mach-O emitter. There's plenty of fixmes, but it
...
does emit linkable .o files in very simple cases.
llvm-svn: 29850
2006-08-23 21:08:52 +00:00
Reid Spencer
71c3f66dc6
For PR797:
...
Final removal of exceptions from lib/System and adjustment of users to
accommodate.
llvm-svn: 29846
2006-08-23 20:34:57 +00:00
Reid Spencer
b702899462
Fix constructor documentation.
...
llvm-svn: 29845
2006-08-23 17:43:20 +00:00
Reid Spencer
bc4c8e8ac0
For PR797:
...
Eliminate exception throwing from Path::renamePathOnDisk and adjust its
users correspondingly.
llvm-svn: 29843
2006-08-23 07:30:48 +00:00
Reid Spencer
0bc83e3c5e
For PR797:
...
Remove exception throwing from Path::getDirectoryContents and its users.
llvm-svn: 29841
2006-08-23 06:56:27 +00:00
Reid Spencer
baf54399e7
For PR797:
...
Remove exceptions from the Path::create*OnDisk methods. Update their users
to handle error messages via arguments and result codes.
llvm-svn: 29840
2006-08-23 00:39:35 +00:00
Reid Spencer
45120b0798
For PR797:
...
Change the Path::make*OnDisk methods exception free and adjust their usage.
llvm-svn: 29836
2006-08-22 23:27:23 +00:00