| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
requirement when creating stack objects in MachineFrameInfo.
Add CreateStackObjectWithMinAlign to throw error when the minimal alignment
can't be achieved and to clamp the alignment when the preferred alignment
can't be achieved. Same is true for CreateVariableSizedObject.
Will not emit error in CreateSpillStackObject or CreateStackObject.
As long as callers of CreateStackObject do not assume the object will be
aligned at the requested alignment, we should not have miscompile since
later optimizations which look at the object's alignment will have the correct
information.
rdar://12713765
llvm-svn: 172027
|
| |
|
|
| |
llvm-svn: 172026
|
| |
|
|
| |
llvm-svn: 172022
|
| |
|
|
|
|
| |
hangings.
llvm-svn: 172020
|
| |
|
|
| |
llvm-svn: 172015
|
| |
|
|
| |
llvm-svn: 172011
|
| |
|
|
|
|
| |
instruction to determine the max vectorization factor.
llvm-svn: 172010
|
| |
|
|
|
|
|
|
|
| |
It cahced XOR's operands before calling visitXOR() but failed to update the
operands when visitXOR changed the XOR node.
rdar://12968664
llvm-svn: 171999
|
| |
|
|
|
|
|
|
| |
llvm::sys::PrintStackTraceOnErrorSignal(),
into a new function llvm::sys::PrintStackTrace, so that it's available to clients for logging purposes.
llvm-svn: 171989
|
| |
|
|
|
|
|
|
|
|
| |
commits ala echristo's suggestion.
1. Added debug messages when in OptimizeIndividualCalls we move calls into predecessors and then erase the original call.
2. Added debug messages when in the process of moving calls in ObjCARCOpt::MoveCalls we create new RR and delete old RR.
3. Added a debug message when we visit a specific retain instruction in ObjCARCOpt::PerformCodePlacement.
llvm-svn: 171988
|
| |
|
|
|
|
|
| |
The bundle flags are used by MachineBasicBlock::print(), they don't need
to clutter up individual MachineInstrs.
llvm-svn: 171986
|
| |
|
|
|
|
|
|
| |
It is possible to build MI bundles that don't begin with a BUNDLE
header. Add support for such bundles, counting all instructions inside
the bundle.
llvm-svn: 171985
|
| |
|
|
|
|
| |
Fixes PR14854.
llvm-svn: 171984
|
| |
|
|
| |
llvm-svn: 171983
|
| |
|
|
|
|
|
|
|
| |
This patch adjust the r171506 to make all DWARF enconding pc-relative
for PPC64. It also adds the R_PPC64_REL32 relocation handling in MCJIT
(since the eh_frame will not generate PIC-relative relocation) and also
adds the emission of stubs created by the TTypeEncoding.
llvm-svn: 171979
|
| |
|
|
|
|
|
|
|
|
| |
fp128 is almost but not quite completely illegal as a type on AArch64. As a
result it needs to have a register class (for argument passing mainly), but all
operations need to be lowered to runtime calls. Currently there's no way for
targets to do this (without duplicating code), as the relevant functions are
hidden in SelectionDAG. This patch changes that.
llvm-svn: 171971
|
| |
|
|
| |
llvm-svn: 171960
|
| |
|
|
| |
llvm-svn: 171954
|
| |
|
|
|
|
|
|
|
|
|
| |
two constant.
PR 14848. The lowered sequence is based on the existing sequence the target-independent
DAG Combiner creates for the scalar case.
Patch by Zvi Rackover.
llvm-svn: 171953
|
| |
|
|
| |
llvm-svn: 171951
|
| |
|
|
|
|
|
| |
address space. Reordered the EmitULEB128IntValue arguments to
make this easier.
llvm-svn: 171949
|
| |
|
|
|
|
|
|
|
|
| |
This was an experimental option, but needs to be defined
per-target. e.g. PPC A2 needs to aggressively hide latency.
I converted some in-order scheduling tests to A2. Hal is working on
more test cases.
llvm-svn: 171946
|
| |
|
|
|
|
| |
test/DebugInfo/member-pointers.ll would not fail in targetting BE any more.
llvm-svn: 171943
|
| |
|
|
|
|
|
|
|
|
|
| |
It's clearer and additionally this gets rid of the usage of `DefmID`,
which doesn't really correspond to anything in the language (it was just
used in the name of this parsing function which parsed a `MultiClassID`
and returned that multiclass's record).
This area of the code still needs a lot of work.
llvm-svn: 171938
|
| |
|
|
| |
llvm-svn: 171937
|
| |
|
|
| |
llvm-svn: 171936
|
| |
|
|
|
|
|
|
|
| |
It's not just def's but actually a limited subset of Object's that are
allowed inside a multiclass.
Spotted by Joel Jones.
llvm-svn: 171935
|
| |
|
|
|
|
| |
them.
llvm-svn: 171933
|
| |
|
|
|
|
| |
them and add one where it seemed obvious that we wanted one.
llvm-svn: 171932
|
| |
|
|
|
|
| |
Cost Model support on ARM.
llvm-svn: 171928
|
| |
|
|
|
|
|
|
| |
(There already has a concise comment to the declaration.)
Thank Eric Christopher for his feedback!
llvm-svn: 171926
|
| |
|
|
| |
llvm-svn: 171924
|
| |
|
|
|
|
| |
This is causing some problems. The root cause is unknown at this time.
llvm-svn: 171923
|
| |
|
|
|
|
|
| |
- this expression is explicitly marked no-signed-zero, or
- no-signed-zero of this expression can be derived from some context.
llvm-svn: 171922
|
| |
|
|
| |
llvm-svn: 171905
|
| |
|
|
|
|
|
|
|
|
| |
method because getContents().size() already covers it. So computeFragmentSize
can use the generic MCEncodedFragment interface when querying both Data and
Relaxable fragments for contents sizes.
No change in functionality
llvm-svn: 171903
|
| |
|
|
|
|
|
|
| |
Stop using BumpPtrAllocator for HNodes because
they have fields (vector, map) which require HNode
destructors to be run.
llvm-svn: 171896
|
| |
|
|
|
|
|
|
| |
an R_MIPS_GPREL16 relocation.
Contributer: Jack Carter
llvm-svn: 171882
|
| |
|
|
|
|
|
|
|
|
|
|
| |
value in the 64 bit .eh_frame section.
It doesn't however allow exception handling to work
yet since it depends on the correct relocation model
being set in the ELF header flags.
Contributer: Jack Carter
llvm-svn: 171881
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The current Intel Atom microarchitecture has a feature whereby
when a function returns early then it is slightly faster to execute
a sequence of NOP instructions to wait until the return address is ready,
as opposed to simply stalling on the ret instruction until
the return address is ready.
When compiling for X86 Atom only, this patch will run a pass,
called "X86PadShortFunction" which will add NOP instructions where less
than four cycles elapse between function entry and return.
It includes tests.
This patch has been updated to address Nadav's review comments
- Optimize only at >= O1 and don't do optimization if -Os is set
- Stores MachineBasicBlock* instead of BBNum
- Uses DenseMap instead of std::map
- Fixes placement of braces
Patch by Andy Zhang.
llvm-svn: 171879
|
| |
|
|
| |
llvm-svn: 171872
|
| |
|
|
|
|
| |
variables into an IR builder call.
llvm-svn: 171871
|
| |
|
|
| |
llvm-svn: 171868
|
| |
|
|
| |
llvm-svn: 171867
|
| |
|
|
| |
llvm-svn: 171866
|
| |
|
|
|
|
| |
PR14782
llvm-svn: 171846
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
one file where it is called as a static function. Nuke the declaration
and the definition in lib/CodeGen, along with the include of
SelectionDAG.h from this file.
There is no dependency edge from lib/CodeGen to
lib/CodeGen/SelectionDAG, so it isn't valid for a routine in lib/CodeGen
to reference the DAG. There is a dependency from
lib/CodeGen/SelectionDAG on lib/CodeGen. This breaks one violation of
this layering.
llvm-svn: 171842
|
| |
|
|
|
|
| |
make sure that vector types do work.
llvm-svn: 171833
|
| |
|
|
| |
llvm-svn: 171832
|
| |
|
|
| |
llvm-svn: 171829
|