diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2015-11-17 18:49:10 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2015-11-17 18:49:10 +0000 |
commit | b1dc4a20a797ed2718fb2ba3431753ce84db86b2 (patch) | |
tree | f6a69b77920259ec90eb2b68484d7e14ca6135ff /gcc/genmatch.c | |
parent | fa74b47a8c825cbdde6f97591befb474b739006f (diff) | |
download | gcc-b1dc4a20a797ed2718fb2ba3431753ce84db86b2.zip gcc-b1dc4a20a797ed2718fb2ba3431753ce84db86b2.tar.gz gcc-b1dc4a20a797ed2718fb2ba3431753ce84db86b2.tar.bz2 |
Replace match.pd DEFINE_MATH_FNs with auto-generated lists
This patch autogenerates the operator lists for maths functions
like SQRT, adding an additional entry for internal functions.
E.g.:
(define_operator_list SQRT
BUILT_IN_SQRTF
BUILT_IN_SQRT
BUILT_IN_SQRTL
IFN_SQRT)
and:
(define_operator_list CABS
BUILT_IN_CABSF
BUILT_IN_CABS
BUILT_IN_CABSL
null)
(since there's no internal function for CABS).
Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
gcc/
* Makefile.in (MOSTLYCLEANFILES): Add cfn-operators.pd.
(generated_files): Likewise.
(s-cfn-operators, cfn-operators.pd): New rules.
(s-match): Depend on cfn-operators.pd.
* gencfn-macros.c: Expand comment to describe -o behavior.
(print_define_operator_list): New function.
(main): Accept -o. Call print_define_operator_list.
* genmatch.c (main): Add the current directory to the include path.
* match.pd (DEFINE_MATH_FN): Delete. Include cfn-operators.pd
instead.
From-SVN: r230486
Diffstat (limited to 'gcc/genmatch.c')
-rw-r--r-- | gcc/genmatch.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/genmatch.c b/gcc/genmatch.c index 4df5689..3a20a48 100644 --- a/gcc/genmatch.c +++ b/gcc/genmatch.c @@ -4638,6 +4638,13 @@ main (int argc, char **argv) cpp_callbacks *cb = cpp_get_callbacks (r); cb->error = error_cb; + /* Add the build directory to the #include "" search path. */ + cpp_dir *dir = XCNEW (cpp_dir); + dir->name = getpwd (); + if (!dir->name) + dir->name = ASTRDUP ("."); + cpp_set_include_chains (r, dir, NULL, false); + if (!cpp_read_main_file (r, input)) return 1; cpp_define (r, gimple ? "GIMPLE=1": "GENERIC=1"); |