mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-17 00:27:31 +00:00
Remove the code for special-casing byval for fast-isel. SelectionDAG
handles argument lowering anyway, so there's no need for special casing here. llvm-svn: 102828
This commit is contained in:
parent
11b3613649
commit
ada97c52fe
@ -59,9 +59,7 @@ static bool isUsedOutsideOfDefiningBlock(const Instruction *I) {
|
||||
static bool isOnlyUsedInEntryBlock(const Argument *A, bool EnableFastISel) {
|
||||
// With FastISel active, we may be splitting blocks, so force creation
|
||||
// of virtual registers for all non-dead arguments.
|
||||
// Don't force virtual registers for byval arguments though, because
|
||||
// fast-isel can't handle those in all cases.
|
||||
if (EnableFastISel && !A->hasByValAttr())
|
||||
if (EnableFastISel)
|
||||
return A->use_empty();
|
||||
|
||||
const BasicBlock *Entry = A->getParent()->begin();
|
||||
|
@ -732,31 +732,15 @@ void SelectionDAGISel::SelectAllBasicBlocks(const Function &Fn) {
|
||||
BasicBlock::const_iterator BI = Begin;
|
||||
|
||||
// Lower any arguments needed in this block if this is the entry block.
|
||||
bool SuppressFastISel = false;
|
||||
if (LLVMBB == &Fn.getEntryBlock()) {
|
||||
if (LLVMBB == &Fn.getEntryBlock())
|
||||
LowerArguments(LLVMBB);
|
||||
|
||||
// If any of the arguments has the byval attribute, forgo
|
||||
// fast-isel in the entry block.
|
||||
if (FastIS) {
|
||||
unsigned j = 1;
|
||||
for (Function::const_arg_iterator I = Fn.arg_begin(), E = Fn.arg_end();
|
||||
I != E; ++I, ++j)
|
||||
if (Fn.paramHasAttr(j, Attribute::ByVal)) {
|
||||
if (EnableFastISelVerbose || EnableFastISelAbort)
|
||||
dbgs() << "FastISel skips entry block due to byval argument\n";
|
||||
SuppressFastISel = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Setup an EH landing-pad block.
|
||||
if (BB->isLandingPad())
|
||||
PrepareEHLandingPad(BB);
|
||||
|
||||
// Before doing SelectionDAG ISel, see if FastISel has been requested.
|
||||
if (FastIS && !SuppressFastISel) {
|
||||
if (FastIS) {
|
||||
// Emit code for any incoming arguments. This must happen before
|
||||
// beginning FastISel on the entry block.
|
||||
if (LLVMBB == &Fn.getEntryBlock()) {
|
||||
|
Loading…
Reference in New Issue
Block a user