* [PATCH 1/2] Handwritten part of introduction of GCC_OPTION macro
2014-05-09 21:12 [PATCH 0/2] Make option-lookup macros explicit David Malcolm
@ 2014-05-09 21:12 ` David Malcolm
2014-05-09 21:12 ` [PATCH 2/2] Autogenerated " David Malcolm
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
From: David Malcolm @ 2014-05-09 21:12 UTC (permalink / raw)
To: gcc-patches; +Cc: David Malcolm
This is the hand-written half of the patch series.
gcc/ada/gcc-interface/misc.c requires some special care: it "undeffed"
some options macros in order to support explicit variables for 5
options, whilst using other options via macros. I ported this
file by hand, disabling the refactoring script for this specific file.
These 5 variables continue to exist as variables in the new
implementation.
gcc/
* opth-gen.awk: Introduce GCC_OPTION macro, using it to eliminate
the family of macros named after options that implicitly looked
up within the global_options global in favor of explicit lookup.
gcc/ada/
* gcc-interface/gigi.h (flag_vms_malloc64): This macro exists on
non-VMS systems, to provide a value for this flag, which exists
as an option, but only on VMS, within vms.opt. Given that we can't
redefine a direct GCC_OPTION (flag_vms_malloc64) lookup, instead
rename this to...
(GCC_OPTION_flag_vms_malloc64): New macro: an option lookup on
VMS, 0 elsewhere.
* gcc-interface/decl.c (gnat_to_gnu_param): Use new macro
GCC_OPTION_flag_vms_malloc64 in place of flag_vms_malloc64.
* gcc-interface/misc.c (gnat_handle_option): Manually wrap option
usage in GCC_OPTION macro.
(optimize): Remove undef of macro.
(optimize_size): Likewise.
(flag_compare_debug): Likewise.
(flag_short_enums): Likewise.
(flag_stack_check): Likewise.
(gnat_post_options): Wrap some option usage in
GCC_OPTION macro, avoiding wrapping the variables introduced
for the specific options that formerly had undefs above.
(gnat_init): Wrap option usage in GCC_OPTION macro.
(gnat_init_gcc_eh): Likewise.
(gnat_init_gcc_fp): Likewise.
gcc/c-family/
* c.opt (Wformat-contains-nul): Wrap usage of "warn_format" within
GCC_OPTION macro, and wrap all of body of LangEnabledBy in curly
braces so that the awk opt parser can cope with the parentheses.
(Wformat-extra-args): Likewise.
(Wformat-nonliteral): Likewise.
(Wformat-security): Likewise.
(Wformat-y2k): Likewise.
(Wformat-zero-length): Likewise.
(Wnonnull): Likewise.
---
gcc/ada/gcc-interface/decl.c | 3 ++-
gcc/ada/gcc-interface/gigi.h | 6 ++++--
gcc/ada/gcc-interface/misc.c | 31 +++++++++++++------------------
gcc/c-family/c.opt | 14 +++++++-------
gcc/config/alpha/vms.h | 2 +-
gcc/opth-gen.awk | 15 ++++++++-------
6 files changed, 35 insertions(+), 36 deletions(-)
diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c
index 4180e59..4c9788d 100644
--- a/gcc/ada/gcc-interface/decl.c
+++ b/gcc/ada/gcc-interface/decl.c
@@ -5752,7 +5752,8 @@ gnat_to_gnu_param (Entity_Id gnat_param, Mechanism_Type mech,
/* VMS descriptors are themselves passed by reference. */
if (mech == By_Short_Descriptor ||
- (mech == By_Descriptor && TARGET_ABI_OPEN_VMS && !flag_vms_malloc64))
+ (mech == By_Descriptor && TARGET_ABI_OPEN_VMS
+ && !GCC_OPTION_flag_vms_malloc64))
gnu_param_type
= build_pointer_type (build_vms_descriptor32 (gnu_param_type,
Mechanism (gnat_param),
diff --git a/gcc/ada/gcc-interface/gigi.h b/gcc/ada/gcc-interface/gigi.h
index b709273..a565dc6 100644
--- a/gcc/ada/gcc-interface/gigi.h
+++ b/gcc/ada/gcc-interface/gigi.h
@@ -1059,8 +1059,10 @@ extern void enumerate_modes (void (*f) (const char *, int, int, int, int, int,
/* VMS option set by default, when clear forces 32bit mallocs and 32bit
Descriptors. Always used in combination with TARGET_ABI_OPEN_VMS
so no effect on non-VMS systems. */
-#if TARGET_ABI_OPEN_VMS == 0
-#define flag_vms_malloc64 0
+#if TARGET_ABI_OPEN_VMS
+#define GCC_OPTION_flag_vms_malloc64 flag_vms_malloc64
+#else
+#define GCC_OPTION_flag_vms_malloc64 0
#endif
/* Convenient shortcuts. */
diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c
index a5f2881..e447095 100644
--- a/gcc/ada/gcc-interface/misc.c
+++ b/gcc/ada/gcc-interface/misc.c
@@ -133,8 +133,8 @@ gnat_handle_option (size_t scode, const char *arg ATTRIBUTE_UNUSED, int value,
OPT_Wunused, NULL, value,
gnat_option_lang_mask (), kind, loc,
handlers, global_dc);
- warn_uninitialized = value;
- warn_maybe_uninitialized = value;
+ GCC_OPTION (warn_uninitialized) = value;
+ GCC_OPTION (warn_maybe_uninitialized) = value;
break;
case OPT_gant:
@@ -225,11 +225,6 @@ gnat_init_options (unsigned int decoded_options_count,
/* Ada code requires variables for these settings rather than elements
of the global_options structure. */
-#undef optimize
-#undef optimize_size
-#undef flag_compare_debug
-#undef flag_short_enums
-#undef flag_stack_check
int optimize;
int optimize_size;
int flag_compare_debug;
@@ -244,16 +239,16 @@ static bool
gnat_post_options (const char **pfilename ATTRIBUTE_UNUSED)
{
/* Excess precision other than "fast" requires front-end support. */
- if (flag_excess_precision_cmdline == EXCESS_PRECISION_STANDARD
+ if (GCC_OPTION (flag_excess_precision_cmdline) == EXCESS_PRECISION_STANDARD
&& TARGET_FLT_EVAL_METHOD_NON_DEFAULT)
sorry ("-fexcess-precision=standard for Ada");
- flag_excess_precision_cmdline = EXCESS_PRECISION_FAST;
+ GCC_OPTION (flag_excess_precision_cmdline) = EXCESS_PRECISION_FAST;
/* ??? The warning machinery is outsmarted by Ada. */
- warn_unused_parameter = 0;
+ GCC_OPTION (warn_unused_parameter) = 0;
/* No psABI change warnings for Ada. */
- warn_psabi = 0;
+ GCC_OPTION (warn_psabi) = 0;
/* No caret by default for Ada. */
if (!global_options_set.x_flag_diagnostics_show_caret)
@@ -336,7 +331,7 @@ gnat_init (void)
/* Do little here, most of the standard declarations are set up after the
front-end has been run. Use the same `char' as C, this doesn't really
matter since we'll use the explicit `unsigned char' for Character. */
- build_common_tree_nodes (flag_signed_char, false);
+ build_common_tree_nodes (GCC_OPTION (flag_signed_char), false);
/* In Ada, we use an unsigned 8-bit type for the default boolean type. */
boolean_type_node = make_unsigned_type (8);
@@ -388,8 +383,8 @@ gnat_init_gcc_eh (void)
marked as "cannot trap" if the flag is not set (see emit_libcall_block).
We should not let this be since it is possible for such calls to actually
raise in Ada. */
- flag_exceptions = 1;
- flag_non_call_exceptions = 1;
+ GCC_OPTION (flag_exceptions) = 1;
+ GCC_OPTION (flag_non_call_exceptions) = 1;
init_eh ();
}
@@ -402,18 +397,18 @@ gnat_init_gcc_fp (void)
/* Disable FP optimizations that ignore the signedness of zero if
S'Signed_Zeros is true, but don't override the user if not. */
if (Signed_Zeros_On_Target)
- flag_signed_zeros = 1;
+ GCC_OPTION (flag_signed_zeros) = 1;
else if (!global_options_set.x_flag_signed_zeros)
- flag_signed_zeros = 0;
+ GCC_OPTION (flag_signed_zeros) = 0;
/* Assume that FP operations can trap if S'Machine_Overflow is true,
but don't override the user if not.
??? Alpha/VMS enables FP traps without declaring it. */
if (Machine_Overflows_On_Target || TARGET_ABI_OPEN_VMS)
- flag_trapping_math = 1;
+ GCC_OPTION (flag_trapping_math) = 1;
else if (!global_options_set.x_flag_trapping_math)
- flag_trapping_math = 0;
+ GCC_OPTION (flag_trapping_math) = 0;
}
/* Print language-specific items in declaration NODE. */
diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
index 7d0a2cd..21df9a0 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -400,27 +400,27 @@ C ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0)
Warn about printf/scanf/strftime/strfmon format string anomalies
Wformat-contains-nul
-C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
+C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy({C ObjC C++ ObjC++,Wformat=, GCC_OPTION (warn_format) >= 1, 0})
Warn about format strings that contain NUL bytes
Wformat-extra-args
-C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
+C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy({C ObjC C++ ObjC++,Wformat=, GCC_OPTION (warn_format) >= 1, 0})
Warn if passing too many arguments to a function for its format string
Wformat-nonliteral
-C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
+C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy({C ObjC C++ ObjC++,Wformat=, GCC_OPTION (warn_format) >= 2, 0})
Warn about format strings that are not literals
Wformat-security
-C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
+C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy({C ObjC C++ ObjC++,Wformat=, GCC_OPTION (warn_format) >= 2, 0})
Warn about possible security problems with format functions
Wformat-y2k
-C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
+C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy({C ObjC C++ ObjC++,Wformat=,GCC_OPTION (warn_format) >= 2, 0})
Warn about strftime formats yielding 2-digit years
Wformat-zero-length
-C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0)
+C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy({C ObjC C++ ObjC++,Wformat=,GCC_OPTION (warn_format) >= 1, 0})
Warn about zero-length formats
Wformat=
@@ -573,7 +573,7 @@ C++ ObjC++ Var(warn_nonvdtor) Warning
Warn about non-virtual destructors
Wnonnull
-C ObjC C++ ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1,0)
+C ObjC C++ ObjC++ Var(warn_nonnull) Warning LangEnabledBy({C ObjC C++ ObjC++,Wformat=,GCC_OPTION (warn_format) >= 1,0})
Warn about NULL being passed to argument slots marked as requiring non-NULL
Wnonnull
diff --git a/gcc/config/alpha/vms.h b/gcc/config/alpha/vms.h
index b297778..df0130c 100644
--- a/gcc/config/alpha/vms.h
+++ b/gcc/config/alpha/vms.h
@@ -48,7 +48,7 @@ along with GCC; see the file COPYING3. If not see
/* The maximum alignment 'malloc' honors. */
#undef MALLOC_ABI_ALIGNMENT
#define MALLOC_ABI_ALIGNMENT \
- ((flag_vms_malloc64 && flag_vms_pointer_size != VMS_POINTER_SIZE_NONE \
+ ((flag_vms_malloc64 && flag_vms_pointer_size != VMS_POINTER_SIZE_NONE \
? 16 : 8) * BITS_PER_UNIT)
#undef FIXED_REGISTERS
diff --git a/gcc/opth-gen.awk b/gcc/opth-gen.awk
index 45aee34..1b96151 100644
--- a/gcc/opth-gen.awk
+++ b/gcc/opth-gen.awk
@@ -44,14 +44,17 @@ if (n_extra_h_includes > 0) {
}
print "#if !defined(IN_LIBGCC2) && !defined(IN_TARGET_LIBS) && !defined(IN_RTS)"
-print "#ifndef GENERATOR_FILE"
+print "#ifdef GENERATOR_FILE"
+print "#define GCC_OPTION(NAME) (NAME)"
+print "#else"
print "#if !defined(IN_LIBGCC2) && !defined(IN_TARGET_LIBS)"
print "struct GTY(()) gcc_options"
print "#else"
print "struct gcc_options"
print "#endif"
print "{"
-print "#endif"
+print "#define GCC_OPTION(NAME) (global_options.x_##NAME)"
+print "#endif /* #ifdef GENERATOR_FILE */"
for (i = 0; i < n_extra_vars; i++) {
var = extra_vars[i]
@@ -70,7 +73,6 @@ for (i = 0; i < n_extra_vars; i++) {
print "extern " orig_var ";"
print "#else"
print " " type " x_" name type_after ";"
- print "#define " name " global_options.x_" name
print "#endif"
}
@@ -90,7 +92,6 @@ for (i = 0; i < n_opts; i++) {
print "extern " var_type(flags[i]) name ";"
print "#else"
print " " var_type(flags[i]) "x_" name ";"
- print "#define " name " global_options.x_" name
print "#endif"
}
for (i = 0; i < n_opts; i++) {
@@ -381,7 +382,7 @@ for (i = 0; i < n_opts; i++) {
extra_mask_macros[name] = 1
}
print "#define TARGET_" name \
- " ((" vname " & " mask name ") != 0)"
+ " ((GCC_OPTION (" vname ") & " mask name ") != 0)"
print "#define TARGET_" name "_P(" vname ")" \
" ((" vname " & " mask name ") != 0)"
}
@@ -389,7 +390,7 @@ for (i = 0; i < n_opts; i++) {
for (i = 0; i < n_extra_masks; i++) {
if (extra_mask_macros[extra_masks[i]] == 0)
print "#define TARGET_" extra_masks[i] \
- " ((target_flags & MASK_" extra_masks[i] ") != 0)"
+ " ((GCC_OPTION (target_flags) & MASK_" extra_masks[i] ") != 0)"
}
print ""
@@ -399,7 +400,7 @@ for (i = 0; i < n_opts; i++) {
vname = var_name(flags[i])
mask = "OPTION_MASK_"
if (vname == "") {
- vname = "target_flags"
+ vname = "GCC_OPTION (target_flags)"
mask = "MASK_"
}
print "#define TARGET_" nth_arg(1, opt) \
--
1.8.5.3
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 0/2] Make option-lookup macros explicit
2014-05-09 21:12 [PATCH 0/2] Make option-lookup macros explicit David Malcolm
2014-05-09 21:12 ` [PATCH 1/2] Handwritten part of introduction of GCC_OPTION macro David Malcolm
2014-05-09 21:12 ` [PATCH 2/2] Autogenerated " David Malcolm
@ 2014-05-10 0:28 ` Trevor Saunders
2014-05-14 18:31 ` Jeff Law
3 siblings, 0 replies; 7+ messages in thread
From: Trevor Saunders @ 2014-05-10 0:28 UTC (permalink / raw)
To: David Malcolm; +Cc: gcc-patches
[-- Attachment #1: Type: text/plain, Size: 32500 bytes --]
On Fri, May 09, 2014 at 05:14:45PM -0400, David Malcolm wrote:
> GCC's code is full of references to options like:
>
> static bool
> gate_vrp (void)
> {
> return flag_tree_vrp != 0;
> }
>
> where "flag_tree_vrp" is actually an autogenerated macro to:
>
> global_options.x_flag_tree_vrp
>
> This is deeply confusing to a newbie (and indeed still to me after ~two
> years of working with GCC's internals) e.g. when stepping through code and
> trying to query the value in gdb - what is an actual variable, and what is
> an option? Why isn't tab-completion working? etc
>
> The idea of the following patch series is to replace the above with:
>
> static bool
> gate_vrp (void)
> {
> return GCC_OPTION (flag_tree_vrp) != 0;
> }
Well, these functions take a function * now as of my refactor a week or two
ago.
> thus making it obvious when macro magic is occurring.
what exactly does the x_ and macro thing buy us anyway, imo
opts.vrp_enabled or opts.vrp_enabled () seems fine.
> There are two patches, a hand-written one, and an autogenerated one.
>
> The latter is 2.2MB in size, so I've uploaded it to:
> http://dmalcolm.fedorapeople.org/gcc/large-patches/6fb783b39f914574a1889aa51d06c08cf55678b4-0002-Autogenerated-part-of-introduction-of-GCC_OPTION-mac.patch
>
> The autogenerated patch was generated by a script:
> https://github.com/davidmalcolm/gcc-refactoring-scripts/blob/master/refactor_options.py
> which has a selftest suite here:
> https://github.com/davidmalcolm/gcc-refactoring-scripts/blob/master/test_refactor_options.py
>
> From a global-state-removal perspective, it might be nice to associate
> options with a gcc::context, rather than have a single instance of options,
> though that isn't addressed in these patches.
I thought we wanted to hang options off the function to make handling
lto / optimization pragmas / attributes easier?
If we want to do that, or for that matter the context thing, I'd think
the natural ordering would be to pass the argument to the get_opt macro
/ function, and then just change its implementation to not look at the
global. That would have the advantage of less churn ;)
Trev
> (e.g. perhaps explicitly adding a gcc::context arg to the macro???)
>
> The patches were successfully bootstrapped®rtested on top
> of r208714 (rather old, 2014-03-20) albeit just on x86_64-unknown-linux-gnu
> (Fedora 20), with
> --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto
> (i.e. every frontend, I think).
>
> OK for trunk, after 4.9.1 is released? (clearly I need to test on
> more targets first, given how much config/* code this touches, but I
> wanted to sound the idea out on this list).
>
> Dave
>
> David Malcolm (2):
> Handwritten part of introduction of GCC_OPTION macro
> Autogenerated part of introduction of GCC_OPTION macro
>
> gcc/ada/gcc-interface/decl.c | 17 +-
> gcc/ada/gcc-interface/gigi.h | 6 +-
> gcc/ada/gcc-interface/misc.c | 31 +-
> gcc/ada/gcc-interface/trans.c | 32 +-
> gcc/ada/gcc-interface/utils.c | 6 +-
> gcc/ada/gcc-interface/utils2.c | 2 +-
> gcc/alias.c | 14 +-
> gcc/asan.c | 14 +-
> gcc/auto-inc-dec.c | 2 +-
> gcc/bb-reorder.c | 14 +-
> gcc/bt-load.c | 20 +-
> gcc/builtins.c | 112 ++--
> gcc/builtins.def | 16 +-
> gcc/c-family/c-ada-spec.c | 8 +-
> gcc/c-family/c-common.c | 90 +--
> gcc/c-family/c-cppbuiltin.c | 54 +-
> gcc/c-family/c-format.c | 30 +-
> gcc/c-family/c-gimplify.c | 4 +-
> gcc/c-family/c-lex.c | 18 +-
> gcc/c-family/c-opts.c | 158 ++---
> gcc/c-family/c-pch.c | 10 +-
> gcc/c-family/c-pragma.c | 32 +-
> gcc/c-family/c.opt | 14 +-
> gcc/c-family/cilk.c | 2 +-
> gcc/c/c-aux-info.c | 2 +-
> gcc/c/c-decl.c | 146 ++---
> gcc/c/c-parser.c | 142 ++---
> gcc/c/c-typeck.c | 156 ++---
> gcc/caller-save.c | 4 +-
> gcc/calls.c | 22 +-
> gcc/cfgbuild.c | 2 +-
> gcc/cfgcleanup.c | 10 +-
> gcc/cfgexpand.c | 38 +-
> gcc/cfgloopanal.c | 4 +-
> gcc/cfgrtl.c | 16 +-
> gcc/cgraph.c | 12 +-
> gcc/cgraphclones.c | 6 +-
> gcc/cgraphunit.c | 66 +-
> gcc/cilk.h | 2 +-
> gcc/combine-stack-adj.c | 2 +-
> gcc/combine.c | 22 +-
> gcc/common/config/arc/arc-common.c | 2 +-
> gcc/compare-elim.c | 2 +-
> gcc/config/aarch64/aarch64.c | 48 +-
> gcc/config/aarch64/aarch64.h | 6 +-
> gcc/config/aarch64/aarch64.md | 2 +-
> gcc/config/alpha/alpha.c | 154 ++---
> gcc/config/alpha/alpha.h | 2 +-
> gcc/config/alpha/alpha.md | 8 +-
> gcc/config/alpha/elf.h | 4 +-
> gcc/config/alpha/linux.h | 6 +-
> gcc/config/alpha/predicates.md | 4 +-
> gcc/config/alpha/vms.h | 16 +-
> gcc/config/arc/arc.c | 138 ++--
> gcc/config/arc/arc.h | 38 +-
> gcc/config/arc/arc.md | 62 +-
> gcc/config/arc/arc600.md | 4 +-
> gcc/config/arc/constraints.md | 6 +-
> gcc/config/arc/predicates.md | 2 +-
> gcc/config/arm/aout.h | 4 +-
> gcc/config/arm/arm-fixed.md | 8 +-
> gcc/config/arm/arm-modes.def | 2 +-
> gcc/config/arm/arm.c | 332 +++++-----
> gcc/config/arm/arm.h | 52 +-
> gcc/config/arm/arm.md | 84 +--
> gcc/config/arm/coff.h | 2 +-
> gcc/config/arm/constraints.md | 6 +-
> gcc/config/arm/elf.h | 8 +-
> gcc/config/arm/neon.md | 56 +-
> gcc/config/arm/predicates.md | 2 +-
> gcc/config/arm/thumb2.md | 42 +-
> gcc/config/arm/vec-common.md | 10 +-
> gcc/config/arm/vfp.md | 10 +-
> gcc/config/avr/avr-c.c | 2 +-
> gcc/config/avr/avr-fixed.md | 2 +-
> gcc/config/avr/avr-log.c | 6 +-
> gcc/config/avr/avr.c | 94 +--
> gcc/config/avr/avr.h | 6 +-
> gcc/config/avr/avr.md | 10 +-
> gcc/config/bfin/bfin-opts.h | 2 +-
> gcc/config/bfin/bfin-protos.h | 18 +-
> gcc/config/bfin/bfin.c | 68 +-
> gcc/config/bfin/bfin.h | 16 +-
> gcc/config/bfin/bfin.md | 10 +-
> gcc/config/c6x/c6x.c | 74 +--
> gcc/config/c6x/c6x.h | 10 +-
> gcc/config/c6x/c6x.md | 40 +-
> gcc/config/cr16/cr16.c | 56 +-
> gcc/config/cr16/cr16.md | 16 +-
> gcc/config/cris/constraints.md | 4 +-
> gcc/config/cris/cris.c | 88 +--
> gcc/config/cris/cris.h | 12 +-
> gcc/config/cris/cris.md | 28 +-
> gcc/config/cris/linux.h | 2 +-
> gcc/config/cris/predicates.md | 4 +-
> gcc/config/darwin-c.c | 22 +-
> gcc/config/darwin.c | 116 ++--
> gcc/config/darwin.h | 18 +-
> gcc/config/elfos.h | 6 +-
> gcc/config/epiphany/constraints.md | 8 +-
> gcc/config/epiphany/epiphany-modes.def | 8 +-
> gcc/config/epiphany/epiphany.c | 76 +--
> gcc/config/epiphany/epiphany.h | 24 +-
> gcc/config/epiphany/epiphany.md | 38 +-
> gcc/config/epiphany/predicates.md | 2 +-
> gcc/config/epiphany/resolve-sw-modes.c | 2 +-
> gcc/config/fr30/fr30.c | 2 +-
> gcc/config/frv/frv.c | 114 ++--
> gcc/config/frv/frv.h | 44 +-
> gcc/config/frv/frv.md | 6 +-
> gcc/config/frv/predicates.md | 8 +-
> gcc/config/h8300/constraints.md | 2 +-
> gcc/config/h8300/elf.h | 2 +-
> gcc/config/h8300/h8300.c | 28 +-
> gcc/config/h8300/h8300.md | 4 +-
> gcc/config/i386/constraints.md | 2 +-
> gcc/config/i386/cygming.h | 18 +-
> gcc/config/i386/darwin.h | 10 +-
> gcc/config/i386/djgpp.h | 2 +-
> gcc/config/i386/i386-c.c | 14 +-
> gcc/config/i386/i386-interix.h | 2 +-
> gcc/config/i386/i386.c | 398 ++++++------
> gcc/config/i386/i386.h | 38 +-
> gcc/config/i386/i386.md | 210 +++----
> gcc/config/i386/mingw32.h | 4 +-
> gcc/config/i386/mmx.md | 4 +-
> gcc/config/i386/msformat-c.c | 2 +-
> gcc/config/i386/netbsd-elf.h | 2 +-
> gcc/config/i386/netbsd64.h | 4 +-
> gcc/config/i386/openbsd.h | 2 +-
> gcc/config/i386/openbsdelf.h | 2 +-
> gcc/config/i386/predicates.md | 42 +-
> gcc/config/i386/sol2.h | 4 +-
> gcc/config/i386/sse.md | 20 +-
> gcc/config/i386/winnt-cxx.c | 4 +-
> gcc/config/i386/winnt.c | 12 +-
> gcc/config/ia64/constraints.md | 4 +-
> gcc/config/ia64/div.md | 60 +-
> gcc/config/ia64/ia64.c | 92 +--
> gcc/config/ia64/ia64.h | 6 +-
> gcc/config/ia64/ia64.md | 2 +-
> gcc/config/ia64/predicates.md | 2 +-
> gcc/config/iq2000/iq2000.c | 20 +-
> gcc/config/iq2000/iq2000.h | 2 +-
> gcc/config/iq2000/iq2000.md | 6 +-
> gcc/config/linux.h | 6 +-
> gcc/config/lm32/lm32.c | 10 +-
> gcc/config/lm32/lm32.h | 12 +-
> gcc/config/lm32/lm32.md | 22 +-
> gcc/config/lm32/predicates.md | 2 +-
> gcc/config/m32c/m32c.c | 12 +-
> gcc/config/m32c/m32c.h | 8 +-
> gcc/config/m32r/m32r-opts.h | 16 +-
> gcc/config/m32r/m32r.c | 34 +-
> gcc/config/m32r/m32r.h | 18 +-
> gcc/config/m32r/m32r.md | 56 +-
> gcc/config/m32r/predicates.md | 2 +-
> gcc/config/m68k/constraints.md | 2 +-
> gcc/config/m68k/linux.h | 2 +-
> gcc/config/m68k/m68k.c | 72 +--
> gcc/config/m68k/m68k.h | 4 +-
> gcc/config/m68k/m68k.md | 10 +-
> gcc/config/m68k/netbsd-elf.h | 2 +-
> gcc/config/mcore/mcore-elf.h | 4 +-
> gcc/config/mcore/mcore.c | 14 +-
> gcc/config/mcore/mcore.md | 6 +-
> gcc/config/mep/mep-pragma.c | 8 +-
> gcc/config/mep/mep.c | 60 +-
> gcc/config/mep/mep.h | 8 +-
> gcc/config/mep/mep.md | 4 +-
> gcc/config/microblaze/microblaze.c | 96 +--
> gcc/config/microblaze/microblaze.h | 10 +-
> gcc/config/microblaze/microblaze.md | 28 +-
> gcc/config/microblaze/predicates.md | 4 +-
> gcc/config/mips/mips-ps-3d.md | 32 +-
> gcc/config/mips/mips.c | 334 +++++-----
> gcc/config/mips/mips.h | 72 +--
> gcc/config/mips/mips.md | 140 ++---
> gcc/config/mips/netbsd.h | 8 +-
> gcc/config/mips/sb1.md | 2 +-
> gcc/config/mips/sdemtk.h | 4 +-
> gcc/config/mmix/mmix.c | 8 +-
> gcc/config/mn10300/constraints.md | 2 +-
> gcc/config/mn10300/mn10300.c | 40 +-
> gcc/config/mn10300/mn10300.h | 6 +-
> gcc/config/mn10300/mn10300.md | 14 +-
> gcc/config/mn10300/predicates.md | 2 +-
> gcc/config/moxie/moxie.c | 2 +-
> gcc/config/msp430/msp430.c | 58 +-
> gcc/config/msp430/msp430.md | 8 +-
> gcc/config/nds32/nds32.c | 64 +-
> gcc/config/nds32/nds32.h | 8 +-
> gcc/config/nios2/nios2.c | 38 +-
> gcc/config/nios2/nios2.h | 4 +-
> gcc/config/nios2/nios2.md | 6 +-
> gcc/config/openbsd.h | 6 +-
> gcc/config/pa/pa-hpux10.h | 2 +-
> gcc/config/pa/pa-hpux11.h | 4 +-
> gcc/config/pa/pa.c | 152 ++---
> gcc/config/pa/pa.h | 18 +-
> gcc/config/pa/pa.md | 162 ++---
> gcc/config/pa/predicates.md | 6 +-
> gcc/config/pdp11/pdp11.c | 16 +-
> gcc/config/pdp11/pdp11.md | 2 +-
> gcc/config/picochip/picochip.c | 58 +-
> gcc/config/picochip/picochip.h | 2 +-
> gcc/config/picochip/picochip.md | 2 +-
> gcc/config/rl78/rl78.c | 20 +-
> gcc/config/rl78/rl78.h | 8 +-
> gcc/config/rs6000/750cl.h | 2 +-
> gcc/config/rs6000/aix43.h | 4 +-
> gcc/config/rs6000/aix51.h | 2 +-
> gcc/config/rs6000/aix52.h | 4 +-
> gcc/config/rs6000/aix53.h | 4 +-
> gcc/config/rs6000/aix61.h | 22 +-
> gcc/config/rs6000/altivec.md | 16 +-
> gcc/config/rs6000/darwin.h | 16 +-
> gcc/config/rs6000/darwin.md | 14 +-
> gcc/config/rs6000/e500.h | 10 +-
> gcc/config/rs6000/eabialtivec.h | 2 +-
> gcc/config/rs6000/freebsd.h | 2 +-
> gcc/config/rs6000/freebsd64.h | 46 +-
> gcc/config/rs6000/linux.h | 8 +-
> gcc/config/rs6000/linux64.h | 62 +-
> gcc/config/rs6000/linuxaltivec.h | 2 +-
> gcc/config/rs6000/paired.md | 4 +-
> gcc/config/rs6000/predicates.md | 12 +-
> gcc/config/rs6000/rs6000-c.c | 26 +-
> gcc/config/rs6000/rs6000.c | 1072 ++++++++++++++++----------------
> gcc/config/rs6000/rs6000.h | 44 +-
> gcc/config/rs6000/rs6000.md | 196 +++---
> gcc/config/rs6000/singlefp.h | 6 +-
> gcc/config/rs6000/spe.md | 36 +-
> gcc/config/rs6000/sysv4.h | 176 +++---
> gcc/config/rs6000/vector.md | 2 +-
> gcc/config/rs6000/vsx.md | 4 +-
> gcc/config/rs6000/vxworks.h | 2 +-
> gcc/config/rs6000/xcoff.h | 4 +-
> gcc/config/rs6000/xfpu.h | 2 +-
> gcc/config/rx/rx.c | 54 +-
> gcc/config/rx/rx.h | 16 +-
> gcc/config/rx/rx.md | 20 +-
> gcc/config/s390/predicates.md | 6 +-
> gcc/config/s390/s390.c | 190 +++---
> gcc/config/s390/s390.h | 26 +-
> gcc/config/s390/s390.md | 16 +-
> gcc/config/score/score.c | 24 +-
> gcc/config/score/score.h | 2 +-
> gcc/config/score/score.md | 18 +-
> gcc/config/sh/linux.h | 12 +-
> gcc/config/sh/netbsd-elf.h | 2 +-
> gcc/config/sh/sh-mem.cc | 16 +-
> gcc/config/sh/sh.c | 350 +++++------
> gcc/config/sh/sh.h | 28 +-
> gcc/config/sh/sh.md | 126 ++--
> gcc/config/sh/sh_optimize_sett_clrt.cc | 2 +-
> gcc/config/sh/sh_treg_combine.cc | 2 +-
> gcc/config/sh/sync.md | 14 +-
> gcc/config/sh/vxworks.h | 2 +-
> gcc/config/sol2.c | 2 +-
> gcc/config/sol2.h | 2 +-
> gcc/config/sparc/sol2.h | 4 +-
> gcc/config/sparc/sparc.c | 268 ++++----
> gcc/config/sparc/sparc.h | 24 +-
> gcc/config/sparc/sparc.md | 56 +-
> gcc/config/sparc/sync.md | 8 +-
> gcc/config/spu/spu-builtins.md | 8 +-
> gcc/config/spu/spu-c.c | 6 +-
> gcc/config/spu/spu.c | 96 +--
> gcc/config/spu/spu.h | 4 +-
> gcc/config/spu/spu.md | 24 +-
> gcc/config/stormy16/stormy16.c | 2 +-
> gcc/config/tilegx/tilegx.c | 74 +--
> gcc/config/tilegx/tilegx.h | 4 +-
> gcc/config/tilegx/tilegx.md | 40 +-
> gcc/config/tilepro/tilepro.c | 58 +-
> gcc/config/tilepro/tilepro.h | 4 +-
> gcc/config/tilepro/tilepro.md | 12 +-
> gcc/config/v850/predicates.md | 8 +-
> gcc/config/v850/v850.c | 34 +-
> gcc/config/v850/v850.h | 2 +-
> gcc/config/v850/v850.md | 38 +-
> gcc/config/vax/constraints.md | 2 +-
> gcc/config/vax/elf.h | 4 +-
> gcc/config/vax/predicates.md | 10 +-
> gcc/config/vax/vax.c | 44 +-
> gcc/config/vax/vax.md | 16 +-
> gcc/config/vms/vms-c.c | 8 +-
> gcc/config/vms/vms.c | 20 +-
> gcc/config/vms/vms.h | 10 +-
> gcc/config/vxworks.c | 6 +-
> gcc/config/xtensa/predicates.md | 4 +-
> gcc/config/xtensa/xtensa.c | 28 +-
> gcc/config/xtensa/xtensa.h | 8 +-
> gcc/config/xtensa/xtensa.md | 10 +-
> gcc/convert.c | 28 +-
> gcc/coverage.c | 26 +-
> gcc/cp/call.c | 62 +-
> gcc/cp/class.c | 44 +-
> gcc/cp/cp-cilkplus.c | 2 +-
> gcc/cp/cp-gimplify.c | 6 +-
> gcc/cp/cvt.c | 6 +-
> gcc/cp/decl.c | 110 ++--
> gcc/cp/decl2.c | 70 +--
> gcc/cp/error.c | 20 +-
> gcc/cp/except.c | 20 +-
> gcc/cp/friend.c | 2 +-
> gcc/cp/init.c | 24 +-
> gcc/cp/lex.c | 18 +-
> gcc/cp/mangle.c | 8 +-
> gcc/cp/method.c | 10 +-
> gcc/cp/name-lookup.c | 10 +-
> gcc/cp/optimize.c | 2 +-
> gcc/cp/parser.c | 78 +--
> gcc/cp/pt.c | 18 +-
> gcc/cp/repo.c | 10 +-
> gcc/cp/rtti.c | 6 +-
> gcc/cp/search.c | 4 +-
> gcc/cp/semantics.c | 44 +-
> gcc/cp/typeck.c | 78 +--
> gcc/cp/typeck2.c | 4 +-
> gcc/cp/vtable-class-hierarchy.c | 30 +-
> gcc/cppbuiltin.c | 24 +-
> gcc/cprop.c | 2 +-
> gcc/cse.c | 26 +-
> gcc/cselib.c | 4 +-
> gcc/dbxout.c | 72 +--
> gcc/dce.c | 10 +-
> gcc/ddg.c | 6 +-
> gcc/defaults.h | 2 +-
> gcc/df-core.c | 8 +-
> gcc/df-problems.c | 2 +-
> gcc/dojump.c | 4 +-
> gcc/dse.c | 6 +-
> gcc/dumpfile.c | 2 +-
> gcc/dwarf2asm.c | 30 +-
> gcc/dwarf2cfi.c | 18 +-
> gcc/dwarf2out.c | 416 ++++++-------
> gcc/emit-rtl.c | 4 +-
> gcc/except.c | 16 +-
> gcc/explow.c | 20 +-
> gcc/expmed.c | 20 +-
> gcc/expr.c | 24 +-
> gcc/final.c | 100 +--
> gcc/flags.h | 4 +-
> gcc/fold-const.c | 128 ++--
> gcc/fortran/arith.c | 2 +-
> gcc/fortran/cpp.c | 6 +-
> gcc/fortran/decl.c | 2 +-
> gcc/fortran/error.c | 24 +-
> gcc/fortran/f95-lang.c | 6 +-
> gcc/fortran/frontend-passes.c | 2 +-
> gcc/fortran/io.c | 4 +-
> gcc/fortran/options.c | 34 +-
> gcc/fortran/primary.c | 2 +-
> gcc/fortran/resolve.c | 8 +-
> gcc/fortran/scanner.c | 10 +-
> gcc/fortran/trans-decl.c | 16 +-
> gcc/fortran/trans-expr.c | 6 +-
> gcc/fortran/trans-intrinsic.c | 4 +-
> gcc/fortran/trans-stmt.c | 2 +-
> gcc/fortran/trans.c | 4 +-
> gcc/function.c | 48 +-
> gcc/fwprop.c | 2 +-
> gcc/gcc.c | 102 +--
> gcc/gcse.c | 38 +-
> gcc/ggc-page.c | 4 +-
> gcc/gimple-fold.c | 12 +-
> gcc/gimple-low.c | 4 +-
> gcc/gimple-ssa-isolate-paths.c | 12 +-
> gcc/gimple-ssa-strength-reduction.c | 6 +-
> gcc/gimple.c | 2 +-
> gcc/gimplify.c | 24 +-
> gcc/go/go-backend.c | 2 +-
> gcc/go/go-lang.c | 8 +-
> gcc/go/gofrontend/expressions.cc | 8 +-
> gcc/graphite-clast-to-gimple.c | 6 +-
> gcc/graphite-poly.c | 12 +-
> gcc/graphite-sese-to-poly.c | 10 +-
> gcc/graphite.c | 18 +-
> gcc/haifa-sched.c | 34 +-
> gcc/ifcvt.c | 14 +-
> gcc/incpath.c | 8 +-
> gcc/init-regs.c | 6 +-
> gcc/internal-fn.c | 2 +-
> gcc/ipa-cp.c | 12 +-
> gcc/ipa-devirt.c | 24 +-
> gcc/ipa-inline-analysis.c | 24 +-
> gcc/ipa-inline-transform.c | 4 +-
> gcc/ipa-inline.c | 46 +-
> gcc/ipa-profile.c | 8 +-
> gcc/ipa-prop.c | 24 +-
> gcc/ipa-prop.h | 2 +-
> gcc/ipa-pure-const.c | 10 +-
> gcc/ipa-reference.c | 2 +-
> gcc/ipa-split.c | 12 +-
> gcc/ipa.c | 46 +-
> gcc/ira-build.c | 6 +-
> gcc/ira-color.c | 18 +-
> gcc/ira-conflicts.c | 10 +-
> gcc/ira-costs.c | 32 +-
> gcc/ira-int.h | 2 +-
> gcc/ira.c | 74 +--
> gcc/java/boehm.c | 8 +-
> gcc/java/builtins.c | 16 +-
> gcc/java/class.c | 76 +--
> gcc/java/constants.c | 2 +-
> gcc/java/decl.c | 10 +-
> gcc/java/except.c | 4 +-
> gcc/java/expr.c | 54 +-
> gcc/java/java-tree.h | 2 +-
> gcc/java/jcf-parse.c | 28 +-
> gcc/java/jcf.h | 2 +-
> gcc/java/lang.c | 20 +-
> gcc/java/parse.h | 2 +-
> gcc/java/typeck.c | 2 +-
> gcc/java/verify-glue.c | 2 +-
> gcc/langhooks.c | 2 +-
> gcc/loop-init.c | 26 +-
> gcc/loop-invariant.c | 32 +-
> gcc/loop-iv.c | 8 +-
> gcc/loop-unroll.c | 24 +-
> gcc/lower-subreg.c | 2 +-
> gcc/lra-constraints.c | 2 +-
> gcc/lra-spills.c | 2 +-
> gcc/lra.c | 2 +-
> gcc/lto-cgraph.c | 12 +-
> gcc/lto-compress.c | 2 +-
> gcc/lto-section-in.c | 4 +-
> gcc/lto-section-out.c | 2 +-
> gcc/lto-streamer-in.c | 4 +-
> gcc/lto-streamer-out.c | 18 +-
> gcc/lto-streamer.c | 6 +-
> gcc/lto/lto-lang.c | 32 +-
> gcc/lto/lto-partition.c | 14 +-
> gcc/lto/lto-symtab.c | 4 +-
> gcc/lto/lto.c | 88 +--
> gcc/mode-switching.c | 2 +-
> gcc/modulo-sched.c | 14 +-
> gcc/objc/objc-act.c | 82 +--
> gcc/objc/objc-encoding.c | 16 +-
> gcc/objc/objc-gnu-runtime-abi-01.c | 20 +-
> gcc/objc/objc-next-runtime-abi-01.c | 40 +-
> gcc/objc/objc-next-runtime-abi-02.c | 14 +-
> gcc/objc/objc-runtime-shared-support.c | 4 +-
> gcc/omp-low.c | 42 +-
> gcc/optabs.c | 12 +-
> gcc/opth-gen.awk | 15 +-
> gcc/opts-global.c | 8 +-
> gcc/opts.c | 6 +-
> gcc/passes.c | 46 +-
> gcc/plugin.c | 4 +-
> gcc/postreload-gcse.c | 6 +-
> gcc/postreload.c | 4 +-
> gcc/predict.c | 24 +-
> gcc/print-rtl.c | 10 +-
> gcc/print-tree.c | 2 +-
> gcc/profile.c | 14 +-
> gcc/real.h | 10 +-
> gcc/recog.c | 16 +-
> gcc/ree.c | 2 +-
> gcc/reg-stack.c | 6 +-
> gcc/regcprop.c | 2 +-
> gcc/regrename.c | 2 +-
> gcc/regs.h | 4 +-
> gcc/reload.c | 10 +-
> gcc/reload1.c | 24 +-
> gcc/reorg.c | 4 +-
> gcc/rtl.h | 2 +-
> gcc/rtlanal.c | 10 +-
> gcc/sched-ebb.c | 4 +-
> gcc/sched-rgn.c | 36 +-
> gcc/sdbout.c | 2 +-
> gcc/sel-sched-ir.c | 16 +-
> gcc/sel-sched-ir.h | 4 +-
> gcc/sel-sched.c | 4 +-
> gcc/simplify-rtx.c | 28 +-
> gcc/stmt.c | 8 +-
> gcc/stor-layout.c | 20 +-
> gcc/store-motion.c | 2 +-
> gcc/symtab.c | 4 +-
> gcc/targhooks.c | 30 +-
> gcc/toplev.c | 378 +++++------
> gcc/tracer.c | 6 +-
> gcc/trans-mem.c | 10 +-
> gcc/tree-call-cdce.c | 2 +-
> gcc/tree-cfg.c | 10 +-
> gcc/tree-cfgcleanup.c | 28 +-
> gcc/tree-complex.c | 6 +-
> gcc/tree-data-ref.c | 2 +-
> gcc/tree-eh.c | 38 +-
> gcc/tree-if-conv.c | 34 +-
> gcc/tree-inline.c | 22 +-
> gcc/tree-loop-distribution.c | 10 +-
> gcc/tree-nested.c | 10 +-
> gcc/tree-nrv.c | 2 +-
> gcc/tree-outof-ssa.c | 4 +-
> gcc/tree-parloops.c | 10 +-
> gcc/tree-predcom.c | 4 +-
> gcc/tree-profile.c | 24 +-
> gcc/tree-sra.c | 4 +-
> gcc/tree-ssa-alias.c | 14 +-
> gcc/tree-ssa-ccp.c | 8 +-
> gcc/tree-ssa-coalesce.c | 4 +-
> gcc/tree-ssa-copy.c | 2 +-
> gcc/tree-ssa-copyrename.c | 8 +-
> gcc/tree-ssa-dce.c | 4 +-
> gcc/tree-ssa-dom.c | 2 +-
> gcc/tree-ssa-dse.c | 2 +-
> gcc/tree-ssa-forwprop.c | 2 +-
> gcc/tree-ssa-live.c | 8 +-
> gcc/tree-ssa-loop-ch.c | 4 +-
> gcc/tree-ssa-loop-im.c | 14 +-
> gcc/tree-ssa-loop-ivcanon.c | 14 +-
> gcc/tree-ssa-loop-niter.c | 20 +-
> gcc/tree-ssa-loop-prefetch.c | 2 +-
> gcc/tree-ssa-loop-unswitch.c | 2 +-
> gcc/tree-ssa-loop.c | 10 +-
> gcc/tree-ssa-math-opts.c | 30 +-
> gcc/tree-ssa-operands.c | 4 +-
> gcc/tree-ssa-phiopt.c | 14 +-
> gcc/tree-ssa-phiprop.c | 2 +-
> gcc/tree-ssa-pre.c | 8 +-
> gcc/tree-ssa-reassoc.c | 8 +-
> gcc/tree-ssa-sccvn.c | 4 +-
> gcc/tree-ssa-sink.c | 2 +-
> gcc/tree-ssa-strlen.c | 2 +-
> gcc/tree-ssa-structalias.c | 10 +-
> gcc/tree-ssa-tail-merge.c | 2 +-
> gcc/tree-ssa-ter.c | 4 +-
> gcc/tree-ssa-uncprop.c | 2 +-
> gcc/tree-ssa-uninit.c | 4 +-
> gcc/tree-streamer-out.c | 2 +-
> gcc/tree-switch-conversion.c | 6 +-
> gcc/tree-tailcall.c | 4 +-
> gcc/tree-vect-data-refs.c | 2 +-
> gcc/tree-vect-generic.c | 4 +-
> gcc/tree-vect-loop.c | 6 +-
> gcc/tree-vectorizer.c | 6 +-
> gcc/tree-vectorizer.h | 6 +-
> gcc/tree-vrp.c | 22 +-
> gcc/tree.c | 30 +-
> gcc/tree.h | 10 +-
> gcc/tsan.c | 6 +-
> gcc/ubsan.c | 12 +-
> gcc/value-prof.c | 4 +-
> gcc/var-tracking.c | 30 +-
> gcc/varasm.c | 94 +--
> gcc/varpool.c | 4 +-
> gcc/vmsdbgout.c | 84 +--
> gcc/vtable-verify.c | 4 +-
> gcc/web.c | 2 +-
> gcc/xcoffout.c | 6 +-
> 553 files changed, 7478 insertions(+), 7479 deletions(-)
>
> --
> 1.8.5.3
>
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread