diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2007-02-01 01:09:35 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2007-02-01 01:09:35 +0000 |
commit | e53a16e75f3cbaaa46e5ce2fc1ed449a18eef7d9 (patch) | |
tree | ef18ae23759d8cebf30524fd23a40023979adb9e /gcc/doc | |
parent | 15c48c45f552564d65a3cc869b2a8f896492f05f (diff) | |
download | gcc-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.texi | 13 | ||||
-rw-r--r-- | gcc/doc/rtl.texi | 13 |
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 |