Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(128)

Unified Diff: runtime/vm/flow_graph_type_propagator.cc

Issue 2481873005: clang-format runtime/vm (Closed)
Patch Set: Merge Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/flow_graph_type_propagator.h ('k') | runtime/vm/freelist.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/flow_graph_type_propagator.cc
diff --git a/runtime/vm/flow_graph_type_propagator.cc b/runtime/vm/flow_graph_type_propagator.cc
index 4b9537526544681680dece9ccf6d95d05e5013cc..bc4a844d32c2e9f75d3f0dbd9f6d1f29477a692c 100644
--- a/runtime/vm/flow_graph_type_propagator.cc
+++ b/runtime/vm/flow_graph_type_propagator.cc
@@ -12,7 +12,9 @@
namespace dart {
-DEFINE_FLAG(bool, trace_type_propagation, false,
+DEFINE_FLAG(bool,
+ trace_type_propagation,
+ false,
"Trace flow graph type propagation");
DECLARE_FLAG(bool, propagate_types);
@@ -22,8 +24,7 @@ void FlowGraphTypePropagator::Propagate(FlowGraph* flow_graph) {
#ifndef PRODUCT
Thread* thread = flow_graph->thread();
TimelineStream* compiler_timeline = Timeline::GetCompilerStream();
- TimelineDurationScope tds2(thread,
- compiler_timeline,
+ TimelineDurationScope tds2(thread, compiler_timeline,
"FlowGraphTypePropagator");
#endif // !PRODUCT
FlowGraphTypePropagator propagator(flow_graph);
@@ -34,11 +35,13 @@ void FlowGraphTypePropagator::Propagate(FlowGraph* flow_graph) {
FlowGraphTypePropagator::FlowGraphTypePropagator(FlowGraph* flow_graph)
: FlowGraphVisitor(flow_graph->reverse_postorder()),
flow_graph_(flow_graph),
- visited_blocks_(new(flow_graph->zone()) BitVector(
- flow_graph->zone(), flow_graph->reverse_postorder().length())),
+ visited_blocks_(new (flow_graph->zone())
+ BitVector(flow_graph->zone(),
+ flow_graph->reverse_postorder().length())),
types_(flow_graph->current_ssa_temp_index()),
- in_worklist_(new(flow_graph->zone()) BitVector(
- flow_graph->zone(), flow_graph->current_ssa_temp_index())),
+ in_worklist_(new (flow_graph->zone())
+ BitVector(flow_graph->zone(),
+ flow_graph->current_ssa_temp_index())),
asserts_(NULL),
collected_asserts_(NULL) {
for (intptr_t i = 0; i < flow_graph->current_ssa_temp_index(); i++) {
@@ -80,16 +83,14 @@ void FlowGraphTypePropagator::Propagate() {
while (!worklist_.is_empty()) {
Definition* def = RemoveLastFromWorklist();
if (FLAG_support_il_printer && FLAG_trace_type_propagation) {
- THR_Print("recomputing type of v%" Pd ": %s\n",
- def->ssa_temp_index(),
+ THR_Print("recomputing type of v%" Pd ": %s\n", def->ssa_temp_index(),
def->Type()->ToCString());
}
if (def->RecomputeType()) {
if (FLAG_support_il_printer && FLAG_trace_type_propagation) {
THR_Print(" ... new type %s\n", def->Type()->ToCString());
}
- for (Value::Iterator it(def->input_use_list());
- !it.Done();
+ for (Value::Iterator it(def->input_use_list()); !it.Done();
it.Advance()) {
Instruction* instr = it.Current()->instruction();
@@ -218,8 +219,7 @@ void FlowGraphTypePropagator::VisitValue(Value* value) {
if (FLAG_support_il_printer && FLAG_trace_type_propagation) {
THR_Print("reaching type to %s for v%" Pd " is %s\n",
value->instruction()->ToCString(),
- value->definition()->ssa_temp_index(),
- type->ToCString());
+ value->definition()->ssa_temp_index(), type->ToCString());
}
}
@@ -264,8 +264,7 @@ void FlowGraphTypePropagator::VisitCheckClassId(CheckClassIdInstr* check) {
void FlowGraphTypePropagator::VisitInstanceCall(InstanceCallInstr* instr) {
if (instr->has_unique_selector()) {
- SetCid(instr->ArgumentAt(0),
- instr->ic_data()->GetReceiverClassIdAt(0));
+ SetCid(instr->ArgumentAt(0), instr->ic_data()->GetReceiverClassIdAt(0));
}
}
@@ -273,8 +272,7 @@ void FlowGraphTypePropagator::VisitInstanceCall(InstanceCallInstr* instr) {
void FlowGraphTypePropagator::VisitPolymorphicInstanceCall(
PolymorphicInstanceCallInstr* instr) {
if (instr->instance_call()->has_unique_selector()) {
- SetCid(instr->ArgumentAt(0),
- instr->ic_data().GetReceiverClassIdAt(0));
+ SetCid(instr->ArgumentAt(0), instr->ic_data().GetReceiverClassIdAt(0));
}
}
@@ -282,16 +280,14 @@ void FlowGraphTypePropagator::VisitPolymorphicInstanceCall(
void FlowGraphTypePropagator::VisitGuardFieldClass(
GuardFieldClassInstr* guard) {
const intptr_t cid = guard->field().guarded_cid();
- if ((cid == kIllegalCid) ||
- (cid == kDynamicCid) ||
+ if ((cid == kIllegalCid) || (cid == kDynamicCid) ||
Field::IsExternalizableCid(cid)) {
return;
}
Definition* def = guard->value()->definition();
CompileType* current = TypeOf(def);
- if (current->IsNone() ||
- (current->ToCid() != cid) ||
+ if (current->IsNone() || (current->ToCid() != cid) ||
(current->is_nullable() && !guard->field().is_nullable())) {
const bool is_nullable =
guard->field().is_nullable() && current->is_nullable();
@@ -377,17 +373,14 @@ void FlowGraphTypePropagator::StrengthenAssertWith(Instruction* check) {
if (check->IsCheckSmi()) {
check_clone =
new CheckSmiInstr(assert->value()->Copy(zone()),
- assert->env()->deopt_id(),
- check->token_pos());
+ assert->env()->deopt_id(), check->token_pos());
check_clone->AsCheckSmi()->set_licm_hoisted(
check->AsCheckSmi()->licm_hoisted());
} else {
ASSERT(check->IsCheckClass());
- check_clone =
- new CheckClassInstr(assert->value()->Copy(zone()),
- assert->env()->deopt_id(),
- check->AsCheckClass()->unary_checks(),
- check->token_pos());
+ check_clone = new CheckClassInstr(
+ assert->value()->Copy(zone()), assert->env()->deopt_id(),
+ check->AsCheckClass()->unary_checks(), check->token_pos());
check_clone->AsCheckClass()->set_licm_hoisted(
check->AsCheckClass()->licm_hoisted());
}
@@ -429,15 +422,15 @@ void CompileType::Union(CompileType* other) {
const AbstractType* compile_type = ToAbstractType();
const AbstractType* other_compile_type = other->ToAbstractType();
- if (compile_type->IsMoreSpecificThan(
- *other_compile_type, NULL, NULL, Heap::kOld)) {
+ if (compile_type->IsMoreSpecificThan(*other_compile_type, NULL, NULL,
+ Heap::kOld)) {
type_ = other_compile_type;
- } else if (other_compile_type->
- IsMoreSpecificThan(*compile_type, NULL, NULL, Heap::kOld)) {
- // Nothing to do.
+ } else if (other_compile_type->IsMoreSpecificThan(*compile_type, NULL, NULL,
+ Heap::kOld)) {
+ // Nothing to do.
} else {
- // Can't unify.
- type_ = &Object::dynamic_type();
+ // Can't unify.
+ type_ = &Object::dynamic_type();
}
}
@@ -528,7 +521,7 @@ intptr_t CompileType::ToNullableCid() {
thread->isolate()->all_classes_finalized()) {
if (FLAG_trace_cha) {
THR_Print(" **(CHA) Compile type not subclassed: %s\n",
- type_class.ToCString());
+ type_class.ToCString());
}
if (FLAG_use_cha_deopt) {
cha->AddToGuardedClasses(type_class, /*subclass_count=*/0);
@@ -624,8 +617,8 @@ bool CompileType::CanComputeIsInstanceOf(const AbstractType& type,
// except generative constructors, which return the object being constructed.
// It is therefore acceptable for void functions to return null.
if (compile_type.IsNullType()) {
- *is_instance = is_nullable ||
- type.IsObjectType() || type.IsDynamicType() || type.IsVoidType();
+ *is_instance = is_nullable || type.IsObjectType() || type.IsDynamicType() ||
+ type.IsVoidType();
return true;
}
@@ -680,9 +673,7 @@ bool PhiInstr::RecomputeType() {
for (intptr_t i = 0; i < InputCount(); i++) {
if (FLAG_support_il_printer && FLAG_trace_type_propagation) {
THR_Print(" phi %" Pd " input %" Pd ": v%" Pd " has reaching type %s\n",
- ssa_temp_index(),
- i,
- InputAt(i)->definition()->ssa_temp_index(),
+ ssa_temp_index(), i, InputAt(i)->definition()->ssa_temp_index(),
InputAt(i)->Type()->ToCString());
}
result.Union(InputAt(i)->Type());
@@ -744,7 +735,8 @@ CompileType ParameterInstr::ComputeType() const {
return CompileType::FromCid(function.string_specialization_cid());
case RegExpMacroAssembler::kParamStartOffsetIndex:
return CompileType::FromCid(kSmiCid);
- default: UNREACHABLE();
+ default:
+ UNREACHABLE();
}
UNREACHABLE();
return CompileType::Dynamic();
@@ -774,13 +766,14 @@ CompileType ParameterInstr::ComputeType() const {
if (FLAG_use_cha_deopt ||
thread->isolate()->all_classes_finalized()) {
if (FLAG_trace_cha) {
- THR_Print(" **(CHA) Computing exact type of receiver, "
+ THR_Print(
+ " **(CHA) Computing exact type of receiver, "
"no subclasses: %s\n",
type_class.ToCString());
}
if (FLAG_use_cha_deopt) {
- thread->cha()->AddToGuardedClasses(
- type_class, /*subclass_count=*/0);
+ thread->cha()->AddToGuardedClasses(type_class,
+ /*subclass_count=*/0);
}
cid = type_class.id();
}
@@ -811,8 +804,8 @@ CompileType ConstantInstr::ComputeType() const {
}
if (value().IsInstance()) {
- return CompileType::Create(cid,
- AbstractType::ZoneHandle(Instance::Cast(value()).GetType()));
+ return CompileType::Create(
+ cid, AbstractType::ZoneHandle(Instance::Cast(value()).GetType()));
} else {
// Type info for non-instance objects.
return CompileType::FromCid(cid);
@@ -884,29 +877,25 @@ CompileType RelationalOpInstr::ComputeType() const {
CompileType CurrentContextInstr::ComputeType() const {
- return CompileType(CompileType::kNonNullable,
- kContextCid,
+ return CompileType(CompileType::kNonNullable, kContextCid,
&Object::dynamic_type());
}
CompileType CloneContextInstr::ComputeType() const {
- return CompileType(CompileType::kNonNullable,
- kContextCid,
+ return CompileType(CompileType::kNonNullable, kContextCid,
&Object::dynamic_type());
}
CompileType AllocateContextInstr::ComputeType() const {
- return CompileType(CompileType::kNonNullable,
- kContextCid,
+ return CompileType(CompileType::kNonNullable, kContextCid,
&Object::dynamic_type());
}
CompileType AllocateUninitializedContextInstr::ComputeType() const {
- return CompileType(CompileType::kNonNullable,
- kContextCid,
+ return CompileType(CompileType::kNonNullable, kContextCid,
&Object::dynamic_type());
}
@@ -915,8 +904,8 @@ CompileType PolymorphicInstanceCallInstr::ComputeType() const {
if (!HasSingleRecognizedTarget()) return CompileType::Dynamic();
const Function& target = Function::Handle(ic_data().GetTargetAt(0));
return (target.recognized_kind() != MethodRecognizer::kUnknown)
- ? CompileType::FromCid(MethodRecognizer::ResultCid(target))
- : CompileType::Dynamic();
+ ? CompileType::FromCid(MethodRecognizer::ResultCid(target))
+ : CompileType::Dynamic();
}
@@ -930,9 +919,9 @@ CompileType StaticCallInstr::ComputeType() const {
// from the function.
const AbstractType& result_type =
AbstractType::ZoneHandle(function().result_type());
- return CompileType::FromAbstractType(result_type.IsVoidType()
- ? AbstractType::ZoneHandle(Type::NullType())
- : result_type);
+ return CompileType::FromAbstractType(
+ result_type.IsVoidType() ? AbstractType::ZoneHandle(Type::NullType())
+ : result_type);
}
return CompileType::Dynamic();
@@ -964,7 +953,7 @@ CompileType OneByteStringFromCharCodeInstr::ComputeType() const {
CompileType StringToCharCodeInstr::ComputeType() const {
- return CompileType::FromCid(kSmiCid);
+ return CompileType::FromCid(kSmiCid);
}
@@ -988,8 +977,7 @@ CompileType LoadStaticFieldInstr::ComputeType() const {
if (!FLAG_fields_may_be_reset) {
const Instance& obj = Instance::Handle(field.StaticValue());
if ((obj.raw() != Object::sentinel().raw()) &&
- (obj.raw() != Object::transition_sentinel().raw()) &&
- !obj.IsNull()) {
+ (obj.raw() != Object::transition_sentinel().raw()) && !obj.IsNull()) {
is_nullable = CompileType::kNonNullable;
cid = obj.GetClassId();
}
@@ -1014,8 +1002,7 @@ CompileType CreateArrayInstr::ComputeType() const {
CompileType AllocateObjectInstr::ComputeType() const {
if (!closure_function().IsNull()) {
ASSERT(cls().id() == kClosureCid);
- return CompileType(CompileType::kNonNullable,
- kClosureCid,
+ return CompileType(CompileType::kNonNullable, kClosureCid,
&Type::ZoneHandle(closure_function().SignatureType()));
}
// TODO(vegorov): Incorporate type arguments into the returned type.
@@ -1045,13 +1032,14 @@ CompileType LoadFieldInstr::ComputeType() const {
if (Isolate::Current()->type_checks() &&
(type().IsFunctionType() ||
(type().HasResolvedTypeClass() &&
- !Field::IsExternalizableCid(Class::Handle(type().type_class()).id())))) {
+ !Field::IsExternalizableCid(
+ Class::Handle(type().type_class()).id())))) {
abstract_type = &type();
}
if ((field_ != NULL) && (field_->guarded_cid() != kIllegalCid)) {
bool is_nullable = field_->is_nullable();
- intptr_t field_cid = field_->guarded_cid();
+ intptr_t field_cid = field_->guarded_cid();
if (Field::IsExternalizableCid(field_cid)) {
// We cannot assume that the type of the value in the field has not
// changed on the fly.
« no previous file with comments | « runtime/vm/flow_graph_type_propagator.h ('k') | runtime/vm/freelist.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698