| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 116037
|
| |
|
|
| |
llvm-svn: 116036
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
connected components. These components should be allocated different virtual
registers because there is no reason for them to be allocated together.
Add the ConnectedVNInfoEqClasses class to calculate the connected components,
and move values to new LiveIntervals.
Use it from SplitKit::rewrite by creating new virtual registers for the
components.
llvm-svn: 116006
|
| |
|
|
| |
llvm-svn: 116004
|
| |
|
|
| |
llvm-svn: 115996
|
| |
|
|
|
|
| |
prototype or not.
llvm-svn: 115988
|
| |
|
|
| |
llvm-svn: 115974
|
| |
|
|
| |
llvm-svn: 115973
|
| |
|
|
| |
llvm-svn: 115971
|
| |
|
|
| |
llvm-svn: 115965
|
| |
|
|
| |
llvm-svn: 115963
|
| |
|
|
| |
llvm-svn: 115957
|
| |
|
|
| |
llvm-svn: 115949
|
| |
|
|
| |
llvm-svn: 115946
|
| |
|
|
| |
llvm-svn: 115933
|
| |
|
|
| |
llvm-svn: 115932
|
| |
|
|
|
|
|
| |
initialization functions that initialize the set of passes implemented in
that library. Add C bindings for these functions as well.
llvm-svn: 115927
|
| |
|
|
| |
llvm-svn: 115901
|
| |
|
|
|
|
|
| |
a header declaring them all. This is also where we will declare per-library pass-set
initializer functions down the road.
llvm-svn: 115900
|
| |
|
|
|
|
|
| |
stuff that wants to take one or the other. These can both be used
as the operation of a dag in a pattern match.
llvm-svn: 115877
|
| |
|
|
|
|
|
|
| |
This function is intended to be used when inserting a machine instruction that
trivially restricts the legal registers, like LEA requiring a GR32_NOSP
argument.
llvm-svn: 115875
|
| |
|
|
| |
llvm-svn: 115835
|
| |
|
|
| |
llvm-svn: 115833
|
| |
|
|
| |
llvm-svn: 115829
|
| |
|
|
|
|
| |
rather than being fixed to the global registry.
llvm-svn: 115824
|
| |
|
|
| |
llvm-svn: 115799
|
| |
|
|
| |
llvm-svn: 115792
|
| |
|
|
| |
llvm-svn: 115788
|
| |
|
|
| |
llvm-svn: 115764
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
allow target to correctly compute latency for cases where static scheduling
itineraries isn't sufficient. e.g. variable_ops instructions such as
ARM::ldm.
This also allows target without scheduling itineraries to compute operand
latencies. e.g. X86 can return (approximated) latencies for high latency
instructions such as division.
- Compute operand latencies for those defined by load multiple instructions,
e.g. ldm and those used by store multiple instructions, e.g. stm.
llvm-svn: 115755
|
| |
|
|
|
|
|
|
| |
drastically reduce the linking time during LTO.
Patch by Shantonu Sen!
llvm-svn: 115728
|
| |
|
|
|
|
|
|
|
|
| |
INITIALIZE_PASS AND INITIALIZE_AG_PASS
expand to an initializeMyPass() function (in additional to the extant static ctors). Eventually, these will be called
from a big InitializeAllPasses() function, and the PassInfo's they create (which would be leaked if this code were used
at the moment) will be handed off to a PassRegistry for ownership.
llvm-svn: 115703
|
| |
|
|
|
|
|
| |
they should be in the symbol table or not. Instead of "guessing", just compute
the symbol table after the relocations are known.
llvm-svn: 115619
|
| |
|
|
| |
llvm-svn: 115595
|
| |
|
|
|
|
|
|
|
| |
it in with the SSSE3 instructions.
Steward! Could you place this chair by the aft sun deck? I'm trying to get away
from the Astors. They are such boors!
llvm-svn: 115552
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) Changed ValidateDwarfFileNumber() to isValidDwarfFileNumber() to be better
named. Since it is just a predicate and isn't actually changing any state.
2) Added a missing return in the comments for setCurrentDwarfLoc() in
include/llvm/MC/MCContext.h for fix formatting.
3) Changed clearDwarfLocSeen() to ClearDwarfLocSeen() since it does change
state.
4) Simplified the last test in isValidDwarfFileNumber() to just a one line
boolean test of MCDwarfFiles[FileNumber] != 0 for the final return statement.
llvm-svn: 115551
|
| |
|
|
|
|
|
| |
section kind. Previously, optimized nops were only used for MachO.
Also added tests for ELF and COFF.
llvm-svn: 115523
|
| |
|
|
|
|
| |
that is sign extended. This fixes PR8288
llvm-svn: 115473
|
| |
|
|
|
|
|
|
| |
so and also change X86 for consistency.
Investigating if this can be improved a bit.
llvm-svn: 115469
|
| |
|
|
| |
llvm-svn: 115463
|
| |
|
|
|
|
|
|
|
|
|
| |
is partly because this attribute caused trouble in the past (the
SmallVector one had to be changed from aligned to aligned(8) due
to causing crashes on i386 for example; in theory the same might
be needed in the Allocator case...). But it's mostly because
there seems to be no point in special casing gcc here. Using the
same implementation for all compilers results in better testing.
llvm-svn: 115462
|
| |
|
|
|
|
|
|
|
|
|
| |
LiveInterval::MergeValueNumberInto instead of trying to extend LiveRanges and
getting it wrong.
This fixed PR8249 where a valno with a multi-segment live range was defined by
an identity copy created by RemoveCopyByCommutingDef. Some of the live
segments disappeared.
llvm-svn: 115385
|
| |
|
|
| |
llvm-svn: 115378
|
| |
|
|
|
|
|
|
|
| |
if-conversion heuristic APIs. For now,
stick with a constant estimate of 90% (branch predictors are good!), but we might find that we want to provide
more nuanced estimates in the future.
llvm-svn: 115364
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The x86_mmx type is used for MMX intrinsics, parameters and
return values where these use MMX registers, and is also
supported in load, store, and bitcast.
Only the above operations generate MMX instructions, and optimizations
do not operate on or produce MMX intrinsics.
MMX-sized vectors <2 x i32> etc. are lowered to XMM or split into
smaller pieces. Optimizations may occur on these forms and the
result casted back to x86_mmx, provided the result feeds into a
previous existing x86_mmx operation.
The point of all this is prevent optimizations from introducing
MMX operations, which is unsafe due to the EMMS problem.
llvm-svn: 115243
|
| |
|
|
| |
llvm-svn: 115214
|
| |
|
|
|
|
| |
missed a bunch of files. Here the rest. Sorry about that.
llvm-svn: 115173
|
| |
|
|
|
|
| |
for the dwarf .loc support to emit dwarf line number tables.
llvm-svn: 115153
|
| |
|
|
|
|
|
| |
time. That way, the EntrySize field is initialized for other code paths,
namely, the .ll -> .o code path.
llvm-svn: 115141
|
| |
|
|
|
|
|
| |
Small test for sanity check of resulting ARM .s file.
Tested against -r115129.
llvm-svn: 115133
|