summaryrefslogtreecommitdiff
path: root/gcc/doc
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2007-02-01 01:09:35 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2007-02-01 01:09:35 +0000
commite53a16e75f3cbaaa46e5ce2fc1ed449a18eef7d9 (patch)
treeef18ae23759d8cebf30524fd23a40023979adb9e /gcc/doc
parent15c48c45f552564d65a3cc869b2a8f896492f05f (diff)
downloadgcc-e53a16e75f3cbaaa46e5ce2fc1ed449a18eef7d9.tar.gz
lower-subreg.c: New file.
gcc/: * lower-subreg.c: New file. * rtl.def (CONCATN): Define. * passes.c (init_optimization_passes): Add pass_lower_subreg and pass_lower_subreg2. * emit-rtl.c (update_reg_offset): New static function, broken out of gen_rtx_REG_offset. (gen_rtx_REG_offset): Call update_reg_offset. (gen_reg_rtx_offset): New function. * regclass.c: Revert patch of 2006-03-05, restoring reg_scan_update. (clear_reg_info_regno): New function. * dwarf2out.c (concatn_loc_descriptor): New static function. (loc_descriptor): Handle CONCATN. * common.opt (fsplit_wide_types): New option. * opts.c (decode_options): Set flag_split_wide_types when optimizing. * timevar.def (TV_LOWER_SUBREG): Define. * rtl.h (gen_reg_rtx_offset): Declare. (reg_scan_update): Declare. * regs.h (clear_reg_info_regno): Declare. * tree-pass.h (pass_lower_subreg): Declare. (pass_lower_subreg2): Declare. * doc/invoke.texi (Option Summary): List -fno-split-wide-types. (Optimize Options): Add -fsplit-wide-types to -O1 list. Document -fsplit-wide-types. * doc/rtl.texi (Regs and Memory): Document concat and concatn. * Makefile.in (OBJS-common): Add lower-subreg.o. (lower-subreg.o): New target. gcc/testsuite/: * gcc.dg/lower-subreg-1.c (test): New test. From-SVN: r121453
Diffstat (limited to 'gcc/doc')
-rw-r--r--gcc/doc/invoke.texi13
-rw-r--r--gcc/doc/rtl.texi13
2 files changed, 25 insertions, 1 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 31490b8f687..c7d1c5d187c 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -340,7 +340,7 @@ Objective-C and Objective-C++ Dialects}.
-fsched2-use-superblocks @gol
-fsched2-use-traces -fsee -freschedule-modulo-scheduled-loops @gol
-fsection-anchors -fsignaling-nans -fsingle-precision-constant @gol
--fstack-protector -fstack-protector-all @gol
+-fno-split-wide-types -fstack-protector -fstack-protector-all @gol
-fstrict-aliasing -fstrict-overflow -ftracer -fthread-jumps @gol
-funroll-all-loops -funroll-loops -fpeel-loops @gol
-fsplit-ivs-in-unroller -funswitch-loops @gol
@@ -4600,6 +4600,7 @@ compilation time.
-fcprop-registers @gol
-fif-conversion @gol
-fif-conversion2 @gol
+-fsplit-wide-types @gol
-ftree-ccp @gol
-ftree-dce @gol
-ftree-dominator-opts @gol
@@ -4938,6 +4939,16 @@ the condition is known to be true or false.
Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
+@item -fsplit-wide-types
+@opindex -fsplit-wide-types
+When using a type that occupies multiple registers, such as @code{long
+long} on a 32-bit system, split the registers apart and allocate them
+independently. This normally generates better code for those types,
+but may make debugging more difficult.
+
+Enabled at levels @option{-O}, @option{-O2}, @option{-O3},
+@option{-Os}.
+
@item -fcse-follow-jumps
@opindex fcse-follow-jumps
In common subexpression elimination, scan through jump instructions
diff --git a/gcc/doc/rtl.texi b/gcc/doc/rtl.texi
index 2d4644d5873..0498062786f 100644
--- a/gcc/doc/rtl.texi
+++ b/gcc/doc/rtl.texi
@@ -1774,6 +1774,19 @@ is always @code{Pmode}. If there are any @code{addressof}
expressions left in the function after CSE, @var{reg} is forced into the
stack and the @code{addressof} expression is replaced with a @code{plus}
expression for the address of its stack slot.
+
+@findex concat
+@item (concat@var{m} @var{rtx} @var{rtx})
+This RTX represents the concatenation of two other RTXs. This is used
+for complex values. It should only appear in the RTL attached to
+declarations and during RTL generation. It should not appear in the
+ordinary insn chain.
+
+@findex concatn
+@item (concatn@var{m} [@var{rtx} ...])
+This RTX represents the concatenation of all the @var{rtx} to make a
+single value. Like @code{concat}, this should only appear in
+declarations, and not in the insn chain.
@end table
@node Arithmetic