ir_print_visitor: Print out constant structure values.

In the form (constant type ((field1 value) (field2 value) ...))
This commit is contained in:
Kenneth Graunke
2010-12-02 10:11:49 -08:00
parent 8d6a0dc7f3
commit b7acf538af

View File

@@ -318,6 +318,15 @@ void ir_print_visitor::visit(ir_constant *ir)
if (ir->type->is_array()) {
for (unsigned i = 0; i < ir->type->length; i++)
ir->get_array_element(i)->accept(this);
} else if (ir->type->is_record()) {
ir_constant *value = (ir_constant *) ir->components.get_head();
for (unsigned i = 0; i < ir->type->length; i++) {
printf("(%s ", ir->type->fields.structure->name);
value->accept(this);
printf(")");
value = (ir_constant *) value->next;
}
} else {
for (unsigned i = 0; i < ir->type->components(); i++) {
if (i != 0)