mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 02:52:53 +02:00
GlobalISel: Don't assert on operations with no type indices
Fix not marking G_FENCE as legal on AMDGPU This was apparently defaulting to legal using the "legacy" rules, whatever those are.
This commit is contained in:
parent
c5f936ea9a
commit
24fbc7d5dd
@ -105,6 +105,7 @@ raw_ostream &LegalityQuery::print(raw_ostream &OS) const {
|
||||
static bool hasNoSimpleLoops(const LegalizeRule &Rule, const LegalityQuery &Q,
|
||||
const std::pair<unsigned, LLT> &Mutation) {
|
||||
switch (Rule.getAction()) {
|
||||
case Legal:
|
||||
case Custom:
|
||||
case Lower:
|
||||
case MoreElements:
|
||||
@ -122,7 +123,7 @@ static bool mutationIsSane(const LegalizeRule &Rule,
|
||||
std::pair<unsigned, LLT> Mutation) {
|
||||
// If the user wants a custom mutation, then we can't really say much about
|
||||
// it. Return true, and trust that they're doing the right thing.
|
||||
if (Rule.getAction() == Custom)
|
||||
if (Rule.getAction() == Custom || Rule.getAction() == Legal)
|
||||
return true;
|
||||
|
||||
const unsigned TypeIdx = Mutation.first;
|
||||
|
@ -1491,6 +1491,9 @@ AMDGPULegalizerInfo::AMDGPULegalizerInfo(const GCNSubtarget &ST_,
|
||||
getActionDefinitionsBuilder(G_READCYCLECOUNTER)
|
||||
.legalFor({S64});
|
||||
|
||||
getActionDefinitionsBuilder(G_FENCE)
|
||||
.alwaysLegal();
|
||||
|
||||
getActionDefinitionsBuilder({
|
||||
// TODO: Verify V_BFI_B32 is generated from expanded bit ops
|
||||
G_FCOPYSIGN,
|
||||
|
Loading…
Reference in New Issue
Block a user