From: Alan Matsuoka <alanm@redhat.com>
To: gcc-patches@gcc.gnu.org
Subject: Re: Include facility for .md files - altivec patches
Date: Tue, 13 Nov 2001 15:03:00 -0000 [thread overview]
Message-ID: <3BE80845.B27E83A@redhat.com> (raw)
Message-ID: <20011113150300.Z89LSYHQ0b5YQGRs5-dM9mEv_Xti7HWvC-XMHHbgEZ4@z> (raw)
In-Reply-To: <20011106075432.A5286@cr973306-a.mtwh1.on.home.com>
Alan Matsuoka wrote:
>
> On Tue, 06 Nov 2001, Joseph S. Myers wrote:
>
> > On Mon, 5 Nov 2001, Alan Matsuoka wrote:
> >
> > > + Where @var{pathname} is a string that specifies the the location of the file,
> > > + specifies the include file to be in gcc/config/{target}/filestuff. The
> >
> > @file{gcc/config/@var{target}/filestuff}.
> >
> > > + directory @file{gcc/config/{target}} is regarded as the default directory.
> >
> > @var{target}.
> >
> > Has this patch passed "make info" and "make dvi"?
>
> I'll sumbit a revised patch as soon as the cvs server lets me
> generate a patch.
This is a revised patch. It now works with "make info" and "make dvi"
--
Alan Matsuoka
GCC Engineering
Red Hat Canada, Ltd
mailto:alanm@redhat.com Tel: (416) 482-2661 x250 / Fax: (416) 482-6299
The following patch is for the an internal project. This is
implements a (include "filestuff") mechanism for splitting up
.md files.
(include "filestuff") expects the include file to be in gcc/config/{target}/filestuff
(include "BOGUS/filestuff") expects the include file to be in gcc/config/{target}/BOGUS/filestuff
(include "/u2/BOGUS/filestuff") expects the include file to be in /u2/BOGUS/filestuff
You can also run things like genrecog -I/p1/abc/proc1 -I/p2/abcd/pro2 target.md
This is used only at build time.
This has been tested for i686-pc-linux-gnu by bootstrapping and testing without
any regressions.
The DOS pathname style stuff may still be required.
2001-11-05 Alan Matsuoka <alanm@redhat.com>
* rtl.def (INCLUDE) : Define.
* gensupport.c (init_include_reader, process_include,
save_string) : New functions to
implement an include facility in .md files.
* gensupport.h : Add prototype for init_md_reader_args.
* genattr.c genattrtab.c gencodes.c genconfig.c genemit.c
genextract.c genflags.c genopinit.c genoutput.c genpeep.c
genrecog.c: Change call to init_md_reader to init_md_reader_args.
* md.texi: Document (include "path") and -I directives for RTL
generation tools.
Index: genattr.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/genattr.c,v
retrieving revision 1.45
diff -c -3 -p -r1.45 genattr.c
*** genattr.c 2001/10/07 16:50:51 1.45
--- genattr.c 2001/11/06 15:51:39
*************** main (argc, argv)
*** 210,216 ****
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader (argv[1]) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
puts ("/* Generated automatically by the program `genattr'");
--- 210,216 ----
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader_args (argc, argv) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
puts ("/* Generated automatically by the program `genattr'");
Index: genattrtab.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/genattrtab.c,v
retrieving revision 1.103
diff -c -3 -p -r1.103 genattrtab.c
*** genattrtab.c 2001/10/21 21:32:00 1.103
--- genattrtab.c 2001/11/06 15:51:41
*************** main (argc, argv)
*** 6075,6081 ****
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader (argv[1]) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
obstack_init (hash_obstack);
--- 6075,6081 ----
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader_args (argc, argv) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
obstack_init (hash_obstack);
Index: gencodes.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/gencodes.c,v
retrieving revision 1.42
diff -c -3 -p -r1.42 gencodes.c
*** gencodes.c 2001/08/22 14:35:16 1.42
--- gencodes.c 2001/11/06 15:51:41
*************** main (argc, argv)
*** 56,62 ****
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader (argv[1]) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
puts ("\
--- 56,62 ----
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader_args (argc, argv) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
puts ("\
Index: genconfig.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/genconfig.c,v
retrieving revision 1.43
diff -c -3 -p -r1.43 genconfig.c
*** genconfig.c 2001/10/11 07:07:26 1.43
--- genconfig.c 2001/11/06 15:51:41
*************** main (argc, argv)
*** 277,283 ****
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader (argv[1]) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
puts ("/* Generated automatically by the program `genconfig'");
--- 277,283 ----
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader_args (argc, argv) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
puts ("/* Generated automatically by the program `genconfig'");
Index: genemit.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/genemit.c,v
retrieving revision 1.67
diff -c -3 -p -r1.67 genemit.c
*** genemit.c 2001/10/19 19:37:08 1.67
--- genemit.c 2001/11/06 15:51:41
*************** main (argc, argv)
*** 789,795 ****
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader (argv[1]) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
/* Assign sequential codes to all entries in the machine description
--- 789,795 ----
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader_args (argc, argv) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
/* Assign sequential codes to all entries in the machine description
Index: genextract.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/genextract.c,v
retrieving revision 1.46
diff -c -3 -p -r1.46 genextract.c
*** genextract.c 2001/10/11 03:15:42 1.46
--- genextract.c 2001/11/06 15:51:41
*************** main (argc, argv)
*** 362,368 ****
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader (argv[1]) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
/* Assign sequential codes to all entries in the machine description
--- 362,368 ----
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader_args (argc, argv) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
/* Assign sequential codes to all entries in the machine description
Index: genflags.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/genflags.c,v
retrieving revision 1.39
diff -c -3 -p -r1.39 genflags.c
*** genflags.c 2001/10/11 03:15:42 1.39
--- genflags.c 2001/11/06 15:51:42
*************** main (argc, argv)
*** 230,236 ****
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader (argv[1]) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
puts ("/* Generated automatically by the program `genflags'");
--- 230,236 ----
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader_args (argc, argv) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
puts ("/* Generated automatically by the program `genflags'");
Index: genopinit.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/genopinit.c,v
retrieving revision 1.48
diff -c -3 -p -r1.48 genopinit.c
*** genopinit.c 2001/09/13 14:37:11 1.48
--- genopinit.c 2001/11/06 15:51:42
*************** main (argc, argv)
*** 316,322 ****
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader (argv[1]) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
printf ("/* Generated automatically by the program `genopinit'\n\
--- 316,322 ----
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader_args (argc, argv) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
printf ("/* Generated automatically by the program `genopinit'\n\
Index: genoutput.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/genoutput.c,v
retrieving revision 1.65
diff -c -3 -p -r1.65 genoutput.c
*** genoutput.c 2001/10/11 03:15:42 1.65
--- genoutput.c 2001/11/06 15:51:42
*************** main (argc, argv)
*** 953,959 ****
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader (argv[1]) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
output_prologue ();
--- 953,959 ----
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader_args (argc, argv) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
output_prologue ();
Index: genpeep.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/genpeep.c,v
retrieving revision 1.49
diff -c -3 -p -r1.49 genpeep.c
*** genpeep.c 2001/10/11 03:15:43 1.49
--- genpeep.c 2001/11/06 15:51:42
*************** main (argc, argv)
*** 385,391 ****
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader (argv[1]) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
printf ("/* Generated automatically by the program `genpeep'\n\
--- 385,391 ----
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader_args (argc, argv) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
printf ("/* Generated automatically by the program `genpeep'\n\
Index: genrecog.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/genrecog.c,v
retrieving revision 1.111
diff -c -3 -p -r1.111 genrecog.c
*** genrecog.c 2001/10/28 20:09:14 1.111
--- genrecog.c 2001/11/06 15:51:44
*************** main (argc, argv)
*** 2689,2695 ****
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader (argv[1]) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
next_insn_code = 0;
--- 2689,2695 ----
if (argc <= 1)
fatal ("No input file name.");
! if (init_md_reader_args (argc, argv) != SUCCESS_EXIT_CODE)
return (FATAL_EXIT_CODE);
next_insn_code = 0;
Index: gensupport.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/gensupport.c,v
retrieving revision 1.23
diff -c -3 -p -r1.23 gensupport.c
*** gensupport.c 2001/10/25 12:55:16 1.23
--- gensupport.c 2001/11/06 15:51:44
*************** static int predicable_default;
*** 42,47 ****
--- 42,49 ----
static const char *predicable_true;
static const char *predicable_false;
+ static char *base_dir = NULL;
+
/* We initially queue all patterns, process the define_insn and
define_cond_exec patterns, then return them one at a time. */
*************** static struct queue_elem *other_queue;
*** 62,67 ****
--- 64,86 ----
static struct queue_elem **other_tail = &other_queue;
static void queue_pattern PARAMS ((rtx, struct queue_elem ***, int));
+
+ /* Current maximum length of directory names in the search path
+ for include files. (Altered as we get more of them.) */
+
+ size_t max_include_len;
+
+ struct file_name_list
+ {
+ struct file_name_list *next;
+ const char *fname;
+ };
+
+ struct file_name_list *include = 0; /* First dir to search */
+ /* First dir to search for <file> */
+ struct file_name_list *first_bracket_include = 0;
+ struct file_name_list *last_include = 0; /* Last in chain */
+
static void remove_constraints PARAMS ((rtx));
static void process_rtx PARAMS ((rtx, int));
*************** static const char *alter_output_for_insn
*** 78,83 ****
--- 97,105 ----
int, int));
static void process_one_cond_exec PARAMS ((struct queue_elem *));
static void process_define_cond_exec PARAMS ((void));
+ static int process_include PARAMS ((rtx, int));
+ static char *save_string PARAMS ((const char *, int));
+ static int init_include_reader PARAMS ((FILE *));
\f
void
message_with_line VPARAMS ((int lineno, const char *msg, ...))
*************** remove_constraints (part)
*** 157,162 ****
--- 179,320 ----
}
}
+ /* The entry point for initializing the reader. */
+
+ static int
+ init_include_reader (inf)
+ FILE *inf;
+ {
+ int c;
+
+ errors = 0;
+
+ /* Read the entire file. */
+ while (1)
+ {
+ rtx desc;
+ int lineno;
+
+ c = read_skip_spaces (inf);
+ if (c == EOF)
+ break;
+
+ ungetc (c, inf);
+ lineno = read_rtx_lineno;
+ desc = read_rtx (inf);
+ process_rtx (desc, lineno);
+ }
+ fclose (inf);
+
+ /* Process define_cond_exec patterns. */
+ if (define_cond_exec_queue != NULL)
+ process_define_cond_exec ();
+
+ return errors ? FATAL_EXIT_CODE : SUCCESS_EXIT_CODE;
+ }
+
+ /* Process an include file assuming that it lives in gcc/config/{target}/
+ if the include looks line (include "file" ) */
+ static int
+ process_include (desc, lineno)
+ rtx desc;
+ int lineno;
+ {
+ const char *filename = XSTR (desc, 0);
+ char *pathname = NULL;
+ FILE *input_file;
+ char *fname;
+ struct file_name_list *stackp;
+ int flen;
+
+ stackp = include;
+
+ /* If specified file name is absolute, just open it. */
+ if (IS_ABSOLUTE_PATHNAME (filename) || !stackp)
+ {
+ if (base_dir)
+ {
+ pathname = xmalloc (strlen (base_dir) + strlen (filename) + 1);
+ pathname = strcpy (pathname, base_dir);
+ strcat (pathname, filename);
+ strcat (pathname, "\0");
+ }
+ else
+ {
+ pathname = xstrdup (filename);
+ }
+ read_rtx_filename = pathname;
+ input_file = fopen (pathname, "r");
+
+ if (input_file == 0)
+ {
+ perror (pathname);
+ return FATAL_EXIT_CODE;
+ }
+ }
+ else if (stackp)
+ {
+
+ flen = strlen (filename);
+
+ fname = (char *) alloca (max_include_len + flen + 2);
+
+ /* + 2 above for slash and terminating null. */
+
+ /* Search directory path, trying to open the file.
+ Copy each filename tried into FNAME. */
+
+ for (; stackp; stackp = stackp->next)
+ {
+ if (stackp->fname)
+ {
+ strcpy (fname, stackp->fname);
+ strcat (fname, "/");
+ fname[strlen (fname) + flen] = 0;
+ }
+ else
+ {
+ fname[0] = 0;
+ }
+ strncat (fname, (const char *) filename, flen);
+ read_rtx_filename = fname;
+ input_file = fopen (fname, "r");
+ if (input_file != NULL)
+ break;
+ }
+ if (stackp == NULL)
+ {
+ if (strchr (fname, '/') == NULL || strchr (fname, '\\' ) || base_dir)
+ {
+ if (base_dir)
+ {
+ pathname =
+ xmalloc (strlen (base_dir) + strlen (filename) + 1);
+ pathname = strcpy (pathname, base_dir);
+ strcat (pathname, filename);
+ strcat (pathname, "\0");
+ }
+ else
+ pathname = xstrdup (filename);
+ }
+ read_rtx_filename = pathname;
+ input_file = fopen (pathname, "r");
+
+ if (input_file == 0)
+ {
+ perror (filename);
+ return FATAL_EXIT_CODE;
+ }
+ }
+
+ }
+
+ if (init_include_reader (input_file) == FATAL_EXIT_CODE)
+ message_with_line (lineno, "read errors found in include file %s\n", pathname);
+
+ return SUCCESS_EXIT_CODE;
+ }
+
/* Process a top level rtx in some way, queueing as appropriate. */
static void
*************** process_rtx (desc, lineno)
*** 164,169 ****
--- 322,329 ----
rtx desc;
int lineno;
{
+ const char *filename = XSTR (desc, 0);
+
switch (GET_CODE (desc))
{
case DEFINE_INSN:
*************** process_rtx (desc, lineno)
*** 178,183 ****
--- 338,348 ----
queue_pattern (desc, &define_attr_tail, lineno);
break;
+ case INCLUDE:
+ if (process_include (desc, lineno) == FATAL_EXIT_CODE)
+ message_with_line (lineno, "include file at %s not found\n", filename);
+ break;
+
case DEFINE_INSN_AND_SPLIT:
{
const char *split_cond;
*************** process_define_cond_exec ()
*** 767,781 ****
--- 932,1022 ----
for (elem = define_cond_exec_queue; elem ; elem = elem->next)
process_one_cond_exec (elem);
}
+
+ static char *
+ save_string (s, len)
+ const char *s;
+ int len;
+ {
+ register char *result = xmalloc (len + 1);
+
+ memcpy (result, s, len);
+ result[len] = 0;
+ return result;
+ }
+
\f
/* The entry point for initializing the reader. */
int
+ init_md_reader_args (argc, argv)
+ int argc;
+ char **argv;
+ {
+ int i;
+ const char *in_fname;
+
+ max_include_len = 0;
+ in_fname = NULL;
+ for (i = 1; i < argc; i++)
+ {
+ if (argv[i][0] != '-')
+ {
+ if (in_fname == NULL)
+ in_fname = argv[i];
+ }
+ else
+ {
+ int c = argv[i][1];
+ switch (c)
+ {
+ case 'I': /* Add directory to path for includes. */
+ {
+ struct file_name_list *dirtmp;
+
+ dirtmp = (struct file_name_list *)
+ xmalloc (sizeof (struct file_name_list));
+ dirtmp->next = 0; /* New one goes on the end */
+ if (include == 0)
+ include = dirtmp;
+ else
+ last_include->next = dirtmp;
+ last_include = dirtmp; /* Tail follows the last one */
+ if (argv[i][1] == 'I' && argv[i][2] != 0)
+ dirtmp->fname = argv[i] + 2;
+ else if (i + 1 == argc)
+ fatal ("Directory name missing after -I option");
+ else
+ dirtmp->fname = argv[++i];
+ if (strlen (dirtmp->fname) > max_include_len)
+ max_include_len = strlen (dirtmp->fname);
+ }
+ break;
+ default:
+ fatal ("Invalid option `%s'", argv[i]);
+
+ }
+ }
+ }
+ return init_md_reader (in_fname);
+ }
+ \f
+ /* The entry point for initializing the reader. */
+
+ int
init_md_reader (filename)
const char *filename;
{
FILE *input_file;
int c;
+ char *lastsl;
+
+ if (!IS_ABSOLUTE_PATHNAME (filename))
+ {
+ lastsl = strrchr (filename, '/');
+ if (lastsl != NULL)
+ base_dir = save_string (filename, lastsl - filename + 1 );
+ }
read_rtx_filename = filename;
input_file = fopen (filename, "r");
*************** init_md_reader (filename)
*** 797,803 ****
c = read_skip_spaces (input_file);
if (c == EOF)
! break;
ungetc (c, input_file);
lineno = read_rtx_lineno;
--- 1038,1044 ----
c = read_skip_spaces (input_file);
if (c == EOF)
! break;
ungetc (c, input_file);
lineno = read_rtx_lineno;
Index: gensupport.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/gensupport.h,v
retrieving revision 1.3
diff -c -3 -p -r1.3 gensupport.h
*** gensupport.h 2001/08/22 14:35:17 1.3
--- gensupport.h 2001/11/06 15:51:44
*************** Software Foundation, 59 Temple Place - S
*** 21,26 ****
--- 21,27 ----
struct obstack;
extern struct obstack *rtl_obstack;
+ extern int init_md_reader_args PARAMS ((int, char **));
extern int init_md_reader PARAMS ((const char *));
extern rtx read_md_rtx PARAMS ((int *, int *));
Index: rtl.def
===================================================================
RCS file: /cvs/gcc/gcc/gcc/rtl.def,v
retrieving revision 1.50
diff -c -3 -p -r1.50 rtl.def
*** rtl.def 2001/11/03 16:28:33 1.50
--- rtl.def 2001/11/06 15:51:46
*************** DEF_RTL_EXPR(UNKNOWN, "UnKnown", "*", 'x
*** 73,78 ****
--- 73,83 ----
DEF_RTL_EXPR(NIL, "nil", "*", 'x')
+
+ /* include a file */
+
+ DEF_RTL_EXPR(INCLUDE, "include", "s", 'x')
+
/* ---------------------------------------------------------------------
Expressions used in constructing lists.
--------------------------------------------------------------------- */
Index: doc/md.texi
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doc/md.texi,v
retrieving revision 1.26
diff -c -3 -p -r1.26 md.texi
*** md.texi 2001/10/25 18:25:08 1.26
--- md.texi 2001/11/06 15:52:02
*************** See the next chapter for information on
*** 38,43 ****
--- 38,44 ----
* Expander Definitions::Generating a sequence of several RTL insns
for a standard operation.
* Insn Splitting:: Splitting Instructions into Multiple Instructions.
+ * Including Patterns:: Including Patterns in Machine Descriptions.
* Peephole Definitions::Defining machine-specific peephole optimizations.
* Insn Attributes:: Specifying the value of attributes for generated insns.
* Conditional Execution::Generating @code{define_insn} patterns for
*************** The @code{define_insn_and_split} constru
*** 3909,3914 ****
--- 3910,3989 ----
functionality as two separate @code{define_insn} and @code{define_split}
patterns. It exists for compactness, and as a maintenance tool to prevent
having to ensure the two patterns' templates match.
+
+ @node Including Patterns
+ @section Including Patterns in Machine Descriptions.
+ @cindex insn includes
+
+ @findex include
+ The @code{include} pattern tells the compiler tools where to
+ look for patterns that are in files other than in the file
+ @file{.md}. This is used only at build time and there is no preprocessing allowed.
+
+ It looks like:
+
+ @smallexample
+
+ (include
+ @var{pathname})
+ @end smallexample
+
+ For example:
+
+ @smallexample
+
+ (include "filestuff")
+
+ @end smallexample
+
+ Where @var{pathname} is a string that specifies the the location of the file,
+ specifies the include file to be in @file{gcc/config/target/filestuff}. The
+ directory @file{gcc/config/target} is regarded as the default directory.
+
+
+ Machine descriptions may be split up into smaller more manageable subsections
+ and placed into subdirectories.
+
+ By specifying:
+
+ @smallexample
+
+ (include "BOGUS/filestuff")
+
+ @end smallexample
+
+ the include file is specified to be in @file{gcc/config/@var{target}/BOGUS/filestuff}.
+
+ Specifying an absolute path for the include file such as;
+ @smallexample
+
+ (include "/u2/BOGUS/filestuff")
+
+ @end smallexample
+ is permitted but is not encouraged.
+
+ @subsection RTL Generation Tool Options for Directory Search
+ @cindex directory options .md
+ @cindex options, directory search
+ @cindex search options
+
+ The @option{-I@var{dir}} option specifies directories to search for machine descriptions.
+ For example:
+
+ @smallexample
+
+ genrecog -I/p1/abc/proc1 -I/p2/abcd/pro2 target.md
+
+ @end smallexample
+
+
+ Add the directory @var{dir} to the head of the list of directories to be
+ searched for header files. This can be used to override a system machine definition
+ file, substituting your own version, since these directories are
+ searched before the default machine description file directories. If you use more than
+ one @option{-I} option, the directories are scanned in left-to-right
+ order; the standard default directory come after.
+
@node Peephole Definitions
@section Machine-Specific Peephole Optimizers
next prev parent reply other threads:[~2001-11-13 15:03 UTC|newest]
Thread overview: 152+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-11-05 12:52 Aldy Hernandez
2001-11-05 12:58 ` Aldy Hernandez
2001-11-13 4:32 ` Aldy Hernandez
2001-11-13 15:03 ` Aldy Hernandez
2001-11-05 12:59 ` Joseph S. Myers
2001-11-05 13:04 ` Aldy Hernandez
2001-11-05 13:17 ` Joseph S. Myers
2001-11-13 4:32 ` Joseph S. Myers
2001-11-13 15:03 ` Joseph S. Myers
2001-11-13 4:32 ` Aldy Hernandez
2001-11-13 15:03 ` Aldy Hernandez
2001-11-13 4:32 ` Joseph S. Myers
2001-11-13 15:03 ` Joseph S. Myers
2001-11-05 13:59 ` Geoff Keating
2001-11-05 14:05 ` Alan Matsuoka
2001-11-05 18:22 ` Aldy Hernandez
2001-11-05 18:28 ` Alan Matsuoka
2001-11-05 18:41 ` Include facility for .md files - " Alan Matsuoka
2001-11-03 20:37 ` Geoff Keating
2001-11-13 4:26 ` Geoff Keating
2001-11-13 13:21 ` Geoff Keating
2001-11-13 15:03 ` Aldy Hernandez
2001-11-13 15:03 ` Alan Matsuoka
2001-11-13 15:03 ` Alan Matsuoka
2001-11-13 15:03 ` Geoff Keating
2001-11-05 18:49 ` Joseph S. Myers
2001-11-05 19:03 ` Alan Matsuoka
2001-11-06 1:03 ` Joseph S. Myers
2001-11-06 4:56 ` Alan Matsuoka
2001-11-06 7:58 ` Alan Matsuoka [this message]
2001-11-13 4:32 ` Alan Matsuoka
2001-11-13 15:03 ` Alexandre Oliva
2001-11-13 15:03 ` Alan Matsuoka
2001-11-13 15:03 ` Aldy Hernandez
2001-11-13 15:03 ` Alan Matsuoka
2001-11-13 15:03 ` Alan Matsuoka
2001-11-13 4:32 ` Alan Matsuoka
2001-11-13 15:03 ` Alan Matsuoka
2001-11-13 4:32 ` Joseph S. Myers
2001-11-13 15:03 ` Joseph S. Myers
2001-11-13 4:32 ` Alan Matsuoka
2001-11-13 15:03 ` Alan Matsuoka
2001-11-13 4:32 ` Joseph S. Myers
2001-11-13 15:03 ` Joseph S. Myers
2001-11-05 18:58 ` Aldy Hernandez
2001-11-05 19:01 ` Alan Matsuoka
2001-11-13 4:32 ` Alan Matsuoka
2001-11-13 15:03 ` Alan Matsuoka
2001-11-05 21:37 ` Alan Matsuoka
2001-11-13 4:32 ` Alan Matsuoka
2001-11-13 15:03 ` Alan Matsuoka
2001-11-13 4:32 ` Aldy Hernandez
2001-11-13 15:03 ` Aldy Hernandez
2001-11-06 0:23 ` Gerald Pfeifer
2001-11-13 4:32 ` Gerald Pfeifer
2001-11-13 15:03 ` Gerald Pfeifer
2001-11-13 4:32 ` Alan Matsuoka
2001-11-13 15:03 ` Alan Matsuoka
2001-11-13 4:32 ` Alan Matsuoka
2001-11-13 15:03 ` Alan Matsuoka
2001-11-13 4:32 ` Aldy Hernandez
2001-11-13 15:03 ` Aldy Hernandez
2001-11-13 4:32 ` Alan Matsuoka
2001-11-13 15:03 ` Alan Matsuoka
2001-11-05 14:31 ` Stan Shebs
2001-11-05 14:49 ` Geoff Keating
2001-11-05 15:29 ` Stan Shebs
2001-11-13 4:32 ` Stan Shebs
2001-11-13 15:03 ` Stan Shebs
2001-11-05 19:30 ` Aldy Hernandez
2001-11-13 4:32 ` Aldy Hernandez
2001-11-13 15:03 ` Aldy Hernandez
2001-11-13 4:32 ` Geoff Keating
2001-11-13 15:03 ` Geoff Keating
2001-11-13 4:32 ` Stan Shebs
2001-11-13 15:03 ` Stan Shebs
2001-11-05 19:27 ` Aldy Hernandez
2001-11-05 20:10 ` Geoff Keating
2001-11-13 4:32 ` Geoff Keating
2001-11-13 15:03 ` Geoff Keating
2001-11-13 4:32 ` Aldy Hernandez
2001-11-13 15:03 ` Aldy Hernandez
2001-11-06 15:02 ` Aldy Hernandez
2001-11-06 15:14 ` Joseph S. Myers
2001-11-06 16:28 ` Aldy Hernandez
2001-11-13 4:33 ` Aldy Hernandez
2001-11-13 15:03 ` Aldy Hernandez
2001-11-13 4:33 ` Joseph S. Myers
2001-11-13 15:03 ` Joseph S. Myers
2001-11-06 17:00 ` Dale Johannesen
2001-11-06 17:06 ` Aldy Hernandez
2001-11-13 4:33 ` Aldy Hernandez
2001-11-13 15:03 ` Aldy Hernandez
2001-11-13 4:33 ` Dale Johannesen
2001-11-13 15:03 ` Dale Johannesen
2001-11-06 17:07 ` Stan Shebs
2001-11-06 17:15 ` Aldy Hernandez
2001-11-13 4:33 ` Aldy Hernandez
2001-11-13 15:03 ` Aldy Hernandez
2001-11-13 4:33 ` Stan Shebs
2001-11-13 15:03 ` Stan Shebs
2001-11-13 4:33 ` Aldy Hernandez
2001-11-13 15:03 ` Aldy Hernandez
2001-11-06 23:17 ` Richard Henderson
2001-11-07 2:50 ` Geoff Keating
2001-11-07 8:30 ` Aldy Hernandez
2001-11-13 4:33 ` Aldy Hernandez
2001-11-13 15:03 ` Aldy Hernandez
2001-11-07 11:41 ` Richard Henderson
2001-11-07 12:12 ` Geoff Keating
2001-11-13 5:05 ` Geoff Keating
2001-11-13 15:03 ` Geoff Keating
2001-11-13 5:05 ` Richard Henderson
2001-11-13 15:03 ` Richard Henderson
2001-11-13 4:33 ` Geoff Keating
2001-11-13 15:03 ` Geoff Keating
2001-11-07 8:23 ` Aldy Hernandez
2001-11-13 4:33 ` Aldy Hernandez
2001-11-13 15:03 ` Aldy Hernandez
2001-11-13 4:33 ` Richard Henderson
2001-11-13 15:03 ` Richard Henderson
2001-11-13 4:32 ` Geoff Keating
2001-11-13 15:03 ` Geoff Keating
2001-11-05 14:05 ` Dale Johannesen
2001-11-05 14:38 ` Geoff Keating
2001-11-13 4:32 ` Geoff Keating
2001-11-13 15:03 ` Geoff Keating
2001-11-05 18:30 ` Aldy Hernandez
2001-11-06 16:12 ` Daniel Jacobowitz
2001-11-06 16:46 ` Aldy Hernandez
2001-11-13 4:33 ` Aldy Hernandez
2001-11-13 15:03 ` Aldy Hernandez
2001-11-07 2:36 ` Geoff Keating
2001-11-13 4:33 ` Geoff Keating
2001-11-13 15:03 ` Geoff Keating
2001-11-13 4:33 ` Daniel Jacobowitz
2001-11-13 15:03 ` Daniel Jacobowitz
2001-11-13 4:32 ` Aldy Hernandez
2001-11-13 15:03 ` Aldy Hernandez
2001-11-05 19:47 ` Aldy Hernandez
2001-11-13 4:32 ` Aldy Hernandez
2001-11-13 15:03 ` Aldy Hernandez
2001-11-13 4:32 ` Dale Johannesen
2001-11-13 15:03 ` Dale Johannesen
2001-11-05 14:39 ` Dale Johannesen
2001-11-05 18:35 ` Aldy Hernandez
2001-11-13 4:32 ` Aldy Hernandez
2001-11-13 15:03 ` Aldy Hernandez
2001-11-13 4:32 ` Dale Johannesen
2001-11-13 15:03 ` Dale Johannesen
2001-11-13 4:32 ` Aldy Hernandez
2001-11-13 15:03 ` Aldy Hernandez
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3BE80845.B27E83A@redhat.com \
--to=alanm@redhat.com \
--cc=gcc-patches@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).