This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Machine Description '.md'
- To: Mike Stump <mrs at windriver dot com>
- Subject: Re: Machine Description '.md'
- From: Alan Lehotsky <lehotsky at tiac dot net>
- Date: Wed, 7 Jun 2000 15:42:47 -0400
- Cc: gcc at gcc dot gnu dot org, ra990898 at ic dot unicamp dot br
- References: <200006071931.MAA16004@kankakee.wrs.com>
At 12:31 PM -0700 6/7/00, Mike Stump wrote:
>..
..
>Yes or no, depending upon the design. There are companies now that
>have reconfigurable CPU architectures, that use gcc for
>compilations. One way to do it, would be to just add predicates to
>instructions (for example the entire floating point unit):
>
>/* Nonzero if we should generate code to use the fpu. */
>#define MASK_FPU 1
>#define TARGET_FPU (target_flags & MASK_FPU)
>
>(define_expand "cmpsf"
> ;; The 96 here isn't ever used by anyone.
> [(set (reg:CCFP 96)
> (compare:CCFP (match_operand:SF 0 "register_operand" "")
> (match_operand:SF 1 "register_operand" "")))]
> "TARGET_FPU"
> "
Good concept, but in general a predefined NAMED pattern has
to have a compile-time constant predicate, because they
tend to appear in
#if HAVE_XXXXXX
...
#endif
preprocessor blocks. I'm guessing that you've extracted code
from a real .md file, so clearly the FP instructions aren't
subject to this limitation....
You can of course have the DEFINE_EXPAND's code body
make runtime decisions about what sort of RTL to generate,
and you can always have unnamed DEFINE_INSN patterns that
are conditional on executable test expressions.
RELATED THOUGHT: It seems to me that there is NO circumstance
where an anonymous DEFINE_EXPAND can be
useful. Right?
-- Al
--
------------------------------------------------------------------------
Quality Software Management
http://www.tiac.net/users/qsmgmt
apl@alum.mit.edu
(978)287-0435 Voice
(978)808-6836 Cell
(978)287-0436 Fax
Software Process Improvement and Management Consulting
Language Design and Compiler Implementation