Free Software Foundation, Inc.
This file is part of GCC.
-
+
GCC is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 3, or (at your option) any
later version.
-
+
GCC is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
-
+
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
/* Lookup UID in the complex_variable_components hashtable and return the
associated tree. */
-static tree
+static tree
cvc_lookup (unsigned int uid)
{
struct int_tree_map *h, in;
h = (struct int_tree_map *) htab_find_with_hash (complex_variable_components, &in, uid);
return h ? h->to : NULL;
}
-
+
/* Insert the pair UID, TO into the complex_variable_components hashtable. */
-static void
+static void
cvc_insert (unsigned int uid, tree to)
-{
+{
struct int_tree_map *h;
void **loc;
stmt = gsi_stmt (gsi);
op0 = op1 = NULL_TREE;
- /* Most control-altering statements must be initially
+ /* Most control-altering statements must be initially
simulated, else we won't cover the entire cfg. */
sim_again_p = stmt_ends_bb_p (stmt);
a new ssa name. */
else
comp = get_component_ssa_name (ssa_name, imag_p);
-
+
/* Do all the work to assign VALUE to COMP. */
list = NULL;
value = force_gimple_operand (value, &list, false, NULL);
}
/* Keep this algorithm in sync with fold-const.c:const_binop().
-
+
Expand complex division to scalars, straightforward algorithm.
a / b = ((ar*br + ai*bi)/t) + i((ai*br - ar*bi)/t)
t = br*br + bi*bi
case RDIV_EXPR:
expand_complex_division (gsi, inner_type, ar, ai, br, bi, code, al, bl);
break;
-
+
case NEGATE_EXPR:
expand_complex_negation (gsi, inner_type, ar, ai);
break;
return 0;
}
-struct gimple_opt_pass pass_lower_complex =
+struct gimple_opt_pass pass_lower_complex =
{
{
GIMPLE_PASS,
return optimize == 0 || sorrycount || errorcount;
}
-struct gimple_opt_pass pass_lower_complex_O0 =
+struct gimple_opt_pass pass_lower_complex_O0 =
{
{
GIMPLE_PASS,