This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: RFC - Next refactoring steps
- From: Mike Stump <mikestump at comcast dot net>
- To: Andrew MacLeod <amacleod at redhat dot com>
- Cc: Richard Biener <richard dot guenther at gmail dot com>, Diego Novillo <dnovillo at google dot com>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 6 Sep 2013 10:09:54 -0700
- Subject: Re: RFC - Next refactoring steps
- Authentication-results: sourceware.org; auth=none
- References: <20130809223645 dot GA22559 at google dot com> <48A1A20B-1DF2-45A5-9CB6-13CDC6A89A4F at comcast dot net> <cf6d07ba-b8bc-43c2-9f84-e7709ed7730e at email dot android dot com> <5214F775 dot 60702 at redhat dot com> <B962A2B6-233D-4B65-B4BF-CE1B20B0154B at comcast dot net> <52161471 dot 6040408 at redhat dot com> <CAD_=9DTQhKGQHn6KgGJg9bQN9_Ft5DaE3fKJr8OuaALhjQSy+g at mail dot gmail dot com> <CAFiYyc3Tc24A5LExuvOKH_poXqYyJ_GUE8-CbxK1cMnY2VPmUQ at mail dot gmail dot com> <52287FD3 dot 4040204 at redhat dot com> <CAFiYyc0yGMVohSBVdpboTMeFw229DW3ZFbg_rUqSSWUvu0zFqg at mail dot gmail dot com> <5228A7A7 dot 9070606 at redhat dot com> <CAFiYyc1YvbVeVUuE0KMwajJqP7f097XZzY6a8+U5A_ipQfmxSQ at mail dot gmail dot com> <2C884ACE-F1BA-4C49-B3B8-7207E1B8FB9B at comcast dot net> <CAFiYyc3aTXHZpsOfmVa+qniYyBSY1gW1AP+1u7U9ioaJpMdj_g at mail dot gmail dot com> <5229F317 dot 9070501 at redhat dot com>
On Sep 6, 2013, at 8:21 AM, Andrew MacLeod <amacleod@redhat.com> wrote:
> these would be really good to identify and fix, if possible.
> Do you know of any of the top of your head?
Sure, they are easy to find. See below. I'll note one more use of fixing these. clang is adding modules to get compilation speed. Modules require that the inclusion of a header be the same in every instance that it is used. The usages below would prevent these headers from participating in being a module (and transitive closure of all they include them), thus dooming the software to slow compiles. C++ features exponential compile time, where/as C features logarithmic compile time. modules return things back to being linear and are worthwhile to control compilation speed issues. To be competitive, I think gcc will have to add modules eventually as well, and as the gcc source base grows, making use of modules to keep compilation time down is also worthwhile.
dfp.h:
#ifdef TREE_CODE
bool decimal_real_arithmetic (REAL_VALUE_TYPE *, enum tree_code, const REAL_VALUE_TYPE *,
const REAL_VALUE_TYPE *);
#endif
double-int.h:
#ifndef GENERATOR_FILE
/* Conversion to and from GMP integer representations. */
void mpz_set_double_int (mpz_t, double_int, bool);
double_int mpz_get_double_int (const_tree, mpz_t, bool);
#endif
expr.h:
#ifdef TREE_CODE
extern rtx expand_variable_shift (enum tree_code, enum machine_mode,
rtx, tree, rtx, int);
extern rtx expand_shift (enum tree_code, enum machine_mode, rtx, int, rtx,
int);
extern rtx expand_divmod (int, enum tree_code, enum machine_mode, rtx, rtx,
rtx, int);
#endif
function.h:
#ifdef RTX_CODE
extern void diddle_return_value (void (*)(rtx, void*), void*);
extern void clobber_return_register (void);
#endif
target.h:
#ifdef GCC_TM_H
#ifndef CUMULATIVE_ARGS_MAGIC
#define CUMULATIVE_ARGS_MAGIC ((void *) &targetm.calls)
#endif
static inline CUMULATIVE_ARGS *
get_cumulative_args (cumulative_args_t arg)
{
#ifdef ENABLE_CHECKING
gcc_assert (arg.magic == CUMULATIVE_ARGS_MAGIC);
#endif /* ENABLE_CHECKING */
return (CUMULATIVE_ARGS *) arg.p;
}