| Index: pkg/compiler/lib/src/ssa/codegen_helpers.dart
|
| diff --git a/pkg/compiler/lib/src/ssa/codegen_helpers.dart b/pkg/compiler/lib/src/ssa/codegen_helpers.dart
|
| index c3e2bb6a3dd9840d421e1418265a07bc5dfb598d..34d156b292898108a4e11f060c93f6c951c8e543 100644
|
| --- a/pkg/compiler/lib/src/ssa/codegen_helpers.dart
|
| +++ b/pkg/compiler/lib/src/ssa/codegen_helpers.dart
|
| @@ -440,11 +440,18 @@ class SsaInstructionMerger extends HBaseVisitor {
|
|
|
| void visitIs(HIs instruction) {
|
| // In the general case the input might be used multple multiple times, so it
|
| - // must not be set generate at use site. If the code will generate
|
| - // 'instanceof' then we can generate at use site.
|
| + // must not be set generate at use site.
|
| +
|
| + // If the code will generate 'instanceof' then we can generate at use site.
|
| if (instruction.useInstanceOf) {
|
| analyzeInputs(instruction, 0);
|
| }
|
| +
|
| + // Compound and variable checks use a separate instruction to compute the
|
| + // result.
|
| + if (instruction.isCompoundCheck || instruction.isVariableCheck) {
|
| + analyzeInputs(instruction, 0);
|
| + }
|
| }
|
|
|
| // A bounds check method must not have its first input generated at use site,
|
|
|