X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbearch.c;h=711c3015ecd699807ff7c97875f95f31f136b56b;hb=2be6077d3c0d1cdc8fad965f1857ac3a08c632aa;hp=17b529640ae148a735e379e8ce73456f9c678a2c;hpb=d96cf3cbdb3d7a08f9492aa70f97c02bb0c85e39;p=libfirm diff --git a/ir/be/bearch.c b/ir/be/bearch.c index 17b529640..711c3015e 100644 --- a/ir/be/bearch.c +++ b/ir/be/bearch.c @@ -1,20 +1,6 @@ /* - * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. - * * This file is part of libFirm. - * - * This file may be distributed and/or modified under the terms of the - * GNU General Public License version 2 as published by the Free Software - * Foundation and appearing in the file LICENSE.GPL included in the - * packaging of this file. - * - * Licensees holding valid libFirm Professional Edition licenses may use - * this file in accordance with the libFirm Commercial License. - * Agreement provided with the Software. - * - * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE - * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE. + * Copyright (C) 2012 University of Karlsruhe. */ /** @@ -48,13 +34,6 @@ arch_register_req_t const arch_no_requirement = { 0 }; -/* Initialize the architecture environment struct. */ -arch_env_t *arch_env_begin_codegeneration(const arch_isa_if_t *isa_if) -{ - arch_env_t *arch_env = isa_if->begin_codegeneration(); - return arch_env; -} - /** * Get the isa responsible for a node. * @param irn The node to get the responsible isa for. @@ -62,14 +41,9 @@ arch_env_t *arch_env_begin_codegeneration(const arch_isa_if_t *isa_if) */ static const arch_irn_ops_t *get_irn_ops(const ir_node *irn) { - if (is_Proj(irn)) { - irn = get_Proj_pred(irn); - assert(!is_Proj(irn)); - } - - ir_op *ops = get_irn_op(irn); - const arch_irn_ops_t *be_ops = get_op_ops(ops)->be_ops; - + ir_op const *const op = get_irn_op(irn); + arch_irn_ops_t const *const be_ops = get_op_ops(op)->be_ops; + assert(be_ops); return be_ops; } @@ -105,12 +79,7 @@ int arch_possible_memory_operand(const ir_node *irn, unsigned int i) void arch_perform_memory_operand(ir_node *irn, ir_node *spill, unsigned int i) { const arch_irn_ops_t *ops = get_irn_ops(irn); - - if (ops->perform_memory_operand) { - ops->perform_memory_operand(irn, spill, i); - } else { - return; - } + ops->perform_memory_operand(irn, spill, i); } int arch_get_op_estimated_cost(const ir_node *irn) @@ -257,14 +226,14 @@ static void arch_dump_register_req(FILE *F, const arch_register_req_t *req, void arch_dump_reqs_and_registers(FILE *F, const ir_node *node) { - backend_info_t *info = be_get_info(node); + backend_info_t *const info = be_get_info(node); + int const n_ins = get_irn_arity(node); /* don't fail on invalid graphs */ - if (info == NULL || info->in_reqs == NULL || info->out_infos == NULL) { + if (!info || (!info->in_reqs && n_ins != 0) || !info->out_infos) { fprintf(F, "invalid register requirements!!!\n"); return; } - int n_ins = get_irn_arity(node); for (int i = 0; i < n_ins; ++i) { const arch_register_req_t *req = arch_get_irn_register_req_in(node, i); fprintf(F, "inreq #%d = ", i);