Shantonu Sen [Thu, 6 May 2010 14:57:47 +0000 (14:57 +0000)]
Fix "warning: extra ';' inside a struct or union" when building llvm with clang
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103179
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 6 May 2010 14:46:38 +0000 (14:46 +0000)]
Revert r103137, fix for $ in labels. It looks like we can't actually handle this
at the token level. Consider the following horrible test case:
a = 1
.globl $a
movl ($a), %eax
movl $a, %eax
movl $$a, %eax
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103178
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 6 May 2010 06:36:08 +0000 (06:36 +0000)]
Re-apply 103156 and 103157. 103156 didn't break anything. 10315 exposed a coalescer bug that's fixed by 103170.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103172
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 6 May 2010 06:23:31 +0000 (06:23 +0000)]
Fixes a coalescer bug that caused llc to crash on 2009-11-30-LiveVariablesBug.ll
with the fix in 103157.
%reg1039:1<def> = VMOVS %S1<kill>, pred:14, pred:%reg0
is not coalescable since none of the super-registers of S1 are in reg1039's
register class: DPR_VFP2. But it is still a legal copy instruction so it should
not assert.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103170
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Hunt [Thu, 6 May 2010 05:24:38 +0000 (05:24 +0000)]
Fix some stylistic issues with my last commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103164
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 6 May 2010 05:08:57 +0000 (05:08 +0000)]
Revert r103157, which broke test/CodeGen/ARM/2009-11-30-LiveVariablesBug.ll.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103163
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 6 May 2010 02:29:06 +0000 (02:29 +0000)]
Revert r103156 since it was breaking the build bots.
Reverse-merging r103156 into '.':
U lib/Target/ARM/ARMInstrNEON.td
U lib/Target/ARM/ARMRegisterInfo.h
U lib/Target/ARM/ARMBaseRegisterInfo.cpp
U lib/Target/ARM/ARMBaseInstrInfo.cpp
U lib/Target/ARM/ARMRegisterInfo.td
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103159
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 6 May 2010 02:06:20 +0000 (02:06 +0000)]
Handle the case where open(2) or close(2) is interrupted by a signal when
automatic syscall restarting is disabled.
Also, fix the build on systems which don't define EWOULDBLOCK.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103158
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 6 May 2010 01:54:03 +0000 (01:54 +0000)]
Fix an obvious bug in isMoveInstr. It needs to return sub-register indices.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103157
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 6 May 2010 01:52:03 +0000 (01:52 +0000)]
Adding pseudo 256-bit registers QQ0 . . . QQ7 to represent pairs of Q registers. These will be used to model VLD2 / VST2 instructions in order to get substantially better codegen for them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103156
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 6 May 2010 01:34:11 +0000 (01:34 +0000)]
Cosmetic changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103155
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 6 May 2010 01:32:54 +0000 (01:32 +0000)]
storeRegToStackSlot has forgotten about QPR_8 register class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103154
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 6 May 2010 01:27:36 +0000 (01:27 +0000)]
Handle EWOULDBLOCK as EAGAIN. And add a comment explaining why
EAGAIN and EWOULDBLOCK are used here.
Also, handle the case where a write call is interrupted after
some data has already been written.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103153
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 6 May 2010 00:54:20 +0000 (00:54 +0000)]
make -filetype=obj default to emitting its output to foo.obj
when on windows instead of foo.o. Patch by Nathan Jeffords!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103150
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 6 May 2010 00:29:41 +0000 (00:29 +0000)]
Update LabelsBeforeInsn also, when creating unknown-position labels.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103145
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 6 May 2010 00:05:37 +0000 (00:05 +0000)]
Fix PR7054 - Assertion `Symbol->isUndefined() && "Cannot define a symbol twice!"' failed.
Users can write broken code that emits the same label twice with asm renaming,
detect this and emit a fatal backend error instead of aborting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103140
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 6 May 2010 00:02:14 +0000 (00:02 +0000)]
In bottom-up mode, defer the materialization of local constant values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103139
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 5 May 2010 23:58:35 +0000 (23:58 +0000)]
Add an "IsBottomUp" member function to FastISel, which will be used to
support a new bottom-up mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103138
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 5 May 2010 23:51:28 +0000 (23:51 +0000)]
fix rdar://
7946934 - in some limited cases, the assembler should
allow $ at the start of a symbol name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103137
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 5 May 2010 23:44:43 +0000 (23:44 +0000)]
Cleanup of ARMv7M support. Move hardware divide and Thumb2 extract/pack
instructions to subtarget features and update tests to reflect.
PR5717.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103136
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 5 May 2010 23:41:32 +0000 (23:41 +0000)]
Emit debug info for MachineInstrs with unknown debug locations, instead
of just letting them inherit the debug locations of adjacent instructions.
Debug info should aim to be either accurate or absent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103135
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 5 May 2010 23:29:09 +0000 (23:29 +0000)]
Fix some ..'s
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103134
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 5 May 2010 23:07:41 +0000 (23:07 +0000)]
Fix PR6520. An earlyclobber physreg must not be allocated to anything else.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103133
91177308-0d34-0410-b5e6-
96231b3b80d8
Stuart Hastings [Wed, 5 May 2010 22:49:33 +0000 (22:49 +0000)]
Test case for pr2394 and r102979.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103129
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Wed, 5 May 2010 22:47:27 +0000 (22:47 +0000)]
Fixed a sign-extension bug in the X86 disassembler
that was causing PC-relative branch targets to be
evaluated incorrectly. Also added support for
checking operand values to the llvm-mc tester.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103128
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 5 May 2010 22:29:00 +0000 (22:29 +0000)]
Use getValue() for PHINodes when direct NodeMap access does not work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103126
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 5 May 2010 22:22:40 +0000 (22:22 +0000)]
Select an ARM-hosted cross build with a separate makefile target instead of
a magic project name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103125
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 5 May 2010 22:15:40 +0000 (22:15 +0000)]
Do not pre-allocate references of D registers pairs if they are extracted from the same Q register and are in the right order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103124
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 5 May 2010 21:07:46 +0000 (21:07 +0000)]
fix copy/paste oops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103122
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 5 May 2010 20:58:01 +0000 (20:58 +0000)]
No-ops emitted for scheduling don't correspond with anything in the
user's source, so don't arbitrarily assign them a debug location.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103121
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 5 May 2010 20:47:15 +0000 (20:47 +0000)]
Add tests for ARMV7M divide instruction use
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103120
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 5 May 2010 20:44:35 +0000 (20:44 +0000)]
Add initial support for ARMv7M subtarget and cortex-m3 cpu. Patch by
Jordy <snhjordy@gmail.com>.
Followup patches will add some tests and adjust to use Subtarget features
for the instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103119
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 5 May 2010 20:44:15 +0000 (20:44 +0000)]
Use the right version of "append" to combine two SmallVectors.
This fixes the compile-time regressions seen in last night's tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103118
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 5 May 2010 19:55:58 +0000 (19:55 +0000)]
remove unneeded underscores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103114
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 5 May 2010 19:41:11 +0000 (19:41 +0000)]
Convert to filecheck
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103113
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 5 May 2010 19:01:05 +0000 (19:01 +0000)]
MC/Mach-O: Mark absolute variable's appropriately, and add Mach-O support for
writing them.
- <rdar://problem/
7885351> integrated assembler broken for i386 objc code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103112
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 5 May 2010 19:01:00 +0000 (19:01 +0000)]
MC: Reject attempts to define a variable symbol.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103111
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 5 May 2010 19:00:56 +0000 (19:00 +0000)]
MC: Make setVariableValue check the redefinition condition a bit more strongly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103110
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 5 May 2010 18:45:40 +0000 (18:45 +0000)]
Move REG_SEQUENCE removal to 2addr pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103109
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 5 May 2010 18:40:33 +0000 (18:40 +0000)]
Implement rdar://
7415680 - Twine integer support lacks greatness
Microoptimize Twine's with unsigned and int to not pin their value to
the stack. This saves stack space in common cases and allows mem2reg
in the caller. A simple example is:
void foo(const Twine &);
void bar(int x) {
foo("xyz: " + Twine(x));
}
Before:
__Z3bari:
subq $40, %rsp
movl %edi, 36(%rsp)
leaq L_.str3(%rip), %rax
leaq 36(%rsp), %rcx
leaq 8(%rsp), %rdi
movq %rax, 8(%rsp)
movq %rcx, 16(%rsp)
movb $3, 24(%rsp)
movb $7, 25(%rsp)
callq __Z3fooRKN4llvm5TwineE
addq $40, %rsp
ret
After:
__Z3bari:
subq $24, %rsp
leaq L_.str3(%rip), %rax
movq %rax, (%rsp)
movslq %edi, %rax
movq %rax, 8(%rsp)
movb $3, 16(%rsp)
movb $7, 17(%rsp)
leaq (%rsp), %rdi
callq __Z3fooRKN4llvm5TwineE
addq $24, %rsp
ret
It saves 16 bytes of stack and one instruction in this case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103107
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Wed, 5 May 2010 18:39:16 +0000 (18:39 +0000)]
Rearrange the suppressions files to be by-architecture instead of by-problem.
ddunbar says the gcc-4.3.3 suppressions are obsolete.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103106
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 5 May 2010 18:28:36 +0000 (18:28 +0000)]
Model CONCAT_VECTORS of two 64-bit values as a REG_SEQUENCE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103104
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 5 May 2010 18:27:57 +0000 (18:27 +0000)]
Trim include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103103
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 5 May 2010 18:27:40 +0000 (18:27 +0000)]
Teach liveintervalanalysis about virtual registers which are defined by reg_sequence instructions that are formed by registers defined by distinct instructions. e.g.
80 %reg1041:6<def> = VSHRNv4i16 %reg1034<kill>, 12, pred:14, pred:%reg0
. . .
120 %reg1041:5<def> = VSHRNv4i16 %reg1039<kill>, 12, pred:14, pred:%reg0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103102
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Wed, 5 May 2010 18:15:26 +0000 (18:15 +0000)]
Add a suppressions file for an intermittent "leak" under RegisterPass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103100
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 5 May 2010 17:41:00 +0000 (17:41 +0000)]
MC: Rename MCSymbol::{g,s}etValue -> MCSymbol::{g,s}etVariableValue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103095
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 5 May 2010 17:22:39 +0000 (17:22 +0000)]
MC/Mach-O/x86_64: Relocations in debug sections should use local relocations
when possible.
- <rdar://problem/
7934873>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103092
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 5 May 2010 17:22:35 +0000 (17:22 +0000)]
lit: Allow test_format to be None.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103091
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 5 May 2010 15:17:47 +0000 (15:17 +0000)]
Try again if write(2) reports an recoverable error.
This should fix mysteriously crashing boost regression tests when stderr is
managed by bjam (PR7043).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103085
91177308-0d34-0410-b5e6-
96231b3b80d8
Shantonu Sen [Wed, 5 May 2010 13:56:46 +0000 (13:56 +0000)]
Add newline to end of file to avoid warning
when building llvm with clang
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103084
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 5 May 2010 07:35:59 +0000 (07:35 +0000)]
Revert 102941, we're going to do this via attr and can just
hack the code to turn it off when debugging.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103083
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Hunt [Wed, 5 May 2010 04:31:44 +0000 (04:31 +0000)]
Include the right header for toupper
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103073
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Hunt [Wed, 5 May 2010 04:13:08 +0000 (04:13 +0000)]
Add an emitter to handle the list of clang statement nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103071
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 4 May 2010 23:18:19 +0000 (23:18 +0000)]
Combine the implementations of the core part of the SSAUpdater and
MachineSSAUpdater to avoid duplicating all the code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103060
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 4 May 2010 22:13:03 +0000 (22:13 +0000)]
Update comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103057
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 May 2010 20:44:23 +0000 (20:44 +0000)]
add the ability to associate 'category' names with clang diagnostics
and diagnostic groups. This allows the compiler to group
diagnostics together (e.g. "Logic Warning",
"Format String Warning", etc) like the static analyzer does.
This is not exposed through anything in the compiler yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103050
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 4 May 2010 20:39:49 +0000 (20:39 +0000)]
With -neon-reg-sequence, models forming a Q register from a pair of consecutive D registers as a REG_SEQUENCE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103047
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 4 May 2010 20:38:12 +0000 (20:38 +0000)]
Do not pre-allocate for registers which form a REG_SEQUENCE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103041
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 4 May 2010 20:26:52 +0000 (20:26 +0000)]
Teach PHI elimination to remove REG_SEQUENCE instructions and update references of the source operands with references of the destination with subreg indices. e.g.
%reg1029<def>, %reg1030<def> = VLD1q16 %reg1024<kill>, ...
%reg1031<def> = REG_SEQUENCE %reg1029<kill>, 5, %reg1030<kill>, 6
=>
%reg1031:5<def>, %reg1031:6<def> = VLD1q16 %reg1024<kill>, ...
PHI elimination now does more than phi elimination. It is really a de-SSA pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103039
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 4 May 2010 20:09:25 +0000 (20:09 +0000)]
Use llvm.foo as the intrinsic, rather than llvm.dbg.value. Since the
values passed to llvm.dbg.value were not valid for the intrinsic, it
might have caused trouble one day if the verifier ever started checking
for valid debug info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103038
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 4 May 2010 20:03:21 +0000 (20:03 +0000)]
Defer adding critical edges to the "toSplit" list until after checking for
indirect branches in all the predecessors. This avoids unnecessarily
splitting edges in cases where load PRE is not possible anyway.
Thanks to Jakub Staszak for pointing this out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103034
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 May 2010 18:16:00 +0000 (18:16 +0000)]
one more thing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103024
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 May 2010 18:15:33 +0000 (18:15 +0000)]
update instructions for llvm-gcc4, the brave new world! PR7037
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103023
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 May 2010 17:58:46 +0000 (17:58 +0000)]
"on the rare occasion the SPU BE produces illegal assembly - it tries to emit an add instruction of the form 'a reg, reg, imm'."
Patch by Kalle Raiskila!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103021
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 4 May 2010 17:31:02 +0000 (17:31 +0000)]
MC/X86: Chris pointed that 'as' isn't consistent in accepting the long form of
instructions which have no direct register usage.
Darwin 'as' accepts:
add $0, (%rax)
but rejects
mov $0, (%rax)
for example.
Given that, only accept suffix matches which match exactly one form. We still
need to emit nice diagnostics for failures...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103015
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 4 May 2010 17:12:26 +0000 (17:12 +0000)]
Rename variables for consistency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103013
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 4 May 2010 16:12:42 +0000 (16:12 +0000)]
MC/X86: Add "support" for matching ATT style mnemonic prefixes.
- The idea is that when a match fails, we just try to match each of +'b', +'w',
+'l'. If exactly one matches, we assume this is a mnemonic prefix and accept
it. If all match, we assume it is width generic, and take the 'l' form.
- This would be a horrible hack, if it weren't so simple. Therefore it is an
elegant solution! Chris gets the credit for this particular elegant
solution. :)
- Next step to making this more robust is to have the X86 matcher generate the
mnemonic prefix information. Ideally we would also compute up-front exactly
which mnemonic to attempt to match, but this may require more custom code in
the matcher than is really worth it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103012
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 4 May 2010 14:25:42 +0000 (14:25 +0000)]
Fix a problem exposed by my previous commit and noticed by a release-asserts
buildbot: the debugging and non-debugging versions of getFunction were not
functionally equivalent: the non-debugging version wrongly assumed that if a
metadata operand was not metadata, then it had a non-null containing function.
This is not true, since the operand might be a global value, constant etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103008
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 4 May 2010 12:43:36 +0000 (12:43 +0000)]
Fix a variant of PR6112 found by thinking about it: when doing
RAUW of a global variable with a local variable in function F,
if function local metadata M in function G was using the global
then M would become function-local to both F and G, which is not
allowed. See the testcase for an example. Fixed by detecting
this situation and zapping the metadata operand when it occurs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103007
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 4 May 2010 09:23:54 +0000 (09:23 +0000)]
fix operand indexes when outputting InvokeInsts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103003
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 4 May 2010 06:15:30 +0000 (06:15 +0000)]
Set DW_AT_APPLE_omit_frame_ptr in endFunction() where MachineFunction is available all the time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103001
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 4 May 2010 01:12:27 +0000 (01:12 +0000)]
Use the SCEVAddRecExpr::getPostIncExpr utility function instead
of doing the same thing manually.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102997
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 4 May 2010 01:11:15 +0000 (01:11 +0000)]
Fix a copy+pasto.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102996
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 4 May 2010 01:05:02 +0000 (01:05 +0000)]
Do not ignore debug loc attached with llvm.dbg.declare while collecting debug info used by a module.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102995
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 4 May 2010 00:58:39 +0000 (00:58 +0000)]
Instruction selection optimizations may have moved the def of a function argument out of the entry block. rdar://
7937489
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102993
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Tue, 4 May 2010 00:42:46 +0000 (00:42 +0000)]
Fix to r102952. The MOV64toSDrm record in X86Instr64bit.td needed the opcode
changed to 0x7E from 0x6E as well as the previous change of RPDI to S3SI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102991
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 4 May 2010 00:33:13 +0000 (00:33 +0000)]
MC/Matcher: Add support for over-riding the default MatchInstruction function
name (for example, to allow targets to interpose the actual MatchInstruction
function).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102987
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 4 May 2010 00:33:07 +0000 (00:33 +0000)]
llvm-mc: Fix case were we would skip a line in the .s file after an instruction
match failure.
Also, fixes a few memory leak FIXMEs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102986
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 4 May 2010 00:22:40 +0000 (00:22 +0000)]
Teach scheduler about REG_SEQUENCE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102984
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 4 May 2010 00:13:24 +0000 (00:13 +0000)]
Add a polygen rule that reflects the fact that nsw and nuw can be
used together in either order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102983
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 4 May 2010 00:12:15 +0000 (00:12 +0000)]
Re-enable isel kill flags, now that the local allocator is ignoring them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102981
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 4 May 2010 00:11:37 +0000 (00:11 +0000)]
rdar://
7937137 - dbg values not being handled in thumb1 version of
eliminateFrameIndex(), leading to llvm_unreachable() assertion failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102980
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 3 May 2010 23:52:21 +0000 (23:52 +0000)]
Update one more 2.7 to 2.8.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102978
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 3 May 2010 23:51:05 +0000 (23:51 +0000)]
Minimally update ReleaseNotes.html for 2.8 development; uncomment and
update the big red warning at the top. Most of the old content remains
and awaits revision.
Clear out the API changes section, and start it up again with a
mention of the add->fadd transition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102977
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 3 May 2010 23:49:20 +0000 (23:49 +0000)]
Remove preexisting kill flags in RegAllocLocal, just like LiveVariables does.
This should make it possible to start producing kill flags in isel without
breaking stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102976
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 3 May 2010 23:36:34 +0000 (23:36 +0000)]
Factor out FastISel's code for materializing constants and other values
in registers into a separate function to de-couple it from the
top-down-specific logic in getRegForValue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102975
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 3 May 2010 22:59:34 +0000 (22:59 +0000)]
Implement builtin_return_address(x) and builtin_frame_address(x)
on PPC for x!=0.
7624113.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102972
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 3 May 2010 22:44:19 +0000 (22:44 +0000)]
Remove the API compatibility layer which converted add, sub, and mul
to fadd, fsub, and fmul, when used with a floating-point type. LLVM
has supported the new instructions since 2.6, so it's time to get
on board.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102971
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 3 May 2010 22:40:32 +0000 (22:40 +0000)]
Check that subregisters don't have independent values in RemoveCopyByCommutingDef().
This fixes PR6941.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102970
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 3 May 2010 22:36:46 +0000 (22:36 +0000)]
Fix tests to use fadd, fsub, and fmul, instead of add, sub, and mul,
when the type is floating-point.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102969
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 3 May 2010 22:18:49 +0000 (22:18 +0000)]
Reword a comment slightly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102966
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 3 May 2010 22:09:21 +0000 (22:09 +0000)]
Use getConstant instead of getIntegerSCEV. The two are basically the
same, now that getConstant has overloads consistent with ConstantInt::get.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102965
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 3 May 2010 21:51:21 +0000 (21:51 +0000)]
Revert r102948.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102964
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 3 May 2010 21:41:24 +0000 (21:41 +0000)]
Remove special case for llvmCore_Embedded project. This is no longer needed
since llvmCore is built as part of llvmgcc42 now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102962
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 3 May 2010 21:38:11 +0000 (21:38 +0000)]
Print basic block numbers in live interval debug output. Since the rest of the
debug output is showing machine instructions, the IR-level basic block names
aren't very meaningful, and because multiple machine basic blocks may be
derived from one IR-level BB, they're also not unique.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102960
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 3 May 2010 21:36:51 +0000 (21:36 +0000)]
Fix function prototype mismatch in LLVMUnionType(). Fixes PR7019.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102959
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Mon, 3 May 2010 21:31:40 +0000 (21:31 +0000)]
Changed llvm-mc to use the same suffixes with floating point compare
instructions as the Mac OS X darwin assembler. Some of which like 'fcoml'
assembled to different opcodes. While some of the suffixes were just different.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102958
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Mon, 3 May 2010 21:03:31 +0000 (21:03 +0000)]
Fixed the encoding of two of the X86 movq instuctions. The Move quadword from
mm to mm/m64 and the Move quadword from xmm2/mem64 to xmm1 had the incorrect
encodings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102952
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Mon, 3 May 2010 20:45:05 +0000 (20:45 +0000)]
Fixed the encoding of the x86 push instructions. Using a 32-bit immediate value
caused the a pushl instruction to be incorrectly encoding using only two bytes
of immediate, causing the following 2 instruction bytes to be part of the 32-bit
immediate value. Also fixed the one byte form of push to be used when the
immediate would fit in a signed extended byte. Lastly changed the names to not
include the 32 of PUSH32 since they actually push the size of the stack pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102951
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 3 May 2010 20:39:35 +0000 (20:39 +0000)]
Testcase for r102947.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102948
91177308-0d34-0410-b5e6-
96231b3b80d8