tint: Simplify ++/-- handling in transform
Now that we have untyped literals, we can just add `1` rather than adding either `1u` or `1i`. Bug: tint:1488 Change-Id: I59512be8fc67b1bf45088478da7c93bed37a69b8 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94141 Auto-Submit: James Price <jrprice@google.com> Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: Ben Clayton <bclayton@google.com> Reviewed-by: Ben Clayton <bclayton@google.com>
This commit is contained in:
parent
43dfe9356e
commit
c7f7ca3d9e
|
@ -174,14 +174,8 @@ void ExpandCompoundAssignment::Run(CloneContext& ctx, const DataMap&, DataMap&)
|
||||||
state.Expand(assign, assign->lhs, ctx.Clone(assign->rhs), assign->op);
|
state.Expand(assign, assign->lhs, ctx.Clone(assign->rhs), assign->op);
|
||||||
} else if (auto* inc_dec = node->As<ast::IncrementDecrementStatement>()) {
|
} else if (auto* inc_dec = node->As<ast::IncrementDecrementStatement>()) {
|
||||||
// For increment/decrement statements, `i++` becomes `i = i + 1`.
|
// For increment/decrement statements, `i++` becomes `i = i + 1`.
|
||||||
// TODO(jrprice): Simplify this when we have untyped literals.
|
|
||||||
auto* sem_lhs = ctx.src->Sem().Get(inc_dec->lhs);
|
|
||||||
const ast::IntLiteralExpression* one =
|
|
||||||
sem_lhs->Type()->UnwrapRef()->is_signed_integer_scalar()
|
|
||||||
? ctx.dst->Expr(1_i)->As<ast::IntLiteralExpression>()
|
|
||||||
: ctx.dst->Expr(1_u)->As<ast::IntLiteralExpression>();
|
|
||||||
auto op = inc_dec->increment ? ast::BinaryOp::kAdd : ast::BinaryOp::kSubtract;
|
auto op = inc_dec->increment ? ast::BinaryOp::kAdd : ast::BinaryOp::kSubtract;
|
||||||
state.Expand(inc_dec, inc_dec->lhs, one, op);
|
state.Expand(inc_dec, inc_dec->lhs, ctx.dst->Expr(1_a), op);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
state.Finalize();
|
state.Finalize();
|
||||||
|
|
|
@ -473,7 +473,7 @@ fn main() {
|
||||||
auto* expect = R"(
|
auto* expect = R"(
|
||||||
fn main() {
|
fn main() {
|
||||||
var v : i32;
|
var v : i32;
|
||||||
v = (v + 1i);
|
v = (v + 1);
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
|
@ -493,7 +493,7 @@ fn main() {
|
||||||
auto* expect = R"(
|
auto* expect = R"(
|
||||||
fn main() {
|
fn main() {
|
||||||
var v : u32;
|
var v : u32;
|
||||||
v = (v + 1u);
|
v = (v + 1);
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
|
@ -513,7 +513,7 @@ fn main() {
|
||||||
auto* expect = R"(
|
auto* expect = R"(
|
||||||
fn main() {
|
fn main() {
|
||||||
var v : i32;
|
var v : i32;
|
||||||
v = (v - 1i);
|
v = (v - 1);
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
|
@ -533,7 +533,7 @@ fn main() {
|
||||||
auto* expect = R"(
|
auto* expect = R"(
|
||||||
fn main() {
|
fn main() {
|
||||||
var v : u32;
|
var v : u32;
|
||||||
v = (v - 1u);
|
v = (v - 1);
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
|
@ -556,7 +556,7 @@ fn main() {
|
||||||
var v : i32;
|
var v : i32;
|
||||||
let p = &(v);
|
let p = &(v);
|
||||||
let tint_symbol = &(*(p));
|
let tint_symbol = &(*(p));
|
||||||
*(tint_symbol) = (*(tint_symbol) + 1i);
|
*(tint_symbol) = (*(tint_symbol) + 1);
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
|
@ -584,7 +584,7 @@ struct S {
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
var s : S;
|
var s : S;
|
||||||
s.m = (s.m + 1i);
|
s.m = (s.m + 1);
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
|
@ -617,7 +617,7 @@ fn idx() -> i32 {
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let tint_symbol = &(a[idx()]);
|
let tint_symbol = &(a[idx()]);
|
||||||
*(tint_symbol) = (*(tint_symbol) + 1i);
|
*(tint_symbol) = (*(tint_symbol) + 1);
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
|
@ -651,7 +651,7 @@ fn idx() -> i32 {
|
||||||
fn main() {
|
fn main() {
|
||||||
let tint_symbol = &(v);
|
let tint_symbol = &(v);
|
||||||
let tint_symbol_1 = idx();
|
let tint_symbol_1 = idx();
|
||||||
(*(tint_symbol))[tint_symbol_1] = ((*(tint_symbol))[tint_symbol_1] + 1i);
|
(*(tint_symbol))[tint_symbol_1] = ((*(tint_symbol))[tint_symbol_1] + 1);
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
|
@ -671,7 +671,7 @@ fn main() {
|
||||||
auto* expect = R"(
|
auto* expect = R"(
|
||||||
fn main() {
|
fn main() {
|
||||||
var v : vec4<i32>;
|
var v : vec4<i32>;
|
||||||
v.y = (v.y + 1i);
|
v.y = (v.y + 1);
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
|
@ -727,7 +727,7 @@ fn main() {
|
||||||
continuing {
|
continuing {
|
||||||
let tint_symbol = &(a[idx1()]);
|
let tint_symbol = &(a[idx1()]);
|
||||||
let tint_symbol_1 = idx2();
|
let tint_symbol_1 = idx2();
|
||||||
(*(tint_symbol))[tint_symbol_1] = ((*(tint_symbol))[tint_symbol_1] + 1i);
|
(*(tint_symbol))[tint_symbol_1] = ((*(tint_symbol))[tint_symbol_1] + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue