https://gcc.gnu.org/bugzilla/show_bug.cgi?id=14295
--- Comment #14 from Andrew Pinski ---
Note looking into how LLVM implements this is almost exactly the same as I have
implemented. The memset/memcpy -> memset/memset is exactly the same (though it
does work with other things inbetween).
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=14295
--- Comment #13 from Andrew Pinski ---
Created attachment 60556
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60556&action=edit
Patch which adds the simplified copy prop for agg
This fixes the testcase and has been bootstrapped and tested
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=14295
--- Comment #12 from Andrew Pinski ---
optimize_memcpy_to_memset does some simple copy prop but with zeroing. A
similar method could be done for non zeroing and i am going to try that.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=14295
Andrew Pinski changed:
What|Removed |Added
Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot
gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=14295
Andrew Pinski changed:
What|Removed |Added
CC||user202729 at protonmail dot
com
--- Co
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=14295
Bug 14295 depends on bug 24177, which changed state.
Bug 24177 Summary: function returning structure produce very long/slow assembly
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24177
What|Removed |Added
---
--- Comment #9 from rguenth at gcc dot gnu dot org 2008-06-22 15:07 ---
Created an attachment (id=15801)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15801&action=view)
aggregate temporary registers
Like this simple, untested patch. Breaks tree-sra.
--
http://gcc.gnu.org/bu
--- Comment #8 from rguenth at gcc dot gnu dot org 2008-06-22 15:05 ---
If we would disallow struct copies in the gimple IL and instead require a
register temporary that we would re-write into SSA form like
struct s temp_struct3;
struct s temp_struct2;
struct s temp_struct1;
str
--- Comment #7 from rguenth at gcc dot gnu dot org 2008-01-27 14:14 ---
One important structure copy propagation that SRA is not able to handle is
struct X { int i; int j; };
void foo(struct X);
inline void wrap(struct X w) { foo(w); }
void bar(struct X x) { wrap(x); }
where a copy fr
--
dnovillo at gcc dot gnu dot org changed:
What|Removed |Added
CC||dnovillo at gcc dot gnu dot
|
--- Comment #6 from rguenth at gcc dot gnu dot org 2006-02-14 15:52 ---
Created an attachment (id=10849)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10849&action=view)
simple "cleanup" struct copyprop
Attached simple "cleanup" style struct copyprop that is able to clean up
usele
--- Comment #5 from rguenth at gcc dot gnu dot org 2006-01-14 12:16 ---
4.1 branch has
;; Function foo (foo)
Analyzing Edge Insertions.
foo (r)
{
struct s temp_struct3;
struct s temp_struct2;
struct s temp_struct1;
:
temp_struct1 = r;
temp_struct2 = temp_struct1;
temp_struc
--- Comment #4 from steven at gcc dot gnu dot org 2006-01-07 18:04 ---
On AMD64 with GNU C version 4.2.0 20060107, I get this .optimized dump:
;; Function foo (foo)
foo (r)
{
int r$b;
int r$a;
char r$d;
:
r$b = r.b;
r$a = r.a;
r$d = r.d;
.m = r.m;
.b = r$b;
.a = r$a;
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-09-14
17:35 ---
*** Bug 18268 has been marked as a duplicate of this bug. ***
--
What|Removed |Added
14 matches
Mail list logo