| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 42384
|
| |
|
|
|
|
| |
destruction of compiler-created ones.
llvm-svn: 42383
|
| |
|
|
|
|
|
| |
- Added ability to emit cross class register copies to the BBRU scheduler.
- More aggressive backtracking.
llvm-svn: 42375
|
| |
|
|
| |
llvm-svn: 42368
|
| |
|
|
| |
llvm-svn: 42359
|
| |
|
|
|
|
| |
Tested with "make check"!
llvm-svn: 42346
|
| |
|
|
|
|
|
| |
the check to see if the assembler supports .loc from X86TargetLowering
into the superclass TargetLowering.
llvm-svn: 42297
|
| |
|
|
|
|
| |
physical register dependency. The BURR scheduler can now backtrace and duplicate instructions in order to avoid "expensive / impossible to copy" values (e.g. status flag EFLAGS for x86) from being clobbered.
llvm-svn: 42284
|
| |
|
|
|
|
| |
such as will happen when .loc directives are used.
llvm-svn: 42277
|
| |
|
|
|
|
| |
consistency with the other currently empty sections.
llvm-svn: 42276
|
| |
|
|
|
|
| |
use with .loc directives.
llvm-svn: 42275
|
| |
|
|
|
|
| |
file numbers to use with .loc directives.
llvm-svn: 42272
|
| |
|
|
|
|
|
| |
in ExpandEXTRACT_VECTOR_ELT and SplitVectorOp. This fixes an abort
in the included testcase.
llvm-svn: 42264
|