[Bug target/9703] [arm] Accessing data through constant pool more times could be solved in less instructions

2009-03-13 Thread rearnsha at gcc dot gnu dot org


--- Comment #12 from rearnsha at gcc dot gnu dot org  2009-03-13 09:39 
---
Fixed.


-- 

rearnsha at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9703



[Bug target/9703] [arm] Accessing data through constant pool more times could be solved in less instructions

2009-02-07 Thread ramana dot r at gmail dot com


--- Comment #11 from ramana dot r at gmail dot com  2009-02-08 05:23 ---
(In reply to comment #10)
 This might have been implemented for 4.4 already.  Section anchors now have
 been enabled for ARM.
 

4.4 seems to enable this with section anchors turned on. This is the code
generated. 

Here is the code generated for the function reported. 

ldr r3, .L3
mov r0, #11
mov r2, #12
stmia   r3, {r0, r2}@ phole stm
bx  lr


I suspect this can now be closed. 


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9703



[Bug target/9703] [arm] Accessing data through constant pool more times could be solved in less instructions

2008-12-19 Thread pinskia at gcc dot gnu dot org


--- Comment #10 from pinskia at gcc dot gnu dot org  2008-12-20 00:26 
---
This might have been implemented for 4.4 already.  Section anchors now have
been enabled for ARM.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9703



[Bug target/9703] [arm] Accessing data through constant pool more times could be solved in less instructions

2006-02-18 Thread rsandifo at gcc dot gnu dot org


--- Comment #8 from rsandifo at gcc dot gnu dot org  2006-02-18 22:07 
---
Subject: Bug 9703

Author: rsandifo
Date: Sat Feb 18 22:06:53 2006
New Revision: 111254

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=111254
Log:
* cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
* emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
(copy_insn_1): Likewise.  Don't copy each field individually.
Reindent.
* read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
of RTX_SIZE.
* reload1.c (eliminate_regs): Use shallow_copy_rtx.
* rtl.c (rtx_size): Rename variable to...
(rtx_code_size): ...this.
(rtx_size): New function.
(rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
(copy_rtx): Use shallow_copy_rtx.  Don't copy each field individually.
Reindent.
(shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
* rtl.h (rtx_code_size): New variable.
(rtx_size): Change from a variable to a function.
(RTX_SIZE): Rename to...
(RTX_CODE_SIZE): ...this.

PR target/9703
PR tree-optimization/17106
* doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
(Anchored Addresses): New section.
* doc/invoke.texi (-fsection-anchors): Document.
* doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
(SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
(SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
* hooks.c (hook_bool_mode_rtx_false): New function.
* hooks.h (hook_bool_mode_rtx_false): Declare.
* gengtype.c (create_optional_field): New function.
(adjust_field_rtx_def): Add the block_sym field for SYMBOL_REFs when
SYMBOL_REF_IN_BLOCK_P is true.
* target.h (output_anchor, use_blocks_for_constant_p): New hooks.
(min_anchor_offset, max_anchor_offset): Likewise.
(use_anchors_for_symbol_p): New hook.
* toplev.c (compile_file): Call output_object_blocks.
(target_supports_section_anchors_p): New function.
(process_options): Check that -fsection-anchors is only used on
targets that support it and when -funit-at-a-time is in effect.
* tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
if the decl doesn't have one.
* dwarf2out.c: Remove instantiations of VEC(rtx,gc).
* expr.c (emit_move_multi_word, emit_move_insn): Pass the result
of force_const_mem through use_anchored_address.
(expand_expr_constant): New function.
(expand_expr_addr_expr_1): Call it.  Use the same modifier when
calling expand_expr for INDIRECT_REF.
(expand_expr_real_1): Pass DECL_RTL through use_anchored_address
for all modifiers except EXPAND_INITIALIZER.  Use expand_expr_constant.
* expr.h (use_anchored_address): Declare.
* loop-unroll.c: Don't declare rtx vectors here.
* explow.c: Include output.h.
(validize_mem): Call use_anchored_address.
(use_anchored_address): New function.
* common.opt (-fsection-anchors): New switch.
* varasm.c (object_block_htab, anchor_labelno): New variables.
(hash_section, object_block_entry_eq, object_block_entry_hash)
(use_object_blocks_p, get_block_for_section, create_block_symbol)
(use_blocks_for_decl_p, change_symbol_section): New functions.
(get_variable_section): New function, split out from assemble_variable.
(make_decl_rtl): Create a block symbol if use_object_blocks_p and
use_blocks_for_decl_p say so.  Use change_symbol_section if the
symbol has already been created.
(assemble_variable_contents): New function, split out from...
(assemble_variable): ...here.  Don't output any code for
block symbols; just pass them to place_block_symbol.
Use get_variable_section and assemble_variable_contents.
(get_constant_alignment, get_constant_section, get_constant_size): New
functions, split from output_constant_def_contents.
(build_constant_desc): Create a block symbol if use_object_blocks_p
says so.  Or into SYMBOL_REF_FLAGS.
(assemble_constant_contents): New function, split from...
(output_constant_def_contents): ...here.  Don't output any code
for block symbols; just pass them to place_section_symbol.
Use get_constant_section and get_constant_alignment.
(force_const_mem): Create a block symbol if use_object_blocks_p and
use_blocks_for_constant_p say so.  Or into SYMBOL_REF_FLAGS.
(output_constant_pool_1): Add an explicit alignment argument.
Don't switch sections here.
(output_constant_pool): Adjust call to output_constant_pool_1.
Switch sections here instead.  Don't output anything for block symbols;
just pass them to place_block_symbol.

[Bug target/9703] [arm] Accessing data through constant pool more times could be solved in less instructions

2006-02-18 Thread rsandifo at gcc dot gnu dot org


--- Comment #9 from rsandifo at gcc dot gnu dot org  2006-02-18 22:22 
---
The patch I committed should provide the general infrastructure,
but an ARM patch will be needed to make use of it.  ARM code
would also benefit if we tried to reuse addresses that the
function had to calculate anyway, rather than use arbitrary
anchors for everything.  (I wrote a message about this that
I was supposed to send to [EMAIL PROTECTED]  However, it isn't
in either the web archives or gmane, so I suspect I sent it
privately by accident.)

I'm not intending to do the ARM bits myself right now,
so I'll return this PR to unassigned.


-- 

rsandifo at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|rsandifo at gcc dot gnu dot |unassigned at gcc dot gnu
   |org |dot org
 Status|ASSIGNED|NEW


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9703



[Bug target/9703] [arm] Accessing data through constant pool more times could be solved in less instructions

2006-02-02 Thread pinskia at gcc dot gnu dot org


--- Comment #6 from pinskia at gcc dot gnu dot org  2006-02-02 16:54 ---
Should be helped or almost ready to be fixed by:
http://gcc.gnu.org/wiki/Section%20Anchor%20Optimisations


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9703



[Bug target/9703] [arm] Accessing data through constant pool more times could be solved in less instructions

2006-02-02 Thread rsandifo at gcc dot gnu dot org


--- Comment #7 from rsandifo at gcc dot gnu dot org  2006-02-02 17:14 
---
Patch posted here:

http://gcc.gnu.org/ml/gcc-patches/2006-02/msg00133.html


-- 

rsandifo at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|pb at gcc dot gnu dot org   |rsandifo at gcc dot gnu dot
   ||org
 Status|NEW |ASSIGNED
   Keywords||patch
   Last reconfirmed|2005-02-16 03:47:22 |2006-02-02 17:14:49
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9703



[Bug target/9703] [arm] Accessing data through constant pool more times could be solved in less instructions

2005-09-26 Thread raj dot khem at gmail dot com

--- Additional Comments From raj dot khem at gmail dot com  2005-09-27 
03:20 ---
This is still exhibited on mainline gcc.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9703