On Mon, 24 Aug 2026 10:23:32 GMT, Andrew Dinn <[email protected]> wrote:
> However, I don't think that can happen in practice because of the > `@IntrinsicCandidate` annotation. A transform based on profiling info could > only be used when compiling `conditionalSet` in which case a call to the > intrinsic would override the inlining operation and speculative > transformation. If there is an intrinsic, sure. I'm saying that security should not depend on whether an intrinsic is enabled. To be more explicit: constant-time execution is part of the specification of this method, and it fails to meet its specification. Now, you might argue that it is impossible to guarantee constant time in a method written in Java, and I might agree. What we really need is a value speculation barrier. That doesn't sound so difficult: it could be a node that has a value-range type as its input and the corresponding type as its output. Either that, or we have a two-input selection node semantically `t ? a : b` and we make sure it gets propagated all the way through C2. Anything less is just rearranging the deck chairs. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/32047#discussion_r3842756378
