| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 42257
|
| |
|
|
| |
llvm-svn: 42222
|
| |
|
|
|
|
|
|
|
|
| |
bit width instead of number of words allocated, which
makes it actually work for int->APF conversions.
Adjust callers. Add const to one of the APInt constructors
to prevent surprising match when called with const
argument.
llvm-svn: 42210
|
| |
|
|
| |
llvm-svn: 42204
|
| |
|
|
| |
llvm-svn: 42193
|
| |
|
|
| |
llvm-svn: 42155
|
| |
|
|
| |
llvm-svn: 42143
|
| |
|
|
|
|
| |
in tracking physical register output dependencies.
llvm-svn: 42125
|
| |
|
|
|
|
|
|
| |
shuffle <undef, undef, x, undef>, <undef, undef, undef, undef>, <2, 2, 2, 2>
!=
<undef, undef, x, undef>
llvm-svn: 42111
|
| |
|
|
| |
llvm-svn: 42103
|
| |
|
|
| |
llvm-svn: 42086
|
| |
|
|
|
|
|
| |
function. The information isn't used heavily -- it's only used at the end
of exception handling emission -- so there's no need to cache it.
llvm-svn: 42078
|