This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH: Simplify x86 load/store builtin expand
- From: "Uros Bizjak" <ubizjak at gmail dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: "GCC Patches" <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 29 Apr 2008 11:46:50 +0200
- Subject: Re: PATCH: Simplify x86 load/store builtin expand
- References: <6dc9ffc80804281749s4dd14aa9r3377ac7bac2838f@mail.gmail.com>
On Tue, Apr 29, 2008 at 2:49 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> x86 backend has many exceptions, for store, load, asymetric types, ...
> when expanding x86 builtins. AVX has masked load/store builtins,
> which need new exceptions. This patch removes bdesc_1arg,
> ix86_expand_store_builtin and ix86_expand_unop_builtin.
> ix86_expand_args_builtin can handle load/store builtins with
> more than one argument. I am testing on Linux/ia32 and Linux/Intel64.
> Ok for trunk if there are no regressions?
IMO the best solution is to have all non-complicated const builtins
grouped in one table, perhaps nicely grouped by SSE level. All
non-const builtins should then be added explicitly using def_builtin,
hoping that there won't be many of them.
Your proposed patch is a step in right direction (there are lots of
builtins...), but please leave out "memory" handling from the array
scanning loop. We can consider builtins that require "memory" flag to
be complicated, non-const ones.
Uros.