Skip to content

Changes

Summary

  1. Evaluate constant byteLenNode of arrayCopyChild (commit: 2499368) (details)
Commit 2499368d158e7b760cc1bc818198105b1c78bd6c by Rahil Shah
Evaluate constant byteLenNode of arrayCopyChild

In case of constant length array copy code, a length of bytes to be
copied would be loaded into register in case we need to perform a test
to check for destructive region copies and perform destructive array
copy. We need to make sure that byteLength node is evaluated before the
internal control flow starts. We found an issue where downstream
consumer of primitive arraycopy sequnece generator needed byteLenReg and
as the constant value was loaded only in case we fail absolute test for
forward copy check, we ended up in scenario where it reads a value from
array using length which consists of garbage. This commit fixes the
issue and in case, we do not know the direction for array copy, it
evaluates bytelength node before internal control flow starts.

Signed-off-by: Rahil Shah <rahil@ca.ibm.com>
(commit: 2499368)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)