[Bug middle-end/36201] [4.4 Regression] NVR in the front-end causes missed optimization later on (retval thought to alias arguments)

2012-03-13 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36201

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED
   Target Milestone|4.4.7   |4.5.0

--- Comment #9 from Jakub Jelinek jakub at gcc dot gnu.org 2012-03-13 
13:04:23 UTC ---
Fixed in 4.5+, 4.4 is no longer supported.


[Bug middle-end/36201] [4.4 Regression] NVR in the front-end causes missed optimization later on (retval thought to alias arguments)

2011-04-16 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36201

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|4.4.6   |4.4.7


[Bug middle-end/36201] [4.4 Regression] NVR in the front-end causes missed optimization later on (retval thought to alias arguments)

2010-10-01 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36201

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|4.4.5   |4.4.6


[Bug middle-end/36201] [4.4 Regression] NVR in the front-end causes missed optimization later on (retval thought to alias arguments)

2010-04-30 Thread jakub at gcc dot gnu dot org


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|4.4.4   |4.4.5


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



[Bug middle-end/36201] [4.4 Regression] NVR in the front-end causes missed optimization later on (retval thought to alias arguments)

2010-01-21 Thread jakub at gcc dot gnu dot org


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|4.4.3   |4.4.4


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



[Bug middle-end/36201] [4.4 Regression] NVR in the front-end causes missed optimization later on (retval thought to alias arguments)

2009-10-15 Thread jakub at gcc dot gnu dot org


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|4.4.2   |4.4.3


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



[Bug middle-end/36201] [4.4 Regression] NVR in the front-end causes missed optimization later on (retval thought to alias arguments)

2009-07-22 Thread jakub at gcc dot gnu dot org


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|4.4.1   |4.4.2


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



[Bug middle-end/36201] [4.4 Regression] NVR in the front-end causes missed optimization later on (retval thought to alias arguments)

2009-04-21 Thread jakub at gcc dot gnu dot org


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|4.4.0   |4.4.1


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



[Bug middle-end/36201] [4.4 Regression] NVR in the front-end causes missed optimization later on (retval thought to alias arguments)

2009-04-03 Thread rguenth at gcc dot gnu dot org


--- Comment #8 from rguenth at gcc dot gnu dot org  2009-04-03 10:32 ---
Fixed for 4.5.0.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|rguenth at gcc dot gnu dot  |unassigned at gcc dot gnu
   |org |dot org
 Status|ASSIGNED|NEW
  Known to work|4.3.0 4.1.2 |4.3.0 4.1.2 4.5.0
Summary|[4.4/4.5 Regression] NVR in |[4.4 Regression] NVR in the
   |the front-end causes missed |front-end causes missed
   |optimization later on   |optimization later on
   |(retval thought to alias  |(retval thought to alias
   |arguments)  |arguments)


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



[Bug middle-end/36201] [4.4 Regression] NVR in the front-end causes missed optimization later on (retval thought to alias arguments)

2009-01-05 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2009-01-05 11:19 ---
Fixed on the alias-improvements branch:

a f(a, a) (struct a  g, struct a  h)
{
  long long int pretmp.24;

bb 2:
  # .MEM_12 = VDEF .MEM_11(D)
  retval = *g;
  # VUSE .MEM_12
  pretmp.24 = h-b;
  # .MEM_7 = VDEF .MEM_12
  retval.b = [plus_expr] (pretmp.24 + retval.b) + pretmp.24 * 1023;
  # VUSE .MEM_7
  return retval;

}


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

  BugsThisDependsOn||37696
   Priority|P3  |P2


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



[Bug middle-end/36201] [4.4 Regression] NVR in the front-end causes missed optimization later on (retval thought to alias arguments)

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


--- Comment #5 from pinskia at gcc dot gnu dot org  2008-12-31 21:11 ---
Actually this testcase is regression because of the removal of SFTs.  in
4.1-4.3, the loop did not exist.
In fact I filed this bug right after SFTs were removed.

The reason why it is considered addressable is because of:
/* Return true if T is a GIMPLE variable whose address is not needed.  */

bool
is_gimple_non_addressable (tree t)
{
  if (TREE_CODE (t) == SSA_NAME)
t = SSA_NAME_VAR (t);

  return (is_gimple_variable (t)  ! needs_to_live_in_memory (t));
}

needs_to_live_in_memory is true because of

  return (TREE_ADDRESSABLE (t)
  || is_global_var (t)
  || (TREE_CODE (t) == RESULT_DECL
   aggregate_value_p (t, current_function_decl)));

And aggregate_value_p is true because of:
  if (TREE_CODE (exp) == CALL_EXPR  fndecl  DECL_RESULT (fndecl)
   DECL_BY_REFERENCE (DECL_RESULT (fndecl)))
return 1;

DECL_BY_REFERENCE is true because this is a nonPOD.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|enhancement |normal
  Known to fail||4.4.0
  Known to work||4.3.0 4.1.2
Summary|NVR in the front-end causes |[4.4 Regression] NVR in the
   |missed optimization later on|front-end causes missed
   |(retval thought to alias  |optimization later on
   |arguments)  |(retval thought to alias
   ||arguments)
   Target Milestone|--- |4.4.0


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