Douglas Gregor
41de3d792a
Remove MaybeOwningPtr. We're going to use reference-counting instead.
...
llvm-svn: 100499
2010-04-05 23:53:46 +00:00
Jakob Stoklund Olesen
fcc2dfa1b4
Properly enable load clustering.
...
Operand 2 on a load instruction does not have to be a RegisterSDNode for this to
work.
llvm-svn: 100497
2010-04-05 23:48:02 +00:00
Evan Cheng
c6dc63d62c
Fix an obvious copy-n-paste bug. It's not known to cause any miscompilation.
...
llvm-svn: 100494
2010-04-05 23:33:29 +00:00
Chris Lattner
f753452587
Give AsmParser an option to control whether it finalizes
...
the stream. New demo:
$ clang asm.c -S -o - -emit-llvm | llc -filetype=obj -o t.o
$ otool -tv t.o
t.o:
(__TEXT,__text) section
_foo:
0000000000000000 subq $0x08,%rsp
0000000000000004 movl %edi,(%rsp)
0000000000000007 movl %edi,%eax
0000000000000009 incl %eax
000000000000000b movl %eax,(%rsp)
000000000000000e movl %eax,0x04(%rsp)
0000000000000012 addq $0x08,%rsp
0000000000000016 ret
llvm-svn: 100492
2010-04-05 23:15:42 +00:00
Chris Lattner
5b4c7591ac
add .o file writing for inline asm in llc. Here's a silly
...
demo:
$ clang asm.c -S -o - -emit-llvm | llc -filetype=obj -o t.o
<inline asm>:1:2: error: unrecognized instruction
abc incl %eax
^
LLVM ERROR: Error parsing inline asm
Only problem seems to be that the parser finalizes OutStreamer
at the end of the first inline asm, which isn't what we want.
For example:
$ cat asm.c
int foo(int X) {
__asm__ ("incl %0" : "+r" (X));
return X;
}
$ clang asm.c -S -o - -emit-llvm | llc
...
subq $8, %rsp
movl %edi, (%rsp)
movl %edi, %eax
## InlineAsm Start
incl %eax
## InlineAsm End
movl %eax, (%rsp)
movl %eax, 4(%rsp)
addq $8, %rsp
ret
$ clang asm.c -S -o - -emit-llvm | llc -filetype=obj -o t.o
$ otool -tv t.o
t.o:
(__TEXT,__text) section
_foo:
0000000000000000 subq $0x08,%rsp
0000000000000004 movl %edi,(%rsp)
0000000000000007 movl %edi,%eax
0000000000000009 incl %eax
$
don't stop at inc!
llvm-svn: 100491
2010-04-05 23:11:24 +00:00
Chris Lattner
c1d1549692
add a comment.
...
llvm-svn: 100490
2010-04-05 23:07:42 +00:00
Chris Lattner
8b9eaae8d5
tidy #includes.
...
llvm-svn: 100489
2010-04-05 23:07:18 +00:00
Bill Wendling
bf50ddf6ac
Output floating point representations in DWARF format. This is done by outputing
...
the FP encoding directly as a hex representation.
llvm-svn: 100487
2010-04-05 22:59:21 +00:00
Chris Lattner
cf8b0d4228
update unit test for api change.
...
llvm-svn: 100486
2010-04-05 22:49:48 +00:00
Chris Lattner
269737461d
stringref-ize the MemoryBuffer::get apis. This requires
...
a co-committed clang patch.
llvm-svn: 100485
2010-04-05 22:42:30 +00:00
Evan Cheng
7d177beb1d
Add nounwind.
...
llvm-svn: 100482
2010-04-05 22:30:05 +00:00
Evan Cheng
d72090a658
Fix ADD32rr_alt instruction encoding bug. Patch by Marius Wachtler.
...
llvm-svn: 100480
2010-04-05 22:21:09 +00:00
Chris Lattner
e25e981494
fix a really nasty bug that Evan was tracking in SCCP. When resolving
...
undefs in branches/switches, we have two cases: a branch on a literal
undef or a branch on a symbolic value which is undef. If we have a
literal undef, the code was correct: forcing it to a constant is the
right thing to do.
If we have a branch on a symbolic value that is undef, we should force
the symbolic value to a constant, which then makes the successor block
live. Forcing the condition of the branch to being a constant isn't
safe if later paths become live and the value becomes overdefined. This
is the case that 'forcedconstant' is designed to handle, so just use it.
This fixes rdar://7765019 but there is no good testcase for this, the
one I have is too insane to be useful in the future.
llvm-svn: 100478
2010-04-05 22:14:48 +00:00
Chris Lattner
7cd9ea25c1
some code cleanups, use SwitchInst::findCaseValue, reduce indentation
...
llvm-svn: 100468
2010-04-05 21:18:32 +00:00
Evan Cheng
98db71c632
Code clean up.
...
llvm-svn: 100467
2010-04-05 21:16:25 +00:00
Eric Christopher
7205f8f510
Remove FIXME.
...
llvm-svn: 100466
2010-04-05 21:14:32 +00:00
Douglas Gregor
394c3bc02e
Introduce MaybeOwningPtr, a smart pointer that may (or may not) have
...
ownership over the pointer it contains. Useful when we want to
communicate ownership while still having several clients holding on to
the same pointer *without* introducing reference counting.
llvm-svn: 100463
2010-04-05 21:09:22 +00:00
Jeffrey Yasskin
39cdeee4c3
Fix OProfileJITEventListener build for new DebugLoc.
...
llvm-svn: 100461
2010-04-05 21:09:12 +00:00
Dan Gohman
302746a632
Add a comment.
...
llvm-svn: 100459
2010-04-05 20:24:08 +00:00
Chris Lattner
7d609ea6cb
lowering a volatile llvm.memcpy to a libc memcpy is ok.
...
PR6779
llvm-svn: 100457
2010-04-05 20:11:45 +00:00
Dan Gohman
2aff0055c1
Don't do code sinking on unreachable blocks. It's unprofitable and hazardous.
...
llvm-svn: 100455
2010-04-05 19:17:22 +00:00
Dan Gohman
fab42b8e7b
Add an isReachableFromEntry to MachineDominators, following the one
...
in Dominators.
llvm-svn: 100454
2010-04-05 19:16:38 +00:00
Tanya Lattner
899c498b79
Update to note that clang has a baseline now. Dropping x86-32 for MacOS.
...
llvm-svn: 100447
2010-04-05 18:35:37 +00:00
Chris Lattner
ae3049ffa0
don't use emitlabel in the arm asm printer yet, the order
...
isn't well specified. ARM really needs to have its instprinter
finished at some point.
llvm-svn: 100439
2010-04-05 17:52:31 +00:00
Owen Anderson
3694d62450
Push const through the regex engine. Fixes some of the warnings in PR6616.
...
llvm-svn: 100438
2010-04-05 17:50:20 +00:00
Chris Lattner
bf754085cc
fix a couple problems I introduced handling symbols
...
with spaces in them. Sym->getName() != OS << *Sym
llvm-svn: 100434
2010-04-05 16:32:14 +00:00
Benjamin Kramer
fdb716eb4d
Disambiguate else.
...
llvm-svn: 100423
2010-04-05 10:17:15 +00:00
Chris Lattner
1f68705ad9
trim some prototypes.
...
llvm-svn: 100420
2010-04-05 06:21:01 +00:00
Chris Lattner
aa58ed7c00
remove the now-redundant MMI pointer in SelectionDAG.
...
llvm-svn: 100419
2010-04-05 06:19:28 +00:00
Chris Lattner
91309715b4
hopefully sate the clang self host build, which is apparently
...
instantiating some folding set stuff that GCC isn't, requiring
some types to not be incomplete.
I don't know if clang is right or wrong, but unbreaking the
bot is goodness. Here's the broken build:
http://google1.osuosl.org:8011/builders/clang-x86_64-darwin10-selfhost/builds/1813/steps/compile.llvm.stage2/logs/stdio
llvm-svn: 100418
2010-04-05 06:12:01 +00:00
Chris Lattner
097a332684
remove some redundant MMI arguments.
...
llvm-svn: 100417
2010-04-05 06:10:13 +00:00
Chris Lattner
6f3c3f60ce
unthread MMI from FastISel
...
llvm-svn: 100416
2010-04-05 06:05:26 +00:00
Chris Lattner
cfca39ef59
remove the MMI pointer from MachineFrameInfo.
...
llvm-svn: 100415
2010-04-05 05:57:52 +00:00
Chris Lattner
811d538611
enhance MachineFunction to have a MMI pointer.
...
llvm-svn: 100414
2010-04-05 05:49:50 +00:00
Nick Lewycky
828e7cab3e
Add MC and LTO, two terms I just had to explain on IRC.
...
llvm-svn: 100413
2010-04-05 05:48:47 +00:00
Chris Lattner
ef9a9ee3a2
simplify code.
...
llvm-svn: 100412
2010-04-05 05:48:36 +00:00
Chris Lattner
4a201bab8f
prune #includes.
...
llvm-svn: 100411
2010-04-05 05:43:16 +00:00
Chris Lattner
341747c032
privatize more stuff, eliminate vtables.
...
llvm-svn: 100410
2010-04-05 05:32:45 +00:00
Chris Lattner
5d96bd2bbe
reprivatize now that DwarfWriter is gone.
...
llvm-svn: 100409
2010-04-05 05:31:04 +00:00
Chris Lattner
59156acba1
prune #includes, MMI can never be null
...
llvm-svn: 100408
2010-04-05 05:28:23 +00:00
Chris Lattner
f2fb401571
prune #includes, realize the MMI can never be null.
...
llvm-svn: 100407
2010-04-05 05:24:55 +00:00
Chris Lattner
37d4f1e56e
finally blast DwarfWriter away.
...
llvm-svn: 100406
2010-04-05 05:12:59 +00:00
Chris Lattner
df6b0827aa
change AsmPrinter to use DwarfDebug/DwarfException directly
...
instead of going through DwarfWriter.
llvm-svn: 100405
2010-04-05 05:11:15 +00:00
Johnny Chen
de83f26ce2
Get rid of traling whitespaces. No functionality change.
...
llvm-svn: 100404
2010-04-05 04:51:50 +00:00
Johnny Chen
ac6c45034f
The disassembler impl. of MCDisassembler::getInstruction() was using the pattern
...
uint32_t insn;
MemoryObject.readBytes(Address, 4, (uint8_t*)&insn, NULL)
to read 4 bytes of memory contents into a 32-bit uint variable. This leaves the
interpretation of byte order up to the host machine and causes PPC test cases of
arm-tests, neon-tests, and thumb-tests to fail. Fixed to use a byte array for
reading the memory contents and shift the bytes into place for the 32-bit uint
variable in the ARM case and 16-bit halfword in the Thumb case.
llvm-svn: 100403
2010-04-05 04:46:17 +00:00
Chris Lattner
57240dc0db
implement EmitFunctionEntryLabel to emit the .cc_top directive,
...
allowing xcore to use the normal runOnMachineFunction
implementation.
llvm-svn: 100402
2010-04-05 04:44:02 +00:00
Chris Lattner
89c15f926a
don't reference DwarfWriter
...
llvm-svn: 100401
2010-04-05 04:11:11 +00:00
Chris Lattner
248e65ec05
trim some spurious references to DwarfWriter. SDIsel really doesn't
...
need it anymore, so don't addRequire it.
llvm-svn: 100400
2010-04-05 04:09:20 +00:00
Chris Lattner
74ce04b9bc
prune some #includes.
...
llvm-svn: 100399
2010-04-05 04:04:10 +00:00
Chris Lattner
16ed3bfb2b
eliminate DwarfDebug::shouldEmit, which is the same now as MMI::hasDebugInfo
...
llvm-svn: 100386
2010-04-05 03:52:55 +00:00