Dan Gohman [Tue, 19 Aug 2008 20:56:30 +0000 (20:56 +0000)]
Factor out the code to scan an instruction's operands into a
helper function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55007
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 19 Aug 2008 20:46:54 +0000 (20:46 +0000)]
Use the BuildMI overload that sets up a destination register
instead of the one that doesn't and then adding it manually.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55006
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 19 Aug 2008 20:43:22 +0000 (20:43 +0000)]
Handle the case where target-specific fastisel code doesn't have
a desired opcode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55005
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 19 Aug 2008 20:36:33 +0000 (20:36 +0000)]
Add more comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55004
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 19 Aug 2008 20:31:38 +0000 (20:31 +0000)]
Fix indentation in FastISel tablegen-emitted code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55003
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 19 Aug 2008 20:30:54 +0000 (20:30 +0000)]
Add more checking to filter out more kinds of things that
FastISel doesn't support yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55002
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 19 Aug 2008 20:17:48 +0000 (20:17 +0000)]
remove reference to really really old tree
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55001
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 19 Aug 2008 20:09:52 +0000 (20:09 +0000)]
The fast-path still needs to set kill markers and spill/restore points as appropriate.
With this patch, all of MultiSource/Applications and all of SPEC2000/2006 pass with
the SimpleSpiller and this fast-path enabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55000
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 19 Aug 2008 18:47:28 +0000 (18:47 +0000)]
Add support for 8 and 16 bit forms of __sync
builtins on X86.
Change "lock" instructions to be on a separate line.
This is needed to work around a bug in the Darwin
assembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54999
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 19 Aug 2008 18:07:49 +0000 (18:07 +0000)]
80 columns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54998
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 19 Aug 2008 18:06:12 +0000 (18:06 +0000)]
Add a few doxygen comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54997
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 19 Aug 2008 17:53:16 +0000 (17:53 +0000)]
Remove an unneeded #include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54996
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Tue, 19 Aug 2008 17:09:26 +0000 (17:09 +0000)]
Delete a dead field.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54995
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Tue, 19 Aug 2008 17:06:35 +0000 (17:06 +0000)]
[PR2327] Leverage TargetRegisterInfo to compute frame offsets for GC metadata.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54994
91177308-0d34-0410-b5e6-
96231b3b80d8
Nicolas Geoffray [Tue, 19 Aug 2008 14:48:14 +0000 (14:48 +0000)]
Update the JIT exception writer to better mimic the codegen exception writer.
Also skip indirect encoding for platforms that ask for one: we direclty
write an address, not a pointer to the address.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54987
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 19 Aug 2008 06:22:16 +0000 (06:22 +0000)]
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54985
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 19 Aug 2008 05:26:17 +0000 (05:26 +0000)]
more cleanups, random methods shouldn't return ostreams.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54984
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 19 Aug 2008 05:16:28 +0000 (05:16 +0000)]
more cleanup, eliminate getLLVMName when printing out
type names at the top of the file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54983
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 19 Aug 2008 05:06:27 +0000 (05:06 +0000)]
random cleanups, factor some printing code for linkage and visibility
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54982
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 19 Aug 2008 04:47:09 +0000 (04:47 +0000)]
Change WriteTypeSymbolic/WriteAsOperand to return void instead of
an ostream, which is just weird.
Rename SC_DEBUG -> ST_DEBUG
Remove static indentation strangeness from WriteConstantInt. This makes it
so that large structs are not broken down and printed on multiple lines. If
there is demand for this to return, there are better ways to implement this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54981
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 19 Aug 2008 04:45:47 +0000 (04:45 +0000)]
whitespace cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54980
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 19 Aug 2008 04:45:19 +0000 (04:45 +0000)]
don't use the result of WriteAsOperand
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54979
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 19 Aug 2008 04:44:30 +0000 (04:44 +0000)]
don't use the result of WriteTypeSymbolic or WriteAsOperand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54978
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 19 Aug 2008 04:42:37 +0000 (04:42 +0000)]
Don't use the result of WriteAsOperand or WriteTypeSymbolic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54977
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 19 Aug 2008 04:36:02 +0000 (04:36 +0000)]
rearrange code and make more legible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54976
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 19 Aug 2008 04:28:07 +0000 (04:28 +0000)]
put SlotTracker in an anon namespace since it is private.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54975
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 19 Aug 2008 04:26:57 +0000 (04:26 +0000)]
Reid had to call this class "slot machine" out of some strange reference
to the gambling device. Name it something more meaningful.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54974
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 19 Aug 2008 04:23:02 +0000 (04:23 +0000)]
add raw_ostream method for emitting an unsigned.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54972
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 19 Aug 2008 01:17:41 +0000 (01:17 +0000)]
Compress manpages.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54971
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 19 Aug 2008 01:05:33 +0000 (01:05 +0000)]
Make SimpleSpiller respect subregister indices.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54968
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 19 Aug 2008 00:41:02 +0000 (00:41 +0000)]
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54964
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 19 Aug 2008 00:17:30 +0000 (00:17 +0000)]
Add a flag to enable the fast spilling path.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54958
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 18 Aug 2008 23:41:46 +0000 (23:41 +0000)]
Fix the FastISel class' doxygen comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54957
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 18 Aug 2008 23:41:04 +0000 (23:41 +0000)]
Fix a few more bugs:
1) Assign stack slots to new temporaries.
2) Don't insert an interval into the return vector more than once.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54956
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 18 Aug 2008 21:27:19 +0000 (21:27 +0000)]
remove empty file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54950
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 18 Aug 2008 21:20:32 +0000 (21:20 +0000)]
Fix several bugs in the new fast-path:
1) Remove an incorrect assertion.
2) Set the stack slot weight properly.
3) Resize the VirtRegMap when needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54949
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 18 Aug 2008 20:03:45 +0000 (20:03 +0000)]
Unbreak cpp backend: upgrade output due to change in APInt API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54942
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 18 Aug 2008 19:52:22 +0000 (19:52 +0000)]
Clients of addIntervalForSpills expect the added intervals to be returned sorted by starting index.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54939
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 18 Aug 2008 19:41:26 +0000 (19:41 +0000)]
Fix a bug daniel pointed out to me, where asmprinter started
printing ascii code for hex numbers instead of the hex numbers
themselves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54936
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 18 Aug 2008 18:38:12 +0000 (18:38 +0000)]
Simplify the fast-patch interval spilling by using MachineRegisterInfo::reg_iterator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54930
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 18 Aug 2008 18:29:54 +0000 (18:29 +0000)]
XFAIL this test for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54929
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 18 Aug 2008 18:05:32 +0000 (18:05 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54924
91177308-0d34-0410-b5e6-
96231b3b80d8
Nicolas Geoffray [Mon, 18 Aug 2008 14:53:56 +0000 (14:53 +0000)]
Register the frame register function when allocating the JIT,
so that lli works out of the box with -enable-eh.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54920
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 18 Aug 2008 08:52:48 +0000 (08:52 +0000)]
ARM asm printer can't handle dwarf info yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54913
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 18 Aug 2008 00:33:49 +0000 (00:33 +0000)]
Don't hoist instructions that have implicit uses or defines. Before, it was
hoisting out some "test" and "cmp" instructions. This was obvious badness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54908
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 17 Aug 2008 20:02:02 +0000 (20:02 +0000)]
Make this comment clearer. Instead of using an ambiguous ~ (not) on an icmp
predicate, swap the order of the operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54907
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 17 Aug 2008 19:58:24 +0000 (19:58 +0000)]
Consider the case where xor by -1 and xor by 128 have been combined already to
produce an xor by 127.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54906
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Sun, 17 Aug 2008 19:57:31 +0000 (19:57 +0000)]
Update VC++ project.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54905
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sun, 17 Aug 2008 19:25:28 +0000 (19:25 +0000)]
Didn't mean to change this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54904
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sun, 17 Aug 2008 19:22:34 +0000 (19:22 +0000)]
Fix a (u)comiss intrinsic lowering bug. It was using anyext which can return junk in higher bits. Patch by Nate Begeman.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54903
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Sun, 17 Aug 2008 19:08:34 +0000 (19:08 +0000)]
Don't require Registry specializations to define random static variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54902
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Sun, 17 Aug 2008 18:54:05 +0000 (18:54 +0000)]
Drop an unnecessary include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54901
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Sun, 17 Aug 2008 18:48:50 +0000 (18:48 +0000)]
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54900
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Sun, 17 Aug 2008 18:44:35 +0000 (18:44 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54899
91177308-0d34-0410-b5e6-
96231b3b80d8
Cedric Venet [Sun, 17 Aug 2008 18:24:26 +0000 (18:24 +0000)]
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/
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54898
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 17 Aug 2008 17:28:37 +0000 (17:28 +0000)]
getLLVMName is only used for types now, which always pass in LocalPrefix. Specialize on it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54897
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 17 Aug 2008 17:25:25 +0000 (17:25 +0000)]
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%)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54896
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Sun, 17 Aug 2008 16:18:50 +0000 (16:18 +0000)]
Don't instantiate GC metadata for declarations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54895
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Sun, 17 Aug 2008 14:41:11 +0000 (14:41 +0000)]
Set ignores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54894
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Sun, 17 Aug 2008 14:40:45 +0000 (14:40 +0000)]
Set ignores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54893
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 17 Aug 2008 14:33:01 +0000 (14:33 +0000)]
Link GC metadata printers by default to llc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54892
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 17 Aug 2008 13:56:03 +0000 (13:56 +0000)]
Fix merge error
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54891
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 17 Aug 2008 13:55:33 +0000 (13:55 +0000)]
Remove asmprinters from examples by default. This reduces their size by ~5%
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54890
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 17 Aug 2008 13:55:10 +0000 (13:55 +0000)]
Move ARM to pluggable asmprinter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54889
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 17 Aug 2008 13:54:44 +0000 (13:54 +0000)]
Use correct name for PPC codegen library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54888
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 17 Aug 2008 13:54:28 +0000 (13:54 +0000)]
Factor out asmprinter out of ppc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54887
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 17 Aug 2008 13:53:59 +0000 (13:53 +0000)]
Move X86 assembler printers into separate directory. This allows JIT-only users not to link it in (use 'x86codegen' llvm-config arg for this)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54886
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 17 Aug 2008 13:53:04 +0000 (13:53 +0000)]
Move all assembler printing related stuff into new libAsmPrinter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54885
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 17 Aug 2008 13:52:35 +0000 (13:52 +0000)]
Factor out asmprinters from collector interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54884
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Sun, 17 Aug 2008 12:56:54 +0000 (12:56 +0000)]
Factor GC metadata table assembly generation out of Collector in preparation for splitting AsmPrinter into its own library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54881
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Sun, 17 Aug 2008 12:08:44 +0000 (12:08 +0000)]
Factor GC metadata table assembly generation out of Collector in preparation for splitting AsmPrinter into its own library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54880
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sun, 17 Aug 2008 09:25:21 +0000 (09:25 +0000)]
Get raw_ostream.cpp to compile on MSVC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54879
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sun, 17 Aug 2008 08:07:31 +0000 (08:07 +0000)]
Revert 54821. It's miscompiling 252.eon and 447.dealII
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54878
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 17 Aug 2008 07:54:14 +0000 (07:54 +0000)]
I found a better place for this optz'n.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54877
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 17 Aug 2008 07:34:14 +0000 (07:34 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54876
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 17 Aug 2008 07:24:08 +0000 (07:24 +0000)]
avoid an extraneous std::string construction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54875
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 17 Aug 2008 07:19:36 +0000 (07:19 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54873
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 17 Aug 2008 06:40:16 +0000 (06:40 +0000)]
Fix build on GCC 4.3.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54870
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 17 Aug 2008 04:58:58 +0000 (04:58 +0000)]
remove a dead APInt ctor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54869
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 17 Aug 2008 04:40:13 +0000 (04:40 +0000)]
avoid string thrashing when formatting names in output. This
speeds up release-asserts llvm-dis on kc++ from 1.86s to 1.04s (~79%)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54868
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 17 Aug 2008 04:17:45 +0000 (04:17 +0000)]
random cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54866
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 17 Aug 2008 04:13:37 +0000 (04:13 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54865
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 17 Aug 2008 03:53:23 +0000 (03:53 +0000)]
opening "-" automatically yields stdout.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54863
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 17 Aug 2008 01:46:05 +0000 (01:46 +0000)]
rename OutputData to 'write' to match ostream.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54857
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 17 Aug 2008 01:35:54 +0000 (01:35 +0000)]
remove accidental comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54856
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 17 Aug 2008 01:35:29 +0000 (01:35 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54855
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 16 Aug 2008 12:59:02 +0000 (12:59 +0000)]
PPC/Linux normally uses named section for bss
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54847
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 16 Aug 2008 12:58:46 +0000 (12:58 +0000)]
Use proper strings section name for PPC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54846
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 16 Aug 2008 12:58:29 +0000 (12:58 +0000)]
Use correct name for TLS address resolution routine on x86-64
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54845
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 16 Aug 2008 12:58:12 +0000 (12:58 +0000)]
Add interface for section override. Use this for Sparc, since it should use named BSS section.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54844
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 16 Aug 2008 12:57:46 +0000 (12:57 +0000)]
Move SLEB/ULEB size calculation routines from AsmPrinter to TargetAsmInfo. This makes JIT asmprinter-free.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54843
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 16 Aug 2008 12:57:07 +0000 (12:57 +0000)]
Reduce heap trashing due to std::string construction / concatenation via caching of section flags string representations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54842
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sat, 16 Aug 2008 00:00:54 +0000 (00:00 +0000)]
Remove GCSE and LoadVN from the testsuite.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54832
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 15 Aug 2008 21:31:02 +0000 (21:31 +0000)]
Remove GCSE, ValueNumbering, and LoadValueNumbering. These have been deprecated for almost a year; it's finally time for them to go away.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54822
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 15 Aug 2008 21:21:34 +0000 (21:21 +0000)]
Reapply 54786. Add overflow and number of mantissa bits checks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54821
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 15 Aug 2008 18:49:41 +0000 (18:49 +0000)]
Convert several std::vectors over to SmallVector, and use reserve() as appropriate for cases where std::vector is still used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54820
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 15 Aug 2008 18:45:51 +0000 (18:45 +0000)]
Add a value_type typedef to SmallVector, to make it more compatible with STL adapters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54819
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 15 Aug 2008 15:16:50 +0000 (15:16 +0000)]
Inline the fastpath of PATypeHolder::get(). This is a small speedup in
instcombine among other things.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54814
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 15 Aug 2008 08:12:11 +0000 (08:12 +0000)]
Revert 54786. It's not checking for overflows, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54813
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 15 Aug 2008 04:03:01 +0000 (04:03 +0000)]
use smallvector instead of vector for a couple worklists. This speeds up instcombine
by ~10% on some testcases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54811
91177308-0d34-0410-b5e6-
96231b3b80d8