[LLVMdev] llvm-gcc fortran bootstrap broken
Bill Wendling
wendling at apple.com
Wed Jul 30 12:41:34 PDT 2008
Done.
-bw
On Jul 30, 2008, at 12:35 PM, Duncan Sands wrote:
> And how about this one so as not to include a C specific
> header in llvm-backend (!!!) and not to have llvm-backend
> use a C specific flag (flag_no_builtin)?
>
> Index: gcc-4.2.llvm/gcc/c-opts.c
> ===================================================================
> --- gcc-4.2.llvm.orig/gcc/c-opts.c 2008-07-30 21:25:28.000000000 +0200
> +++ gcc-4.2.llvm/gcc/c-opts.c 2008-07-30 21:26:17.000000000 +0200
> @@ -660,6 +660,9 @@
>
> case OPT_fbuiltin:
> flag_no_builtin = !value;
> +#ifdef LLVM
> + flag_no_simplify_libcalls = !value;
> +#endif
> break;
>
> case OPT_fbuiltin_:
> @@ -685,6 +688,9 @@
> case OPT_fhosted:
> flag_hosted = value;
> flag_no_builtin = !value;
> +#ifdef LLVM
> + flag_no_simplify_libcalls = !value;
> +#endif
> /* warn_main will be 2 if set by -Wall, 1 if set by -Wmain */
> if (!value && warn_main == 2)
> warn_main = 0;
> Index: gcc-4.2.llvm/gcc/flags.h
> ===================================================================
> --- gcc-4.2.llvm.orig/gcc/flags.h 2008-07-30 21:22:44.000000000 +0200
> +++ gcc-4.2.llvm/gcc/flags.h 2008-07-30 21:24:50.000000000 +0200
> @@ -391,6 +391,7 @@
> /* LLVM LOCAL begin */
> #ifdef ENABLE_LLVM
> extern int flag_llvm_pch_read;
> +extern int flag_no_simplify_libcalls;
> #endif
> /* LLVM LOCAL end */
>
> Index: gcc-4.2.llvm/gcc/llvm-backend.cpp
> ===================================================================
> --- gcc-4.2.llvm.orig/gcc/llvm-backend.cpp 2008-07-30
> 21:17:36.000000000 +0200
> +++ gcc-4.2.llvm/gcc/llvm-backend.cpp 2008-07-30 21:24:42.000000000
> +0200
> @@ -70,12 +70,14 @@
> #include "tree-inline.h"
> #include "langhooks.h"
> #include "cgraph.h"
> -#include "c-common.h"
> }
>
> // Non-zero if bytecode from PCH is successfully read.
> int flag_llvm_pch_read;
>
> +// Non-zero if libcalls should not be simplified.
> +int flag_no_simplify_libcalls;
> +
> // Global state for the LLVM backend.
> Module *TheModule = 0;
> DebugInfo *TheDebugInfo = 0;
> @@ -381,7 +383,7 @@
> PM->add(createFunctionInliningPass()); // Inline small
> functions
> if (optimize > 2)
> PM->add(createArgumentPromotionPass()); // Scalarize
> uninlined fn args
> - if (!flag_no_builtin)
> + if (!flag_no_simplify_libcalls)
> PM->add(createSimplifyLibCallsPass()); // Library Call
> Optimizations
> PM->add(createInstructionCombiningPass()); // Cleanup for
> scalarrepl.
> PM->add(createJumpThreadingPass()); // Thread jumps.
More information about the llvm-dev
mailing list