1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00
Commit Graph

24294 Commits

Author SHA1 Message Date
Owen Anderson
751ff13625 Simplify the fast-patch interval spilling by using MachineRegisterInfo::reg_iterator.
llvm-svn: 54930
2008-08-18 18:38:12 +00:00
Owen Anderson
39bb486001 Resurrect some ancient code to add spill ranges without attempting folding, remat, or splitting. This code has been updated to current APIs
in so far as it compiles and, in theory, works, but does not take advantage of recent advancements.  For instance, it could be improved by using
MachineRegisterInfo::use_iterator.

llvm-svn: 54924
2008-08-18 18:05:32 +00:00
Nicolas Geoffray
c5c2108727 Register the frame register function when allocating the JIT,
so that lli works out of the box with -enable-eh.

llvm-svn: 54920
2008-08-18 14:53:56 +00:00
Evan Cheng
3b0cb367c0 ARM asm printer can't handle dwarf info yet.
llvm-svn: 54913
2008-08-18 08:52:48 +00:00
Bill Wendling
12569b3697 Don't hoist instructions that have implicit uses or defines. Before, it was
hoisting out some "test" and "cmp" instructions. This was obvious badness.

llvm-svn: 54908
2008-08-18 00:33:49 +00:00
Nick Lewycky
371935de4a Make this comment clearer. Instead of using an ambiguous ~ (not) on an icmp
predicate, swap the order of the operands.

llvm-svn: 54907
2008-08-17 20:02:02 +00:00
Nick Lewycky
30a0ad8900 Consider the case where xor by -1 and xor by 128 have been combined already to
produce an xor by 127.

llvm-svn: 54906
2008-08-17 19:58:24 +00:00
Evan Cheng
6534c78383 Fix a (u)comiss intrinsic lowering bug. It was using anyext which can return junk in higher bits. Patch by Nate Begeman.
llvm-svn: 54903
2008-08-17 19:22:34 +00:00
Gordon Henriksen
0a5e079b8e Don't require Registry specializations to define random static variables.
llvm-svn: 54902
2008-08-17 19:08:34 +00:00
Gordon Henriksen
a9ff400fa9 Drop an unnecessary include.
llvm-svn: 54901
2008-08-17 18:54:05 +00:00
Gordon Henriksen
8409ec74bc Regenerate.
llvm-svn: 54900
2008-08-17 18:48:50 +00:00
Gordon Henriksen
2cc861a6c1 Rename some GC classes so that their roll will hopefully be clearer.
In particular, Collector was confusing to implementors. Several
thought that this compile-time class was the place to implement
their runtime GC heap. Of course, it doesn't even exist at runtime.
Specifically, the renames are:

  Collector               -> GCStrategy
  CollectorMetadata       -> GCFunctionInfo
  CollectorModuleMetadata -> GCModuleInfo
  CollectorRegistry       -> GCRegistry
  Function::getCollector  -> getGC (setGC, hasGC, clearGC)

Several accessors and nested types have also been renamed to be
consistent. These changes should be obvious.

llvm-svn: 54899
2008-08-17 18:44:35 +00:00
Cedric Venet
e1e9213f95 Make it compile on VC2005:
- update VC projects.
- Add an overload to llvm::Stream for <<, since std::hex and std::dec have type std::ios_base& (*)(std::ios_base&) in VC++. (templating the function don't work, due to ambiguities)
- add ../ on several include in X86/AsmPrinter/

llvm-svn: 54898
2008-08-17 18:24:26 +00:00
Chris Lattner
aa7b21d49b getLLVMName is only used for types now, which always pass in LocalPrefix. Specialize on it.
llvm-svn: 54897
2008-08-17 17:28:37 +00:00
Chris Lattner
2dc591352d switch valuemap's from std::map to densemap. This speeds up llvm-dis
on a stripped kc++ .bc file from 0.83 to 0.77s (8%)

llvm-svn: 54896
2008-08-17 17:25:25 +00:00
Gordon Henriksen
caf246344c Don't instantiate GC metadata for declarations.
llvm-svn: 54895
2008-08-17 16:18:50 +00:00
Anton Korobeynikov
f1b2880420 Fix merge error
llvm-svn: 54891
2008-08-17 13:56:03 +00:00
Anton Korobeynikov
4b6a6e3e8d Move ARM to pluggable asmprinter
llvm-svn: 54889
2008-08-17 13:55:10 +00:00
Anton Korobeynikov
389a2cfd39 Use correct name for PPC codegen library
llvm-svn: 54888
2008-08-17 13:54:44 +00:00
Anton Korobeynikov
461d8e4d92 Factor out asmprinter out of ppc
llvm-svn: 54887
2008-08-17 13:54:28 +00:00
Anton Korobeynikov
c2606f65c7 Move X86 assembler printers into separate directory. This allows JIT-only users not to link it in (use 'x86codegen' llvm-config arg for this)
llvm-svn: 54886
2008-08-17 13:53:59 +00:00
Anton Korobeynikov
1866ca5736 Move all assembler printing related stuff into new libAsmPrinter
llvm-svn: 54885
2008-08-17 13:53:04 +00:00
Anton Korobeynikov
19f5435928 Factor out asmprinters from collector interface.
llvm-svn: 54884
2008-08-17 13:52:35 +00:00
Gordon Henriksen
e51c9eb75e Factor GC metadata table assembly generation out of Collector in preparation for splitting AsmPrinter into its own library.
llvm-svn: 54881
2008-08-17 12:56:54 +00:00
Gordon Henriksen
4d2eb98d42 Factor GC metadata table assembly generation out of Collector in preparation for splitting AsmPrinter into its own library.
llvm-svn: 54880
2008-08-17 12:08:44 +00:00
Argyrios Kyrtzidis
5c264cf5c7 Get raw_ostream.cpp to compile on MSVC.
llvm-svn: 54879
2008-08-17 09:25:21 +00:00
Evan Cheng
a3c27d36bc Revert 54821. It's miscompiling 252.eon and 447.dealII
llvm-svn: 54878
2008-08-17 08:07:31 +00:00
Nick Lewycky
d797456fb4 I found a better place for this optz'n.
llvm-svn: 54877
2008-08-17 07:54:14 +00:00
Nick Lewycky
205be593b8 Xor'ing both sides of icmp by sign-bit is equivalent to swapping signedness of
the predicate.

Also, make this optz'n apply in more cases where it's safe to do so.

llvm-svn: 54876
2008-08-17 07:34:14 +00:00
Chris Lattner
661710bbd1 avoid an extraneous std::string construction
llvm-svn: 54875
2008-08-17 07:24:08 +00:00
Chris Lattner
c0610874cc Rework the routines that convert AP[S]Int into a string. Now, instead of
returning an std::string by value, it fills in a SmallString/SmallVector
passed in.  This significantly reduces string thrashing in some cases.

More specifically, this:
 - Adds an operator<< and a print method for APInt that allows you to 
   directly send them to an ostream.
 - Reimplements APInt::toString to be much simpler and more efficient
   algorithmically in addition to not thrashing strings quite as much.

This speeds up llvm-dis on kc++ by 7%, and may also slightly speed up the
asmprinter.  This also fixes a bug I introduced into the asmwriter in a
previous patch w.r.t. alias printing.

llvm-svn: 54873
2008-08-17 07:19:36 +00:00
Chris Lattner
4e4a482a41 remove a dead APInt ctor.
llvm-svn: 54869
2008-08-17 04:58:58 +00:00
Chris Lattner
332a173cff avoid string thrashing when formatting names in output. This
speeds up release-asserts llvm-dis on kc++ from 1.86s to 1.04s (~79%)

llvm-svn: 54868
2008-08-17 04:40:13 +00:00
Chris Lattner
ba25bb349e random cleanups.
llvm-svn: 54866
2008-08-17 04:17:45 +00:00
Chris Lattner
dab4a64423 add support for a cout/cerr analog (outs()/errs()) as well as
a simple adaptor class to give raw output capabilities to 
something that wants to write to an ostream.

llvm-svn: 54865
2008-08-17 04:13:37 +00:00
Chris Lattner
c9c1d50446 opening "-" automatically yields stdout.
llvm-svn: 54863
2008-08-17 03:53:23 +00:00
Chris Lattner
eef022091c rename OutputData to 'write' to match ostream.
llvm-svn: 54857
2008-08-17 01:46:05 +00:00
Chris Lattner
312d8de59b add a new raw_ostream class which is an extremely high performance ostream that
can *only* output data (no seeking, reading, etc).  This is adapted from the
clang "-E outputter", and is roughly 10% faster than stdio on darwin and 30%
(or more) faster than std::ostream.

llvm-svn: 54855
2008-08-17 01:35:29 +00:00
Anton Korobeynikov
bd9823f5a4 PPC/Linux normally uses named section for bss
llvm-svn: 54847
2008-08-16 12:59:02 +00:00
Anton Korobeynikov
61af04fa0a Use proper strings section name for PPC
llvm-svn: 54846
2008-08-16 12:58:46 +00:00
Anton Korobeynikov
d475141eea Use correct name for TLS address resolution routine on x86-64
llvm-svn: 54845
2008-08-16 12:58:29 +00:00
Anton Korobeynikov
d51454bfa6 Add interface for section override. Use this for Sparc, since it should use named BSS section.
llvm-svn: 54844
2008-08-16 12:58:12 +00:00
Anton Korobeynikov
436f708112 Move SLEB/ULEB size calculation routines from AsmPrinter to TargetAsmInfo. This makes JIT asmprinter-free.
llvm-svn: 54843
2008-08-16 12:57:46 +00:00
Anton Korobeynikov
767865a3d1 Reduce heap trashing due to std::string construction / concatenation via caching of section flags string representations
llvm-svn: 54842
2008-08-16 12:57:07 +00:00
Owen Anderson
13498aa150 Remove GCSE, ValueNumbering, and LoadValueNumbering. These have been deprecated for almost a year; it's finally time for them to go away.
llvm-svn: 54822
2008-08-15 21:31:02 +00:00
Devang Patel
a8e9ee0529 Reapply 54786. Add overflow and number of mantissa bits checks.
llvm-svn: 54821
2008-08-15 21:21:34 +00:00
Owen Anderson
426c49472d Convert several std::vectors over to SmallVector, and use reserve() as appropriate for cases where std::vector is still used.
llvm-svn: 54820
2008-08-15 18:49:41 +00:00
Chris Lattner
f991487f21 Inline the fastpath of PATypeHolder::get(). This is a small speedup in
instcombine among other things.

llvm-svn: 54814
2008-08-15 15:16:50 +00:00
Evan Cheng
b2e1459e48 Revert 54786. It's not checking for overflows, etc.
llvm-svn: 54813
2008-08-15 08:12:11 +00:00
Chris Lattner
28a74aa6ca use smallvector instead of vector for a couple worklists. This speeds up instcombine
by ~10% on some testcases.

llvm-svn: 54811
2008-08-15 04:03:01 +00:00