Chris Lattner [Thu, 16 Nov 2006 01:00:07 +0000 (01:00 +0000)]
enable the branch folding pass for the JIT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31777
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 16 Nov 2006 00:57:19 +0000 (00:57 +0000)]
add ppc64 r+i stores with update.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31776
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 16 Nov 2006 00:41:37 +0000 (00:41 +0000)]
add patterns for ppc32 preinc stores. ppc64 next.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31775
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 16 Nov 2006 00:33:34 +0000 (00:33 +0000)]
switch these back to the 'bad old way'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31774
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 16 Nov 2006 00:08:20 +0000 (00:08 +0000)]
Fix an incorrectly inverted condition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31773
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 15 Nov 2006 23:55:03 +0000 (23:55 +0000)]
ChangeToRegister should clear IsImp bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31772
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Nov 2006 23:35:30 +0000 (23:35 +0000)]
Fix ppc64 epilog bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31771
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Nov 2006 23:24:18 +0000 (23:24 +0000)]
Stop using isTwoAddress, switching to operand constraints instead.
Tell the codegen emitter that specific operands are not to be encoded, fixing
JIT regressions w.r.t. pre-inc loads and stores (e.g. lwzu, which we generate
even when general preinc loads are not enabled).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31770
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Nov 2006 23:23:02 +0000 (23:23 +0000)]
Remove the isTwoAddress property from the CodeGenInstruction class. It should
not be used for anything other than backwards compat constraint handling.
Add support for a new DisableEncoding property which contains a list of
registers that should not be encoded by the generated code emitter. Convert
the codeemitter generator to use this, fixing some PPC JIT regressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31769
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Nov 2006 22:55:04 +0000 (22:55 +0000)]
add a new field needed by the code emitter generator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31768
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Nov 2006 21:04:15 +0000 (21:04 +0000)]
Fix typo pointed out by Bryan Adams
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31766
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 15 Nov 2006 20:58:11 +0000 (20:58 +0000)]
Properly transfer kill / dead info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31765
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 15 Nov 2006 20:56:39 +0000 (20:56 +0000)]
Kill / dead info has been moved to MI's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31764
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 15 Nov 2006 20:56:03 +0000 (20:56 +0000)]
commuteInstruction should propagate kill / dead info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31763
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 15 Nov 2006 20:55:15 +0000 (20:55 +0000)]
Match live variable changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31762
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 15 Nov 2006 20:54:29 +0000 (20:54 +0000)]
Minor updates.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31761
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 15 Nov 2006 20:54:11 +0000 (20:54 +0000)]
A register def can be partially dead when the whole register has use(s) but a subreg does not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31760
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 15 Nov 2006 20:51:59 +0000 (20:51 +0000)]
Do away with kill / dead maps. Move kill / dead info onto MI's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31759
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 15 Nov 2006 20:48:17 +0000 (20:48 +0000)]
Add copyKillDeadInfo to copy kill / dead info; other minor updates.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31758
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Nov 2006 19:55:13 +0000 (19:55 +0000)]
fix ldu/stu jit encoding. Swith 64-bit preinc load instrs to use memri
addrmodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31757
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 15 Nov 2006 19:39:54 +0000 (19:39 +0000)]
Add run(Function &F) support in FunctionPassManager_New
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31756
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Nov 2006 18:00:10 +0000 (18:00 +0000)]
Simplify IntrinsicLowering and clarify that it is only for use by the
CBE and interpreter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31755
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Nov 2006 17:53:13 +0000 (17:53 +0000)]
Remove unneeded forward decls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31754
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Nov 2006 17:51:15 +0000 (17:51 +0000)]
remove dead #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31753
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Nov 2006 17:40:51 +0000 (17:40 +0000)]
Fix the PPC regressions last night
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31752
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Nov 2006 04:53:24 +0000 (04:53 +0000)]
Fix a gcc 4.2 warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31751
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 15 Nov 2006 03:02:41 +0000 (03:02 +0000)]
Add a method to get the bit width of a packed type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31750
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Nov 2006 02:43:19 +0000 (02:43 +0000)]
Switch loads over to use memri as the operand instead of a reg/imm operand
pair for cleanliness. Add instructions for PPC32 preinc-stores with commented
out patterns. More improvement is needed to enable the patterns, but we're
getting close.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31749
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Nov 2006 02:38:17 +0000 (02:38 +0000)]
ADd support for adding constraints to suboperands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31748
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 15 Nov 2006 02:07:25 +0000 (02:07 +0000)]
Add doInitialization and doFinalization support in FunctionManager_New.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31747
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 15 Nov 2006 01:48:14 +0000 (01:48 +0000)]
Tidy up marking of last analysis user pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31746
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 15 Nov 2006 01:27:05 +0000 (01:27 +0000)]
Add doInitialization and doFinalization support in FunctionManager_New.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31745
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 15 Nov 2006 01:11:27 +0000 (01:11 +0000)]
Do not derive CommonPassManagerImpl from Pass.
Now BasicBlockPassManager_New is a FunctionPass,
FunctionPassManager_New is a ModulePass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31744
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Nov 2006 22:17:10 +0000 (22:17 +0000)]
restore some 'magic' code that I removed: it is needed. Add comments explaining
why.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31743
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Nov 2006 21:50:27 +0000 (21:50 +0000)]
minimal hack to get patterns whose result type is iPTR to be selected.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31742
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 14 Nov 2006 21:49:36 +0000 (21:49 +0000)]
Copy initializeAnalysisImpl() implementation from PassManagerT.
Update LastUser to recursively walk required transitive set.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31741
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Nov 2006 21:41:35 +0000 (21:41 +0000)]
remove some dead code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31740
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Nov 2006 21:32:01 +0000 (21:32 +0000)]
Add support for nodes that return iPTR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31739
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Nov 2006 21:18:40 +0000 (21:18 +0000)]
changes to get ptr_rc to be accepted in patterns. This is needed for ppc preinc
stores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31738
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 14 Nov 2006 19:20:33 +0000 (19:20 +0000)]
Revert. This wasn't meant to be checked in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31737
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Nov 2006 19:19:53 +0000 (19:19 +0000)]
group load and store instructions together. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31736
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Nov 2006 19:13:39 +0000 (19:13 +0000)]
Fix predicates for unindexed stores so they don't accidentally match indexed
stores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31735
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Nov 2006 18:44:47 +0000 (18:44 +0000)]
Rework PPC64 calls. Now we have a LR8/CTR8 register which the PPC64 calls
clobber. This allows LR8 to be save/restored correctly as a 64-bit quantity,
instead of handling it as a 32-bit quantity. This unbreaks ppc64 codegen when
the code is actually located above the 4G boundary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31734
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Nov 2006 18:43:11 +0000 (18:43 +0000)]
remove a ton of custom selection logic no longer needed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31733
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Nov 2006 18:41:38 +0000 (18:41 +0000)]
Fix a bug handling nodes with variable arguments. The code was fixed to assume
that there were two input operands before the variable operand portion. This
*happened* to be true for all call instructions, which took a chain and a
destination, but was not true for the PPC BCTRL instruction, whose destination
is implicit.
Making this code more general allows elimination of the custom selection logic
for BCTRL.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31732
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Nov 2006 08:08:46 +0000 (08:08 +0000)]
it would be nice of ctlz were lowered to bsf etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31730
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Nov 2006 07:46:50 +0000 (07:46 +0000)]
implement InstCombine/shift-simplify.ll by transforming:
(X >> Z) op (Y >> Z) -> (X op Y) >> Z
for all shifts and all ops={and/or/xor}.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31729
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Nov 2006 07:45:36 +0000 (07:45 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31728
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Nov 2006 06:06:06 +0000 (06:06 +0000)]
implement InstCombine/and-compare.ll:test1. This compiles:
typedef struct { unsigned prefix : 4; unsigned code : 4; unsigned unsigned_p : 4; } tree_common;
int foo(tree_common *a, tree_common *b) { return a->code == b->code; }
into:
_foo:
movl 4(%esp), %eax
movl 8(%esp), %ecx
movl (%eax), %eax
xorl (%ecx), %eax
# TRUNCATE movb %al, %al
shrb $4, %al
testb %al, %al
sete %al
movzbl %al, %eax
ret
instead of:
_foo:
movl 8(%esp), %eax
movb (%eax), %al
shrb $4, %al
movl 4(%esp), %ecx
movb (%ecx), %cl
shrb $4, %cl
cmpb %al, %cl
sete %al
movzbl %al, %eax
ret
saving one cycle by eliminating a shift.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31727
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Nov 2006 06:04:35 +0000 (06:04 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31726
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Nov 2006 05:28:08 +0000 (05:28 +0000)]
lower "X = seteq Y, Z" to '(shr (ctlz (xor Y, Z)), 5)' instead of
'(shr (ctlz (sub Y, Z)), 5)'.
The use of xor better exposes the operation to bit-twiddling logic in the
dag combiner. For example, this:
typedef struct {
unsigned prefix : 4;
unsigned code : 4;
unsigned unsigned_p : 4;
} tree_common;
int foo(tree_common *a, tree_common *b) {
return a->code == b->code;
}
Now compiles to:
_foo:
lwz r2, 0(r4)
lwz r3, 0(r3)
xor r2, r3, r2
rlwinm r2, r2, 28, 28, 31
cntlzw r2, r2
srwi r3, r2, 5
blr
instead of:
_foo:
lbz r2, 3(r4)
lbz r3, 3(r3)
srwi r2, r2, 4
srwi r3, r3, 4
subf r2, r2, r3
cntlzw r2, r2
srwi r3, r2, 5
blr
saving a cycle.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31725
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Tue, 14 Nov 2006 05:21:04 +0000 (05:21 +0000)]
A shim over other AA impls to catch incorrect uses
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31724
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 14 Nov 2006 04:47:22 +0000 (04:47 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31723
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 14 Nov 2006 03:05:08 +0000 (03:05 +0000)]
Implement removeDeadPasses().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31722
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 14 Nov 2006 02:54:23 +0000 (02:54 +0000)]
Keep track of Last user of analysis phase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31721
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 14 Nov 2006 01:59:59 +0000 (01:59 +0000)]
Use std::map to map AnalysisID and Pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31720
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Nov 2006 01:57:53 +0000 (01:57 +0000)]
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31719
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Nov 2006 01:38:31 +0000 (01:38 +0000)]
minor tweaks, reject vector preinc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31717
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 14 Nov 2006 01:23:29 +0000 (01:23 +0000)]
Manage analysis passes during run.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31716
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Tue, 14 Nov 2006 00:59:52 +0000 (00:59 +0000)]
Updating configure script for 2.0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31715
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 14 Nov 2006 00:03:04 +0000 (00:03 +0000)]
Update comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31713
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 13 Nov 2006 23:36:35 +0000 (23:36 +0000)]
Matches MachineInstr changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31712
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 13 Nov 2006 23:34:06 +0000 (23:34 +0000)]
- 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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31711
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 13 Nov 2006 22:53:19 +0000 (22:53 +0000)]
Update PassManagerImpl_New::analysisCurrentlyAvailable to check all
managed passmanagers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31710
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 13 Nov 2006 22:40:09 +0000 (22:40 +0000)]
Check currently available anlysis in active managers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31709
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Nov 2006 20:11:06 +0000 (20:11 +0000)]
teach the g5 hazard recognizer about update loads. This fixes
Ptrdist/anagram among others.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31708
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 13 Nov 2006 18:00:52 +0000 (18:00 +0000)]
For PR950:
Changes for new cast instructions that are backwards compatible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31707
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 13 Nov 2006 17:55:34 +0000 (17:55 +0000)]
Don't hard code test names into the test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31706
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 13 Nov 2006 16:21:09 +0000 (16:21 +0000)]
Fix 80 cols violations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31705
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 13 Nov 2006 16:13:38 +0000 (16:13 +0000)]
For PR950:
Use the notcast script in preparation for 12 casts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31704
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 13 Nov 2006 16:12:25 +0000 (16:12 +0000)]
For PR950:
Use the notcast script in preparation for 12 cast instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31703
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 13 Nov 2006 16:11:14 +0000 (16:11 +0000)]
Make it handle plain old cast too, for old assembly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31702
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 13 Nov 2006 16:09:37 +0000 (16:09 +0000)]
Handle ptrtoint and inttoptr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31701
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 13 Nov 2006 16:08:51 +0000 (16:08 +0000)]
Add some output so the user is informed while they wait.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31700
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 13 Nov 2006 08:03:59 +0000 (08:03 +0000)]
Add a link to the GEP FAQ.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31698
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Nov 2006 01:10:12 +0000 (01:10 +0000)]
remove redundant code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31697
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 13 Nov 2006 00:23:28 +0000 (00:23 +0000)]
Cute example from Chris Lattner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31696
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 12 Nov 2006 11:10:39 +0000 (11:10 +0000)]
Initialize some pointers to quiet the compiler (when doing build_gcc
builds).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31694
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 11 Nov 2006 23:08:07 +0000 (23:08 +0000)]
Document new constant expr operators, rename bitconvert as bitcast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31693
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 11 Nov 2006 23:06:47 +0000 (23:06 +0000)]
Revert premature patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31692
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 11 Nov 2006 22:34:59 +0000 (22:34 +0000)]
Document new constant expr operators, rename bitconvert as bitcast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31691
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Sat, 11 Nov 2006 22:22:07 +0000 (22:22 +0000)]
Make sure stack link is set in 64-bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31690
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Sat, 11 Nov 2006 22:14:46 +0000 (22:14 +0000)]
XFAIL All but powerpc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31689
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 11 Nov 2006 21:00:47 +0000 (21:00 +0000)]
Add a preview of two new conversion operators: ptrtoint and inttoptr. Update
the defintion of bitconvert correspondingly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31688
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 11 Nov 2006 20:27:49 +0000 (20:27 +0000)]
Remvoe a do-nothing else block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31687
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 11 Nov 2006 20:07:59 +0000 (20:07 +0000)]
Make an assert comment match the tested assertion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31686
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 11 Nov 2006 19:59:25 +0000 (19:59 +0000)]
Minor style fixes from review.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31685
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 11 Nov 2006 19:05:28 +0000 (19:05 +0000)]
implement proper PPC64 prolog/epilog codegen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31684
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 11 Nov 2006 19:05:02 +0000 (19:05 +0000)]
Add a -disable-loop-extraction option to bugpoint.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31683
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 11 Nov 2006 11:54:25 +0000 (11:54 +0000)]
For PR998:
Fix an infinite loop in the Linker and a few other assorted link problems.
Patch contributed by Scott Michel. Thanks, Scott!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31680
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Sat, 11 Nov 2006 10:22:56 +0000 (10:22 +0000)]
Works for PowerPC with frame pointers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31679
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 11 Nov 2006 10:22:48 +0000 (10:22 +0000)]
Add -lstdc++ to the link line for C++ programs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31678
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Sat, 11 Nov 2006 10:21:58 +0000 (10:21 +0000)]
Running with frame pointers prevented debugging, external probes and
potentially some system calls/exception handling from working. TOS must always
link to previous frame. This is a short term workaround until alloca scheme is
reworked.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31677
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 11 Nov 2006 10:21:44 +0000 (10:21 +0000)]
Add implicit use / def operands to created MI's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31676
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 11 Nov 2006 10:20:02 +0000 (10:20 +0000)]
Add methods to add implicit def use operands to a MI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31675
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 11 Nov 2006 07:19:36 +0000 (07:19 +0000)]
Add all implicit defs to FP_REG_KILL mi.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31674
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 11 Nov 2006 04:53:30 +0000 (04:53 +0000)]
allow the offset of a preinc'd load to be the low-part of a global. This
produces this clever code:
_millisecs:
lis r2, ha16(_Time.1182)
lwzu r3, lo16(_Time.1182)(r2)
lwz r2, 4(r2)
addic r4, r2, 1
addze r3, r3
blr
instead of this:
_millisecs:
lis r2, ha16(_Time.1182)
la r3, lo16(_Time.1182)(r2)
lwz r2, lo16(_Time.1182)(r2)
lwz r3, 4(r3)
addic r4, r3, 1
addze r3, r2
blr
for:
long %millisecs() {
%tmp = load long* %Time.1182 ; <long> [#uses=1]
%tmp1 = add long %tmp, 1 ; <long> [#uses=1]
ret long %tmp1
}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31673
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 11 Nov 2006 04:51:36 +0000 (04:51 +0000)]
Mark operands as symbol lo instead of imm32 so that they print lo(x) around
globals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31672
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Sat, 11 Nov 2006 02:22:31 +0000 (02:22 +0000)]
Implement schedulePasses().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31671
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Sat, 11 Nov 2006 02:06:21 +0000 (02:06 +0000)]
Implement PassManagerImpl_New::add().
Just add pass into the pass manager queue without processing analysis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31670
91177308-0d34-0410-b5e6-
96231b3b80d8