| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 371 visited_on_paths_(graph->blocks()->length(), zone()) { | 371 visited_on_paths_(graph->blocks()->length(), zone()) { |
| 372 ASSERT(!AllowHandleAllocation::IsAllowed()); | 372 ASSERT(!AllowHandleAllocation::IsAllowed()); |
| 373 block_side_effects_.AddBlock(GVNFlagSet(), graph->blocks()->length(), | 373 block_side_effects_.AddBlock(GVNFlagSet(), graph->blocks()->length(), |
| 374 zone()); | 374 zone()); |
| 375 loop_side_effects_.AddBlock(GVNFlagSet(), graph->blocks()->length(), | 375 loop_side_effects_.AddBlock(GVNFlagSet(), graph->blocks()->length(), |
| 376 zone()); | 376 zone()); |
| 377 } | 377 } |
| 378 | 378 |
| 379 | 379 |
| 380 void HGlobalValueNumberingPhase::Reset() { | 380 void HGlobalValueNumberingPhase::Reset() { |
| 381 block_side_effects_.Clear(); | 381 ASSERT(block_side_effects_.length() == graph()->blocks()->length()); |
| 382 loop_side_effects_.Clear(); | 382 ASSERT(loop_side_effects_.length() == graph()->blocks()->length()); |
| 383 for (int i = 0; i < graph()->blocks()->length(); ++i) { |
| 384 block_side_effects_[i] = GVNFlagSet(); |
| 385 loop_side_effects_[i] = GVNFlagSet(); |
| 386 } |
| 383 visited_on_paths_.Clear(); | 387 visited_on_paths_.Clear(); |
| 384 block_side_effects_.AddBlock(GVNFlagSet(), graph()->blocks()->length(), | |
| 385 zone()); | |
| 386 loop_side_effects_.AddBlock(GVNFlagSet(), graph()->blocks()->length(), | |
| 387 zone()); | |
| 388 } | 388 } |
| 389 | 389 |
| 390 | 390 |
| 391 void HGlobalValueNumberingPhase::Analyze() { | 391 void HGlobalValueNumberingPhase::Analyze() { |
| 392 removed_side_effects_ = false; | 392 removed_side_effects_ = false; |
| 393 ComputeBlockSideEffects(); | 393 ComputeBlockSideEffects(); |
| 394 if (FLAG_loop_invariant_code_motion) { | 394 if (FLAG_loop_invariant_code_motion) { |
| 395 LoopInvariantCodeMotion(); | 395 LoopInvariantCodeMotion(); |
| 396 } | 396 } |
| 397 AnalyzeGraph(); | 397 AnalyzeGraph(); |
| (...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 862 dominated); | 862 dominated); |
| 863 successor_map->Kill(side_effects_on_all_paths); | 863 successor_map->Kill(side_effects_on_all_paths); |
| 864 successor_dominators->Kill(side_effects_on_all_paths); | 864 successor_dominators->Kill(side_effects_on_all_paths); |
| 865 } | 865 } |
| 866 } | 866 } |
| 867 current = next; | 867 current = next; |
| 868 } | 868 } |
| 869 } | 869 } |
| 870 | 870 |
| 871 } } // namespace v8::internal | 871 } } // namespace v8::internal |
| OLD | NEW |