| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
| |
truncating an SDValue (depending on whether the target
type is bigger or smaller than the value's type); or zero
extending or truncating it. Use it in a few places (this
seems to be a popular operation, but I only modified cases
of it in SelectionDAGBuild). In particular, the eh_selector
lowering was doing this wrong due to a repeated rather than
inverted test, fixed with this change.
llvm-svn: 84027
|
|
|
|
|
|
|
| |
since it won't do any folding. This will help avoid some inconvenient
casting.
llvm-svn: 83698
|
|
|
|
|
|
| |
similar to getTargetExtractSubreg.
llvm-svn: 83564
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Allocate MachineMemOperands and MachineMemOperand lists in MachineFunctions.
This eliminates MachineInstr's std::list member and allows the data to be
created by isel and live for the remainder of codegen, avoiding a lot of
copying and unnecessary translation. This also shrinks MemSDNode.
- Delete MemOperandSDNode. Introduce MachineSDNode which has dedicated
fields for MachineMemOperands.
- Change MemSDNode to have a MachineMemOperand member instead of its own
fields with the same information. This introduces some redundancy, but
it's more consistent with what MachineInstr will eventually want.
- Ignore alignment when searching for redundant loads for CSE, but remember
the greatest alignment.
Target-specific code which previously used MemOperandSDNodes with generic
SDNodes now use MemIntrinsicSDNodes, with opcodes in a designated range
so that the SelectionDAG framework knows that MachineMemOperand information
is available.
llvm-svn: 82794
|
|
|
|
|
|
|
|
| |
naming scheme used in SelectionDAG, where there are multiple kinds
of "target" nodes, but "machine" nodes are nodes which represent
a MachineInstr.
llvm-svn: 82790
|
|
|
|
| |
llvm-svn: 82742
|
|
|
|
| |
llvm-svn: 82656
|
|
|
|
|
|
|
| |
is also the name of their type, as declarations like "EVT EVT" look
really odd.
llvm-svn: 82654
|
|
|
|
|
|
|
|
|
|
|
|
| |
two different places for printing MachineMemOperands.
Drop the virtual from Value::dump and instead give Value a
protected virtual hook that can be overridden by subclasses
to implement custom printing. This lets printing be more
consistent, and simplifies printing of PseudoSourceValue
values.
llvm-svn: 82599
|
|
|
|
|
|
|
| |
the base pointer, without the offset. This matches MemSDNode's
new alignment behavior, and holds more interesting information.
llvm-svn: 82473
|
|
|
|
| |
llvm-svn: 82397
|
|
|
|
|
|
|
|
| |
cannot have different
SVOffsets.
llvm-svn: 81937
|
|
|
|
|
|
|
|
| |
the current alignment based
on the source value offset. This avoids increasing the size of mem nodes.
llvm-svn: 81897
|
|
|
|
| |
llvm-svn: 81819
|
|
|
|
|
|
|
| |
DAG Combiner to disambiguate chains for loads and stores of types which are
broken up by the Legalizer into smaller pieces.
llvm-svn: 81813
|
|
|
|
|
|
| |
swapping the operands if necessary.
llvm-svn: 80940
|
|
|
|
|
|
| |
Use MDNodes to encode debug info in llvm IR.
llvm-svn: 80406
|
|
|
|
| |
llvm-svn: 80073
|
|
|
|
|
|
| |
the array on its first access.
llvm-svn: 80040
|
|
|
|
|
|
|
|
| |
llvm.dbg.... global variables, to encode debugging information in llvm IR. This is mostly a mechanical change that tests metadata support very well.
This change speeds up llvm-gcc by more then 6% at "-O0 -g" (measured by compiling InstructionCombining.cpp!)
llvm-svn: 79977
|
|
|
|
|
|
| |
update all code that this affects.
llvm-svn: 79830
|
|
|
|
| |
llvm-svn: 79742
|
|
|
|
|
|
| |
locking.
llvm-svn: 79731
|
|
|
|
| |
llvm-svn: 79720
|
|
|
|
|
|
| |
whitespace.
llvm-svn: 79711
|
|
|
|
| |
llvm-svn: 79710
|
|
|
|
|
|
|
|
|
| |
be of (dynamically) constant values, so races on it are immaterial. We just need
to ensure that at least one write has completed before return the pointer into it.
With this change, parllc exhibits essentially no overhead on 403.gcc.
llvm-svn: 79708
|
|
|
|
|
|
|
| |
a smaller encoding. These kinds of patterns are very frequent in
sqlite3, for example.
llvm-svn: 79439
|
|
|
|
| |
llvm-svn: 79150
|
|
|
|
| |
llvm-svn: 79133
|
|
|
|
|
|
|
|
|
|
| |
libcall. Take advantage of this in the ARM backend to rectify broken
choice of CC when hard float is in effect. PIC16 may want to see if
it could be of use in MakePIC16Libcall, which works unchanged.
Patch by Sandeep!
llvm-svn: 79033
|
|
|
|
| |
llvm-svn: 78948
|
|
|
|
|
|
| |
infrastructure work needed to get the contexts to where they need to be first.
llvm-svn: 78759
|
|
|
|
| |
llvm-svn: 78725
|
|
|
|
|
|
|
|
| |
while
the latter is capable of representing either a primitive or an extended type.
llvm-svn: 78713
|
|
|
|
| |
llvm-svn: 78677
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and short. Well, it's kinda short. Definitely nasty and brutish.
The front-end generates the register/unregister calls into the SjLj runtime,
call-site indices and landing pad dispatch. The back end fills in the LSDA
with the call-site information provided by the front end. Catch blocks are
not yet implemented.
Built on Darwin and verified no llvm-core "make check" regressions.
llvm-svn: 78625
|
|
|
|
|
|
| |
own struct type.
llvm-svn: 78610
|
|
|
|
|
|
| |
SimpleValueType, which will simplify the privatization of IntegerType in the future.
llvm-svn: 78584
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of awkwardly encoding calling-convention information with ISD::CALL,
ISD::FORMAL_ARGUMENTS, ISD::RET, and ISD::ARG_FLAGS nodes, TargetLowering
provides three virtual functions for targets to override:
LowerFormalArguments, LowerCall, and LowerRet, which replace the custom
lowering done on the special nodes. They provide the same information, but
in a more immediately usable format.
This also reworks much of the target-independent tail call logic. The
decision of whether or not to perform a tail call is now cleanly split
between target-independent portions, and the target dependent portion
in IsEligibleForTailCallOptimization.
This also synchronizes all in-tree targets, to help enable future
refactoring and feature work.
llvm-svn: 78142
|
|
|
|
|
|
|
|
|
| |
TLI.computeMaskedBitsForTargetNode from ComputeMaskedBits, since
the former may call back into the latter. This fixes a major
compile time problem on a testcase that happnened to hit this
in a particularly bad way, PR4643.
llvm-svn: 78023
|
|
|
|
|
|
| |
actually characters.
llvm-svn: 77794
|
|
|
|
|
|
| |
rather than hardcoding them in DAG lowering.
llvm-svn: 77586
|
|
|
|
| |
llvm-svn: 77516
|
|
|
|
| |
llvm-svn: 77247
|
|
|
|
|
|
| |
thanks to contexts-on-types. More to come.
llvm-svn: 77011
|
|
|
|
| |
llvm-svn: 76702
|
|
|
|
| |
llvm-svn: 76356
|
|
|
|
| |
llvm-svn: 76097
|
|
|
|
|
|
|
|
| |
number of issues in
our current context-passing stuff, which is also fixed here
llvm-svn: 76089
|