aboutsummaryrefslogtreecommitdiff
path: root/gcc/genmatch.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2015-11-17 18:49:10 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2015-11-17 18:49:10 +0000
commitb1dc4a20a797ed2718fb2ba3431753ce84db86b2 (patch)
treef6a69b77920259ec90eb2b68484d7e14ca6135ff /gcc/genmatch.c
parentfa74b47a8c825cbdde6f97591befb474b739006f (diff)
downloadgcc-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.c7
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");