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 |
|
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
|
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 |
|
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 |
|
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 |
|
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 |
|
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
|
16ed3bfb2b
|
eliminate DwarfDebug::shouldEmit, which is the same now as MMI::hasDebugInfo
llvm-svn: 100386
|
2010-04-05 03:52:55 +00:00 |
|
Chris Lattner
|
697c2edddc
|
fix a regression on 2009-08-17-DebugInfo.m
llvm-svn: 100385
|
2010-04-05 03:49:26 +00:00 |
|
Chris Lattner
|
c930f73b4d
|
selection dag doesn't need DwarfWriter, remove some tendrils.
llvm-svn: 100382
|
2010-04-05 02:23:33 +00:00 |
|
Chris Lattner
|
1fda8b3a8b
|
fastisel doesn't need DwarfWriter, remove some tendricles.
llvm-svn: 100381
|
2010-04-05 02:19:28 +00:00 |
|
Chris Lattner
|
6040137045
|
just have all targets create the DwarfWriter.
llvm-svn: 100377
|
2010-04-05 00:42:55 +00:00 |
|
Chris Lattner
|
fd80e7cca8
|
nuke DwarfPrinter
llvm-svn: 100375
|
2010-04-05 00:27:29 +00:00 |
|
Chris Lattner
|
122288eb97
|
make DwarfException not inherit from DwarfPrinter.
llvm-svn: 100374
|
2010-04-05 00:26:50 +00:00 |
|
Chris Lattner
|
c1b63a2dfa
|
change SizeOf to take AsmPrinter instead of TargetData,
simplifying a bunch of code.
llvm-svn: 100373
|
2010-04-05 00:18:22 +00:00 |
|
Chris Lattner
|
2b89b0d279
|
1) make DIE take AsmPrinter instead of DwarfPrinter.
2) change DwarfDebug to not inherit from DwarfPrinter.
llvm-svn: 100372
|
2010-04-05 00:13:49 +00:00 |
|
Chris Lattner
|
0744c47856
|
Move EmitFrameMoves into AsmPrinter.
llvm-svn: 100371
|
2010-04-04 23:41:46 +00:00 |
|
Chris Lattner
|
303e9e2e0a
|
simplify code and reduce indentation.
llvm-svn: 100369
|
2010-04-04 23:31:58 +00:00 |
|
Chris Lattner
|
2eaed62f7c
|
now that the magic is dispelled, move EmitSectionOffset to AsmPrinter.
llvm-svn: 100368
|
2010-04-04 23:25:33 +00:00 |
|
Chris Lattner
|
ecdad4bb0c
|
eliminate the magic AbsoluteDebugSectionOffsets MAI hook,
which is really a property of the section being referenced.
Add a predicate to MCSection to replace it.
Yay for reduction in magic.
llvm-svn: 100367
|
2010-04-04 23:22:29 +00:00 |
|
Chris Lattner
|
957eddbcb0
|
only emit section labels if we have debug info, fixing a few
regtest failures.
llvm-svn: 100366
|
2010-04-04 23:17:54 +00:00 |
|
Chris Lattner
|
7295a273aa
|
I was wrong, ocaml isn't referencing 'Ldata_begin', so remove it.
llvm-svn: 100365
|
2010-04-04 23:10:38 +00:00 |
|
Chris Lattner
|
4bd354ecd8
|
add some assertions to EmitSectionOffset.
llvm-svn: 100364
|
2010-04-04 23:06:31 +00:00 |
|
Chris Lattner
|
a991a67a29
|
stop emitting some dead L labels.
llvm-svn: 100363
|
2010-04-04 23:02:02 +00:00 |
|
Chris Lattner
|
265b59119d
|
Store an use the symbols emitted at the start of the debug
sections instead of magically rematerializing them later.
llvm-svn: 100362
|
2010-04-04 22:59:04 +00:00 |
|
Chris Lattner
|
53453a2dc8
|
remove the didInitial ivar, rename emitInitial to be more
descriptive, change EmitSectionOffset back to taking a
symbol instead of a string.
llvm-svn: 100361
|
2010-04-04 22:33:59 +00:00 |
|
Chris Lattner
|
df18fb3a6d
|
simplify EmitSectionOffset a little bit, improve comments.
llvm-svn: 100360
|
2010-04-04 22:25:14 +00:00 |
|
Chris Lattner
|
168d49e6cd
|
The "IsSmall" argument to EmitSectionOffset is always true,
constant fold it away.
llvm-svn: 100356
|
2010-04-04 21:34:40 +00:00 |
|
Chris Lattner
|
da4fe3e7d2
|
eliminate the "isEH" argument to EmitSectionOffset.
llvm-svn: 100355
|
2010-04-04 21:31:54 +00:00 |
|
Chris Lattner
|
2f1c065cef
|
isAbsoluteEHSectionOffsets always returns false, eliminate it
and substitute false at the one call site.
llvm-svn: 100354
|
2010-04-04 21:29:44 +00:00 |
|
Chris Lattner
|
c83be77854
|
move some more stuff to asmprinter.
llvm-svn: 100351
|
2010-04-04 20:20:50 +00:00 |
|
Chris Lattner
|
7214d4d564
|
simplify some code.
llvm-svn: 100350
|
2010-04-04 20:10:41 +00:00 |
|
Chris Lattner
|
703ccb1b4c
|
move EmitEncodingByte to AsmPrinter.
llvm-svn: 100349
|
2010-04-04 20:04:21 +00:00 |
|
Chris Lattner
|
071eb40cd2
|
move EmitCFAByte to AsmPrinter.
llvm-svn: 100348
|
2010-04-04 20:01:25 +00:00 |
|
Chris Lattner
|
24ed58efd1
|
inline EmitDifference away.
llvm-svn: 100347
|
2010-04-04 19:58:12 +00:00 |
|
Chris Lattner
|
779e051357
|
resolve a fixme.
llvm-svn: 100346
|
2010-04-04 19:28:59 +00:00 |
|
Chris Lattner
|
c2b0a02be0
|
move gettemplabel and getdwlabel to AsmPrinter and rename
them for consistency.
llvm-svn: 100345
|
2010-04-04 19:25:43 +00:00 |
|
Chris Lattner
|
342b44f89f
|
move uleb/sleb printing into AsmPrinter from DwarfPrinter.
llvm-svn: 100344
|
2010-04-04 19:09:29 +00:00 |
|