| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 92572
|
|
|
|
|
|
|
| |
framework omits differentiated edge sources in the case where the labels
are empty strings.
llvm-svn: 90254
|
|
|
|
| |
llvm-svn: 90253
|
|
|
|
| |
llvm-svn: 90252
|
|
|
|
| |
llvm-svn: 90136
|
|
|
|
| |
llvm-svn: 90134
|
|
|
|
| |
llvm-svn: 90133
|
|
|
|
|
|
| |
- The world needs better C++ refactoring tools, can I get an Amen!?
llvm-svn: 79843
|
|
|
|
| |
llvm-svn: 79832
|
|
|
|
|
|
|
|
| |
while
the latter is capable of representing either a primitive or an extended type.
llvm-svn: 78713
|
|
|
|
|
|
| |
own struct type.
llvm-svn: 78610
|
|
|
|
| |
llvm-svn: 76962
|
|
|
|
|
|
| |
SDNode::print_details to eliminate a ton of near-duplicate code.
llvm-svn: 74311
|
|
|
|
|
|
| |
but in the meantime lets print targetflags on node labels.
llvm-svn: 74274
|
|
|
|
|
|
|
|
| |
through the GraphViz rendering code.
Update other uses in the codebase for this change.
llvm-svn: 74084
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
unnecessary paddings between constant pool entries, larger than necessary alignments (e.g. 8 byte alignment for .literal4 sections), and potentially other issues.
1. ConstantPoolSDNode alignment field is log2 value of the alignment requirement. This is not consistent with other SDNode variants.
2. MachineConstantPool alignment field is also a log2 value.
3. However, some places are creating ConstantPoolSDNode with alignment value rather than log2 values. This creates entries with artificially large alignments, e.g. 256 for SSE vector values.
4. Constant pool entry offsets are computed when they are created. However, asm printer group them by sections. That means the offsets are no longer valid. However, asm printer uses them to determine size of padding between entries.
5. Asm printer uses expensive data structure multimap to track constant pool entries by sections.
6. Asm printer iterate over SmallPtrSet when it's emitting constant pool entries. This is non-deterministic.
Solutions:
1. ConstantPoolSDNode alignment field is changed to keep non-log2 value.
2. MachineConstantPool alignment field is also changed to keep non-log2 value.
3. Functions that create ConstantPool nodes are passing in non-log2 alignments.
4. MachineConstantPoolEntry no longer keeps an offset field. It's replaced with an alignment field. Offsets are not computed when constant pool entries are created. They are computed on the fly in asm printer and JIT.
5. Asm printer uses cheaper data structure to group constant pool entries.
6. Asm printer compute entry offsets after grouping is done.
7. Change JIT code to compute entry offsets on the fly.
llvm-svn: 66875
|
|
|
|
| |
llvm-svn: 66867
|
|
|
|
| |
llvm-svn: 66866
|
|
|
|
|
|
| |
on the number of times a std::string is created and copied.
llvm-svn: 66396
|
|
|
|
|
|
|
| |
that previously included this header should include
SchedulerRegistry.h instead.
llvm-svn: 63937
|
|
|
|
| |
llvm-svn: 62127
|
|
|
|
| |
llvm-svn: 61036
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is currently off by default, and can be enabled with
-disable-post-RA-scheduler=false.
This doesn't have a significant impact on most code yet because it doesn't
yet do anything to address anti-dependencies and it doesn't attempt to
disambiguate memory references. Also, several popular targets
don't have pipeline descriptions yet.
The majority of the changes here are splitting the SelectionDAG-specific
code out of ScheduleDAG, so that ScheduleDAG can be moved to
libLLVMCodeGen.a. The interface between ScheduleDAG-using code and
the rest of the scheduling code is somewhat rough and will evolve.
llvm-svn: 59676
|
|
|
|
|
|
| |
a virtual method of SelectionDAG.
llvm-svn: 59667
|
|
|
|
| |
llvm-svn: 59280
|
|
|
|
| |
llvm-svn: 59279
|
|
|
|
| |
llvm-svn: 59278
|
|
|
|
|
|
| |
the current function on its own, rather than relying on the SelectionDAG.
llvm-svn: 59277
|
|
|
|
|
|
|
|
|
|
| |
to carry a SmallVector of flagged nodes, just calculate the flagged nodes
dynamically when they are needed.
The local-liveness change is due to a trivial scheduling change where
the scheduler arbitrary decision differently.
llvm-svn: 59273
|
|
|
|
| |
llvm-svn: 59264
|
|
|
|
|
|
| |
for the possibility of scheduling without a SelectionDAG being present.
llvm-svn: 59263
|
|
|
|
|
|
| |
instead.
llvm-svn: 58290
|
|
|
|
|
|
| |
will be used to support debug features in TableGen.
llvm-svn: 58257
|
|
|
|
| |
llvm-svn: 57770
|
|
|
|
| |
llvm-svn: 56399
|
|
|
|
|
|
| |
Apologies for the thrashing.
llvm-svn: 56251
|
|
|
|
| |
llvm-svn: 56250
|
|
|
|
|
|
|
|
|
|
| |
- Add linkage to SymbolSDNode (default to external).
- Change ISD::ExternalSymbol to ISD::Symbol.
- Change ISD::TargetExternalSymbol to ISD::TargetSymbol
These changes pave the way to allowing SymbolSDNodes with non-external linkage.
llvm-svn: 56249
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently it just holds the calling convention and flags
for isVarArgs and isTailCall.
And it has several utility methods, which eliminate magic
5+2*i and similar index computations in several places.
CallSDNodes are not CSE'd. Teach UpdateNodeOperands to handle
nodes that are not CSE'd gracefully.
llvm-svn: 56183
|
|
|
|
|
|
|
| |
with ConstantInt. This led to fixing a bug in TargetLowering.cpp
using getValue instead of getAPIntValue.
llvm-svn: 56159
|
|
|
|
|
|
| |
Node to reflect semantics
llvm-svn: 55504
|
|
|
|
| |
llvm-svn: 55394
|
|
|
|
|
|
| |
really nice if someone converted MachineFunction::print to raw_ostream.
llvm-svn: 55268
|
|
|
|
|
|
| |
it isn't always visible to gdb.
llvm-svn: 54228
|
|
|
|
|
|
| |
the SelectionDAG's.
llvm-svn: 54129
|
|
|
|
| |
llvm-svn: 54128
|
|
|
|
|
|
|
| |
and use the right result number, in the off chance that the graph root
has multiple result values.
llvm-svn: 53923
|
|
|
|
|
|
|
|
| |
SelectionDAG graph writer to make use of them. Now, nodes with multiple
values are displayed as such, with incoming edges pointing to the
specific value they use.
llvm-svn: 53875
|
|
|
|
|
|
|
| |
that include useful information like the name of the
block being viewed and the current phase of compilation.
llvm-svn: 53872
|
|
|
|
| |
llvm-svn: 53772
|