8215708: ZGC: Add missing LoadBarrierNode::size_of()

Reviewed-by: eosterlund, neliasso
This commit is contained in:
Per Lidén 2019-01-09 13:31:34 +01:00
parent 5887c4a9c3
commit f2f7690741
2 changed files with 25 additions and 2 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -189,6 +189,15 @@ LoadBarrierNode::LoadBarrierNode(Compile* C,
bs->register_potential_barrier_node(this);
}
uint LoadBarrierNode::size_of() const {
return sizeof(*this);
}
uint LoadBarrierNode::cmp(const Node& n) const {
ShouldNotReachHere();
return 0;
}
const Type *LoadBarrierNode::bottom_type() const {
const Type** floadbarrier = (const Type **)(Compile::current()->type_arena()->Amalloc_4((Number_of_Outputs)*sizeof(Type*)));
Node* in_oop = in(Oop);
@ -198,6 +207,11 @@ const Type *LoadBarrierNode::bottom_type() const {
return TypeTuple::make(Number_of_Outputs, floadbarrier);
}
const TypePtr* LoadBarrierNode::adr_type() const {
ShouldNotReachHere();
return NULL;
}
const Type *LoadBarrierNode::Value(PhaseGVN *phase) const {
const Type** floadbarrier = (const Type **)(phase->C->type_arena()->Amalloc_4((Number_of_Outputs)*sizeof(Type*)));
const Type* val_t = phase->type(in(Oop));
@ -441,6 +455,11 @@ Node *LoadBarrierNode::Ideal(PhaseGVN *phase, bool can_reshape) {
return NULL;
}
uint LoadBarrierNode::match_edge(uint idx) const {
ShouldNotReachHere();
return 0;
}
void LoadBarrierNode::fix_similar_in_uses(PhaseIterGVN* igvn) {
Node* out_res = proj_out_or_null(Oop);
if (out_res == NULL) {

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -62,10 +62,14 @@ public:
bool oop_reload_allowed);
virtual int Opcode() const;
virtual uint size_of() const;
virtual uint cmp(const Node& n) const;
virtual const Type *bottom_type() const;
virtual const TypePtr* adr_type() const;
virtual const Type *Value(PhaseGVN *phase) const;
virtual Node *Identity(PhaseGVN *phase);
virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
virtual uint match_edge(uint idx) const;
LoadBarrierNode* has_dominating_barrier(PhaseIdealLoop* phase,
bool linear_only,