| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
No compile-time support for constant operations yet,
just format transformations. Make readers and
writers work. Split constants into 2 doubles in
Legalize.
llvm-svn: 42865
|
| |
|
|
| |
llvm-svn: 42824
|
| |
|
|
|
|
|
| |
Surprisingly complicated.
Adds getTargetNode for 2 outputs, no inputs (missing).
llvm-svn: 42822
|
| |
|
|
| |
llvm-svn: 42821
|
| |
|
|
|
|
| |
(physical registers only) from happening.
llvm-svn: 42820
|
| |
|
|
|
|
| |
for consistency.
llvm-svn: 42769
|
| |
|
|
|
|
|
|
| |
use ISD::{S,U}DIVREM and ISD::{S,U}MUL_HIO. Move the lowering code
associated with these operators into target-independent in LegalizeDAG.cpp
and TargetLowering.cpp.
llvm-svn: 42762
|
| |
|
|
|
|
|
|
|
| |
Check if one of the two results unneeded so see if a simpler operator
could bs used. Also check to see if each of the two computations could be
simplified if they were split into separate operators. Factor out the code
that calls visit() so that it can be used for this purpose.
llvm-svn: 42759
|
| |
|
|
|
|
| |
and individual SDOperand operands.
llvm-svn: 42753
|
| |
|
|
|
|
| |
optimization passes.
llvm-svn: 42749
|
| |
|
|
| |
llvm-svn: 42742
|
| |
|
|
|
|
|
|
| |
input. APInt unfortunately zero-extends signed integers, so Dale
modified the function to expect zero-extended input. Make this
assumption explicit in the function name.
llvm-svn: 42732
|
| |
|
|
| |
llvm-svn: 42692
|
| |
|
|
| |
llvm-svn: 42686
|
| |
|
|
|
|
|
|
| |
(vextract (v4f32 s2v (f32 load $addr)), 0) -> (f32 load $addr)
(vextract (v4i32 bc (v4f32 s2v (f32 load $addr))), 0) -> (i32 load $addr)
Remove x86 specific patterns.
llvm-svn: 42677
|
| |
|
|
|
|
| |
although not well, and shortening FP converts.
llvm-svn: 42672
|
| |
|
|
|
|
|
|
|
| |
basic arithmetic works.
Rename RTLIB long double functions to distinguish
different flavors of long double; the lib functions
have different names, alas.
llvm-svn: 42644
|
| |
|
|
| |
llvm-svn: 42636
|
| |
|
|
| |
llvm-svn: 42635
|
| |
|
|
| |
llvm-svn: 42634
|
| |
|
|
| |
llvm-svn: 42627
|
| |
|
|
| |
llvm-svn: 42626
|
| |
|
|
|
|
|
|
|
| |
scheduler will try a number of tricks in order to avoid generating the
copies. This may not be possible in case the node produces a chain value
that prevent movement. Try unfolding the load from the node before to allow
it to be moved / cloned.
llvm-svn: 42625
|
| |
|
|
| |
llvm-svn: 42620
|
| |
|
|
| |
llvm-svn: 42619
|
| |
|
|
|
|
| |
of comparing begin() and end().
llvm-svn: 42585
|
| |
|
|
| |
llvm-svn: 42537
|
| |
|
|
| |
llvm-svn: 42508
|
| |
|
|
|
|
| |
SourceFiles list is fully filled in so that it sees all of the files.
llvm-svn: 42506
|
| |
|
|
| |
llvm-svn: 42499
|
| |
|
|
| |
llvm-svn: 42486
|
| |
|
|
|
|
|
|
| |
use APFloat for int-to-float/double; use
round-to-nearest for these (implementation-defined,
seems to match gcc).
llvm-svn: 42484
|
| |
|
|
| |
llvm-svn: 42467
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This version enhances the previous patch to add root initialization
as discussed here:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070910/053455.html
Collector gives its subclasses control over generic algorithms:
unsigned NeededSafePoints; //< Bitmask of required safe points.
bool CustomReadBarriers; //< Default is to insert loads.
bool CustomWriteBarriers; //< Default is to insert stores.
bool CustomRoots; //< Default is to pass through to backend.
bool InitRoots; //< If set, roots are nulled during lowering.
It also has callbacks which collectors can hook:
/// If any of the actions are set to Custom, this is expected to
/// be overriden to create a transform to lower those actions to
/// LLVM IR.
virtual Pass *createCustomLoweringPass() const;
/// beginAssembly/finishAssembly - Emit module metadata as
/// assembly code.
virtual void beginAssembly(Module &M, std::ostream &OS,
AsmPrinter &AP,
const TargetAsmInfo &TAI) const;
virtual void finishAssembly(Module &M,
CollectorModuleMetadata &CMM,
std::ostream &OS, AsmPrinter &AP,
const TargetAsmInfo &TAI) const;
Various other independent algorithms could be implemented, but were
not necessary for the initial two collectors. Some examples are
listed here:
http://llvm.org/docs/GarbageCollection.html#collector-algos
llvm-svn: 42466
|
| |
|
|
| |
llvm-svn: 42457
|
| |
|
|
|
|
|
| |
terminator) the one that has a CopyToReg use. This fixes
2006-05-11-InstrSched.ll with -new-cc-modeling-scheme.
llvm-svn: 42453
|
| |
|
|
| |
llvm-svn: 42443
|
| |
|
|
| |
llvm-svn: 42442
|
| |
|
|
| |
llvm-svn: 42440
|
| |
|
|
| |
llvm-svn: 42439
|
| |
|
|
|
|
| |
add more such code for DIEDwarfLabel::SizeOf and DIEObjectLabel::SizeOf.
llvm-svn: 42435
|
| |
|
|
|
|
| |
targets with 64-bit addresses.
llvm-svn: 42434
|
| |
|
|
| |
llvm-svn: 42423
|
| |
|
|
|
|
|
|
| |
other than PPC64. Instead of fixing it, just remove it and fix all the
places that use it to use TargetData::getPointerSize() instead, as there
aren't very many. Most of the references were in DwarfWriter.cpp.
llvm-svn: 42419
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It includes:
- location and of each safe point in machine code (identified by a
label)
- location of each root within the stack frame (identified by an
offset), including the metadata tag provided to llvm.gcroot in
the user program
- size of the stack frame (for collectors which want to cheat on
stack crawling :)
- and eventually will include liveness
It is to be populated by back-ends during code-generation.
CollectorModuleMetadata aggregates this information across the
entire module.
llvm-svn: 42418
|
| |
|
|
|
|
| |
registry for dynamically-loaded garbage collection compiler plugins.
llvm-svn: 42415
|
| |
|
|
| |
llvm-svn: 42410
|
| |
|
|
| |
llvm-svn: 42389
|
| |
|
|
| |
llvm-svn: 42388
|
| |
|
|
|
|
| |
copies; Added statistics.
llvm-svn: 42387
|