RFR: 8263164: assert(_base >= VectorA && _base <= VectorZ) failed: Not a Vector while calling StoreVectorNode::memory_size() [v4]

Jie Fu jiefu at openjdk.java.net
Mon Mar 15 12:01:07 UTC 2021


On Mon, 15 Mar 2021 08:21:14 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:

> > I didn't get your point why ReductionNode also suffers from the very same problem.
> > Could you please make it more clearer?
> 
> The following code experiences the very same problem, doesn't it?
> 
> ```
> class ReductionNode : public Node {
> ...
>   virtual const Type* bottom_type() const {
>     BasicType vbt = in(1)->bottom_type()->basic_type();
>     return Type::get_const_basic_type(vbt);
>   }
> ```

Hi @iwanowww ,

Di you mean the following assert may fail for ReductionNode?
  static const Type* get_const_basic_type(BasicType type) {
    assert((uint)type <= T_CONFLICT && _const_basic_type[type] != NULL, "bad type");
    return _const_basic_type[type];
  }

But it seems fine to pass a Type::TOP to it.
(gdb) call Type::TOP->basic_type()
$1 = T_VOID
(gdb) call Type::get_const_basic_type(Type::TOP->basic_type())
$2 = (const Type *) 0x7fff6402bc68

Am I missing something?

Thanks.
Best regards,
Jie

-------------

PR: https://git.openjdk.java.net/jdk/pull/2867


More information about the hotspot-compiler-dev mailing list