| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
and substitute false at the one call site.
llvm-svn: 100354
|
| |
|
|
|
|
|
|
| |
raw_ostream to print an instruction to had to be specified
at MCInstPrinter construction time instead of being able
to pick at each call to printInstruction.
llvm-svn: 100307
|
| |
|
|
|
|
| |
a few more things in AsmPrinter.cpp.
llvm-svn: 100294
|
| |
|
|
| |
llvm-svn: 100292
|
| |
|
|
| |
llvm-svn: 100290
|
| |
|
|
|
|
|
| |
If we have an MCAsmStreamer, we continue to emit asm textually,
otherwise we (currently) emit an error to errs and ignore it.
llvm-svn: 100289
|
| |
|
|
|
|
|
|
|
| |
create symbols. It is extremely error prone and a source of a lot
of the remaining integrated assembler bugs on x86-64.
This fixes rdar://7807601.
llvm-svn: 99902
|
| |
|
|
| |
llvm-svn: 99853
|
| |
|
|
|
|
|
| |
exactly two passes in that case, and don't ever need to recompute any layout,
so this is a nice baseline for relaxation performance.
llvm-svn: 99563
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Still O(N^2), just a faster form, and now its the MCAsmLayout's fault.
On the .s I am tuning against (combine.s from 403.gcc):
--
ddunbar@lordcrumb:MC$ diff stats-before.txt stats-after.txt
5,10c5,10
< 1728 assembler - Number of assembler layout and relaxation steps
< 7707 assembler - Number of emitted assembler fragments
< 120588 assembler - Number of emitted object file bytes
< 2233448 assembler - Number of evaluated fixups
< 1727 assembler - Number of relaxed instructions
< 6723845 mcexpr - Number of MCExpr evaluations
---
> 3 assembler - Number of assembler layout and relaxation steps
> 7707 assembler - Number of emitted assembler fragments
> 120588 assembler - Number of emitted object file bytes
> 14796 assembler - Number of evaluated fixups
> 1727 assembler - Number of relaxed instructions
> 67889 mcexpr - Number of MCExpr evaluations
--
Feel free to LOL at the -before numbers, if you like.
I am a little surprised we make more than 2 relaxation passes. It's pretty
trivial for us to do relaxation out-of-order if that would give a speedup.
llvm-svn: 99543
|
| |
|
|
| |
llvm-svn: 99529
|
| |
|
|
| |
llvm-svn: 99528
|
| |
|
|
| |
llvm-svn: 99504
|
| |
|
|
| |
llvm-svn: 99500
|
| |
|
|
| |
llvm-svn: 99499
|
| |
|
|
| |
llvm-svn: 99474
|
| |
|
|
| |
llvm-svn: 99473
|
| |
|
|
| |
llvm-svn: 99467
|
| |
|
|
|
|
|
|
| |
address with a symbol address.
- This fixes the integrated-as nightly test regressions.
llvm-svn: 99466
|
| |
|
|
|
|
| |
MCAsmLayout object.
llvm-svn: 99380
|
| |
|
|
| |
llvm-svn: 99350
|
| |
|
|
| |
llvm-svn: 99348
|
| |
|
|
|
|
| |
Also, both MCMachOStreamer and MCAssembler are now target independent!
llvm-svn: 99256
|
| |
|
|
|
|
| |
particular instruction + fixups might need relaxation.
llvm-svn: 99249
|
| |
|
|
|
|
| |
dependencies in MCMachOStreamer and MCAssembler.
llvm-svn: 99248
|
| |
|
|
|
|
| |
don't need to recompute them during relaxation. I will revisit this once all the other pieces of fast relaxation are in place.
llvm-svn: 99244
|
| |
|
|
| |
llvm-svn: 99231
|
| |
|
|
| |
llvm-svn: 99229
|
| |
|
|
| |
llvm-svn: 99228
|
| |
|
|
|
|
| |
would do, and sprinkle in some const.
llvm-svn: 99218
|
| |
|
|
| |
llvm-svn: 99217
|
| |
|
|
| |
llvm-svn: 99216
|
| |
|
|
|
|
| |
of a MCDataFragment). Object files should only need the generic MCFragment features.
llvm-svn: 99205
|
| |
|
|
| |
llvm-svn: 99204
|
| |
|
|
| |
llvm-svn: 99203
|
| |
|
|
|
|
| |
important.
llvm-svn: 99202
|
| |
|
|
| |
llvm-svn: 99031
|
| |
|
|
| |
llvm-svn: 98994
|
| |
|
|
|
|
|
|
| |
- This is "extraordinarily" Darwin 'as' compatible. See the litany of FIXMEs littered about for more information.
- There are a few cases which seem to clearly be 'as' bugs which I have left unsupported, and there is one cases where we diverge but should fix if it blocks diffing .o files (Darwin 'as' ends up widening a jump unnecessarily).
- 403.gcc build, runs, and diffs equivalently to the 'as' built version now (using llvm-mc). However, it builds so slowly that I wouldn't recommend trying it quite yet. :)
llvm-svn: 98974
|
| |
|
|
|
|
| |
- MCAssembler is now object-file independent, although we will surely need more work to fully support ELF/COFF.
llvm-svn: 98955
|
| |
|
|
| |
llvm-svn: 98954
|
| |
|
|
| |
llvm-svn: 98953
|
| |
|
|
| |
llvm-svn: 98952
|
| |
|
|
| |
llvm-svn: 98950
|
| |
|
|
| |
llvm-svn: 98949
|
| |
|
|
| |
llvm-svn: 98948
|
| |
|
|
|
|
| |
specific not object writer specific task.
llvm-svn: 98947
|
| |
|
|
|
|
| |
and eliminate MCAsmFixup::FixedValue.
llvm-svn: 98944
|