Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 596395 Details for
Bug 837630
internal compiler error: in reload_cse_simplify_operands, at postreload.c:403
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
preprocessed source
ccmIzJb4.out (text/plain), 1.42 MB, created by
Karsten Hopp
on 2012-07-05 12:24:56 UTC
(
hide
)
Description:
preprocessed source
Filename:
MIME Type:
Creator:
Karsten Hopp
Created:
2012-07-05 12:24:56 UTC
Size:
1.42 MB
patch
obsolete
>// /builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/cc1 -quiet -I . -I . -I ../../gcc -I ../../gcc/. -I ../../gcc/../include -I ../../gcc/../libcpp/include -I ../../gcc/../libdecnumber -I ../../gcc/../libdecnumber/dpd -I ../libdecnumber -iprefix /builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/prev-gcc/../lib/gcc/ppc64-redhat-linux/4.7.1/ -isystem /builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include -isystem /builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include-fixed -D__unix__ -D__gnu_linux__ -D__linux__ -Dunix -D__unix -Dlinux -D__linux -Asystem=linux -Asystem=unix -Asystem=posix -D IN_GCC -D HAVE_CONFIG_H -isystem /usr/ppc64-redhat-linux/include -isystem /usr/ppc64-redhat-linux/sys-include ../../gcc/combine.c -msecure-plt -quiet -dumpbase combine.c -auxbase-strip combine.o -g -gtoggle -O2 -Wextra -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition -Wc++-compat -fexceptions -fstack-protector -fprofile-generate --param ssp-buffer-size=4 -o - -frandom-seed=0 ># 1 "../../gcc/combine.c" ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/gcc//" ># 1 "<command-line>" ># 1 "../../gcc/combine.c" ># 78 "../../gcc/combine.c" ># 1 "./config.h" 1 > > > > > ># 1 "./auto-host.h" 1 ># 7 "./config.h" 2 > ># 1 "../../gcc/../include/ansidecl.h" 1 ># 9 "./config.h" 2 ># 79 "../../gcc/combine.c" 2 ># 1 "../../gcc/system.h" 1 ># 28 "../../gcc/system.h" ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stdarg.h" 1 3 4 ># 40 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stdarg.h" 3 4 >typedef __builtin_va_list __gnuc_va_list; ># 102 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stdarg.h" 3 4 >typedef __gnuc_va_list va_list; ># 29 "../../gcc/system.h" 2 ># 39 "../../gcc/system.h" ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stddef.h" 1 3 4 ># 150 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stddef.h" 3 4 >typedef int ptrdiff_t; ># 213 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stddef.h" 3 4 >typedef unsigned int size_t; ># 325 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stddef.h" 3 4 >typedef long int wchar_t; ># 40 "../../gcc/system.h" 2 > > ># 1 "/usr/include/stdio.h" 1 3 4 ># 27 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/features.h" 1 3 4 ># 345 "/usr/include/features.h" 3 4 ># 1 "/usr/include/stdc-predef.h" 1 3 4 ># 346 "/usr/include/features.h" 2 3 4 ># 375 "/usr/include/features.h" 3 4 ># 1 "/usr/include/sys/cdefs.h" 1 3 4 ># 387 "/usr/include/sys/cdefs.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 388 "/usr/include/sys/cdefs.h" 2 3 4 ># 376 "/usr/include/features.h" 2 3 4 ># 399 "/usr/include/features.h" 3 4 ># 1 "/usr/include/gnu/stubs.h" 1 3 4 > > > > ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 6 "/usr/include/gnu/stubs.h" 2 3 4 > > ># 1 "/usr/include/gnu/stubs-32.h" 1 3 4 ># 9 "/usr/include/gnu/stubs.h" 2 3 4 ># 400 "/usr/include/features.h" 2 3 4 ># 28 "/usr/include/stdio.h" 2 3 4 > > > > > ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stddef.h" 1 3 4 ># 34 "/usr/include/stdio.h" 2 3 4 > ># 1 "/usr/include/bits/types.h" 1 3 4 ># 27 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 28 "/usr/include/bits/types.h" 2 3 4 > > >typedef unsigned char __u_char; >typedef unsigned short int __u_short; >typedef unsigned int __u_int; >typedef unsigned long int __u_long; > > >typedef signed char __int8_t; >typedef unsigned char __uint8_t; >typedef signed short int __int16_t; >typedef unsigned short int __uint16_t; >typedef signed int __int32_t; >typedef unsigned int __uint32_t; > > > > >__extension__ typedef signed long long int __int64_t; >__extension__ typedef unsigned long long int __uint64_t; > > > > > > > >__extension__ typedef long long int __quad_t; >__extension__ typedef unsigned long long int __u_quad_t; ># 130 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/include/bits/typesizes.h" 1 3 4 ># 131 "/usr/include/bits/types.h" 2 3 4 > > >__extension__ typedef __u_quad_t __dev_t; >__extension__ typedef unsigned int __uid_t; >__extension__ typedef unsigned int __gid_t; >__extension__ typedef unsigned long int __ino_t; >__extension__ typedef __u_quad_t __ino64_t; >__extension__ typedef unsigned int __mode_t; >__extension__ typedef unsigned int __nlink_t; >__extension__ typedef long int __off_t; >__extension__ typedef __quad_t __off64_t; >__extension__ typedef int __pid_t; >__extension__ typedef struct { int __val[2]; } __fsid_t; >__extension__ typedef long int __clock_t; >__extension__ typedef unsigned long int __rlim_t; >__extension__ typedef __u_quad_t __rlim64_t; >__extension__ typedef unsigned int __id_t; >__extension__ typedef long int __time_t; >__extension__ typedef unsigned int __useconds_t; >__extension__ typedef long int __suseconds_t; > >__extension__ typedef int __daddr_t; >__extension__ typedef long int __swblk_t; >__extension__ typedef int __key_t; > > >__extension__ typedef int __clockid_t; > > >__extension__ typedef void * __timer_t; > > >__extension__ typedef long int __blksize_t; > > > > >__extension__ typedef long int __blkcnt_t; >__extension__ typedef __quad_t __blkcnt64_t; > > >__extension__ typedef unsigned long int __fsblkcnt_t; >__extension__ typedef __u_quad_t __fsblkcnt64_t; > > >__extension__ typedef unsigned long int __fsfilcnt_t; >__extension__ typedef __u_quad_t __fsfilcnt64_t; > > >__extension__ typedef int __fsword_t; > >__extension__ typedef int __ssize_t; > > >__extension__ typedef long int __syscall_slong_t; > >__extension__ typedef unsigned long int __syscall_ulong_t; > > > >typedef __off64_t __loff_t; >typedef __quad_t *__qaddr_t; >typedef char *__caddr_t; > > >__extension__ typedef int __intptr_t; > > >__extension__ typedef unsigned int __socklen_t; ># 36 "/usr/include/stdio.h" 2 3 4 ># 44 "/usr/include/stdio.h" 3 4 >struct _IO_FILE; > > > >typedef struct _IO_FILE FILE; > > > > > ># 64 "/usr/include/stdio.h" 3 4 >typedef struct _IO_FILE __FILE; ># 74 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/libio.h" 1 3 4 ># 32 "/usr/include/libio.h" 3 4 ># 1 "/usr/include/_G_config.h" 1 3 4 ># 15 "/usr/include/_G_config.h" 3 4 ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stddef.h" 1 3 4 ># 16 "/usr/include/_G_config.h" 2 3 4 > > > > ># 1 "/usr/include/wchar.h" 1 3 4 ># 82 "/usr/include/wchar.h" 3 4 >typedef struct >{ > int __count; > union > { > > unsigned int __wch; > > > > char __wchb[4]; > } __value; >} __mbstate_t; ># 21 "/usr/include/_G_config.h" 2 3 4 > >typedef struct >{ > __off_t __pos; > __mbstate_t __state; >} _G_fpos_t; >typedef struct >{ > __off64_t __pos; > __mbstate_t __state; >} _G_fpos64_t; ># 53 "/usr/include/_G_config.h" 3 4 >typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); >typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); >typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); >typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); ># 33 "/usr/include/libio.h" 2 3 4 ># 152 "/usr/include/libio.h" 3 4 >struct _IO_jump_t; struct _IO_FILE; ># 162 "/usr/include/libio.h" 3 4 >typedef void _IO_lock_t; > > > > > >struct _IO_marker { > struct _IO_marker *_next; > struct _IO_FILE *_sbuf; > > > > int _pos; ># 185 "/usr/include/libio.h" 3 4 >}; > > >enum __codecvt_result >{ > __codecvt_ok, > __codecvt_partial, > __codecvt_error, > __codecvt_noconv >}; ># 253 "/usr/include/libio.h" 3 4 >struct _IO_FILE { > int _flags; > > > > > char* _IO_read_ptr; > char* _IO_read_end; > char* _IO_read_base; > char* _IO_write_base; > char* _IO_write_ptr; > char* _IO_write_end; > char* _IO_buf_base; > char* _IO_buf_end; > > char *_IO_save_base; > char *_IO_backup_base; > char *_IO_save_end; > > struct _IO_marker *_markers; > > struct _IO_FILE *_chain; > > int _fileno; > > > > int _flags2; > > __off_t _old_offset; > > > > unsigned short _cur_column; > signed char _vtable_offset; > char _shortbuf[1]; > > > > _IO_lock_t *_lock; ># 301 "/usr/include/libio.h" 3 4 > __off64_t _offset; ># 310 "/usr/include/libio.h" 3 4 > void *__pad1; > void *__pad2; > void *__pad3; > void *__pad4; > size_t __pad5; > > int _mode; > > char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; > >}; > > >typedef struct _IO_FILE _IO_FILE; > > >struct _IO_FILE_plus; > >extern struct _IO_FILE_plus _IO_2_1_stdin_; >extern struct _IO_FILE_plus _IO_2_1_stdout_; >extern struct _IO_FILE_plus _IO_2_1_stderr_; ># 346 "/usr/include/libio.h" 3 4 >typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); > > > > > > > >typedef __ssize_t __io_write_fn (void *__cookie, const char *__buf, > size_t __n); > > > > > > > >typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); > > >typedef int __io_close_fn (void *__cookie); > > > > >typedef __io_read_fn cookie_read_function_t; >typedef __io_write_fn cookie_write_function_t; >typedef __io_seek_fn cookie_seek_function_t; >typedef __io_close_fn cookie_close_function_t; > > >typedef struct >{ > __io_read_fn *read; > __io_write_fn *write; > __io_seek_fn *seek; > __io_close_fn *close; >} _IO_cookie_io_functions_t; >typedef _IO_cookie_io_functions_t cookie_io_functions_t; > >struct _IO_cookie_file; > > >extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, > void *__cookie, _IO_cookie_io_functions_t __fns); > > > > > > > >extern int __underflow (_IO_FILE *); >extern int __uflow (_IO_FILE *); >extern int __overflow (_IO_FILE *, int); ># 442 "/usr/include/libio.h" 3 4 >extern int _IO_getc (_IO_FILE *__fp); >extern int _IO_putc (int __c, _IO_FILE *__fp); >extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__ , __leaf__)); >extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__ , __leaf__)); > >extern int _IO_peekc_locked (_IO_FILE *__fp); > > > > > >extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__)); >extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__)); >extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__)); ># 472 "/usr/include/libio.h" 3 4 >extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, > __gnuc_va_list, int *__restrict); >extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, > __gnuc_va_list); >extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t); >extern size_t _IO_sgetn (_IO_FILE *, void *, size_t); > >extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int); >extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int); > >extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__)); ># 75 "/usr/include/stdio.h" 2 3 4 ># 92 "/usr/include/stdio.h" 3 4 >typedef __off64_t off_t; > > > > >typedef __off64_t off64_t; > > > > >typedef __ssize_t ssize_t; > > > > > > > > > >typedef _G_fpos64_t fpos_t; > > > >typedef _G_fpos64_t fpos64_t; ># 164 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/stdio_lim.h" 1 3 4 ># 165 "/usr/include/stdio.h" 2 3 4 > > > >extern struct _IO_FILE *stdin; >extern struct _IO_FILE *stdout; >extern struct _IO_FILE *stderr; > > > > > > > > > >extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__)); > >extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern int renameat (int __oldfd, const char *__old, int __newfd, > const char *__new) __attribute__ ((__nothrow__ , __leaf__)); > > > ># 200 "/usr/include/stdio.h" 3 4 >extern FILE *tmpfile (void) __asm__ ("" "tmpfile64") ; > > > > > > >extern FILE *tmpfile64 (void) ; > > > >extern char *tmpnam (char *__s) __attribute__ ((__nothrow__ , __leaf__)) ; > > > > > >extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__ , __leaf__)) ; ># 229 "/usr/include/stdio.h" 3 4 >extern char *tempnam (const char *__dir, const char *__pfx) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ; > > > > > > > > >extern int fclose (FILE *__stream); > > > > >extern int fflush (FILE *__stream); > ># 254 "/usr/include/stdio.h" 3 4 >extern int fflush_unlocked (FILE *__stream); ># 264 "/usr/include/stdio.h" 3 4 >extern int fcloseall (void); > > > > ># 285 "/usr/include/stdio.h" 3 4 >extern FILE *fopen (const char *__restrict __filename, const char *__restrict __modes) __asm__ ("" "fopen64") > > ; >extern FILE *freopen (const char *__restrict __filename, const char *__restrict __modes, FILE *__restrict __stream) __asm__ ("" "freopen64") > > > ; > > > > > > > >extern FILE *fopen64 (const char *__restrict __filename, > const char *__restrict __modes) ; >extern FILE *freopen64 (const char *__restrict __filename, > const char *__restrict __modes, > FILE *__restrict __stream) ; > > > > >extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__)) ; > > > > > >extern FILE *fopencookie (void *__restrict __magic_cookie, > const char *__restrict __modes, > _IO_cookie_io_functions_t __io_funcs) __attribute__ ((__nothrow__ , __leaf__)) ; > > > > >extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) > __attribute__ ((__nothrow__ , __leaf__)) ; > > > > >extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__)) ; > > > > > > >extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, > int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__)); > > > > > >extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, > size_t __size) __attribute__ ((__nothrow__ , __leaf__)); > > >extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > > > >extern int fprintf (FILE *__restrict __stream, > const char *__restrict __format, ...); > > > > >extern int printf (const char *__restrict __format, ...); > >extern int sprintf (char *__restrict __s, > const char *__restrict __format, ...) __attribute__ ((__nothrow__)); > > > > > >extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, > __gnuc_va_list __arg); > > > > >extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); > >extern int vsprintf (char *__restrict __s, const char *__restrict __format, > __gnuc_va_list __arg) __attribute__ ((__nothrow__)); > > > > > >extern int snprintf (char *__restrict __s, size_t __maxlen, > const char *__restrict __format, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4))); > >extern int vsnprintf (char *__restrict __s, size_t __maxlen, > const char *__restrict __format, __gnuc_va_list __arg) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0))); > > > > > > >extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, > __gnuc_va_list __arg) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))) ; >extern int __asprintf (char **__restrict __ptr, > const char *__restrict __fmt, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) ; >extern int asprintf (char **__restrict __ptr, > const char *__restrict __fmt, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) ; > > > > >extern int vdprintf (int __fd, const char *__restrict __fmt, > __gnuc_va_list __arg) > __attribute__ ((__format__ (__printf__, 2, 0))); >extern int dprintf (int __fd, const char *__restrict __fmt, ...) > __attribute__ ((__format__ (__printf__, 2, 3))); > > > > > > > > >extern int fscanf (FILE *__restrict __stream, > const char *__restrict __format, ...) ; > > > > >extern int scanf (const char *__restrict __format, ...) ; > >extern int sscanf (const char *__restrict __s, > const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__)); ># 465 "/usr/include/stdio.h" 3 4 > > > > > > > > >extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, > __gnuc_va_list __arg) > __attribute__ ((__format__ (__scanf__, 2, 0))) ; > > > > > >extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) > __attribute__ ((__format__ (__scanf__, 1, 0))) ; > > >extern int vsscanf (const char *__restrict __s, > const char *__restrict __format, __gnuc_va_list __arg) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0))); ># 524 "/usr/include/stdio.h" 3 4 > > > > > > > > > >extern int fgetc (FILE *__stream); >extern int getc (FILE *__stream); > > > > > >extern int getchar (void); > ># 552 "/usr/include/stdio.h" 3 4 >extern int getc_unlocked (FILE *__stream); >extern int getchar_unlocked (void); ># 563 "/usr/include/stdio.h" 3 4 >extern int fgetc_unlocked (FILE *__stream); > > > > > > > > > > > >extern int fputc (int __c, FILE *__stream); >extern int putc (int __c, FILE *__stream); > > > > > >extern int putchar (int __c); > ># 596 "/usr/include/stdio.h" 3 4 >extern int fputc_unlocked (int __c, FILE *__stream); > > > > > > > >extern int putc_unlocked (int __c, FILE *__stream); >extern int putchar_unlocked (int __c); > > > > > > >extern int getw (FILE *__stream); > > >extern int putw (int __w, FILE *__stream); > > > > > > > > >extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) > ; ># 642 "/usr/include/stdio.h" 3 4 > ># 651 "/usr/include/stdio.h" 3 4 >extern char *fgets_unlocked (char *__restrict __s, int __n, > FILE *__restrict __stream) ; ># 667 "/usr/include/stdio.h" 3 4 >extern __ssize_t __getdelim (char **__restrict __lineptr, > size_t *__restrict __n, int __delimiter, > FILE *__restrict __stream) ; >extern __ssize_t getdelim (char **__restrict __lineptr, > size_t *__restrict __n, int __delimiter, > FILE *__restrict __stream) ; > > > > > > > >extern __ssize_t getline (char **__restrict __lineptr, > size_t *__restrict __n, > FILE *__restrict __stream) ; > > > > > > > > >extern int fputs (const char *__restrict __s, FILE *__restrict __stream); > > > > > >extern int puts (const char *__s); > > > > > > >extern int ungetc (int __c, FILE *__stream); > > > > > > >extern size_t fread (void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream) ; > > > > >extern size_t fwrite (const void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __s); > ># 728 "/usr/include/stdio.h" 3 4 >extern int fputs_unlocked (const char *__restrict __s, > FILE *__restrict __stream); ># 739 "/usr/include/stdio.h" 3 4 >extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream) ; >extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream); > > > > > > > > >extern int fseek (FILE *__stream, long int __off, int __whence); > > > > >extern long int ftell (FILE *__stream) ; > > > > >extern void rewind (FILE *__stream); > ># 783 "/usr/include/stdio.h" 3 4 >extern int fseeko (FILE *__stream, __off64_t __off, int __whence) __asm__ ("" "fseeko64") > > ; >extern __off64_t ftello (FILE *__stream) __asm__ ("" "ftello64"); > > > > > > > > ># 808 "/usr/include/stdio.h" 3 4 >extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) __asm__ ("" "fgetpos64") > ; >extern int fsetpos (FILE *__stream, const fpos_t *__pos) __asm__ ("" "fsetpos64") > ; > > > > > > > > >extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); >extern __off64_t ftello64 (FILE *__stream) ; >extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); >extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos); > > > > >extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); > >extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ; > >extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ; > > > > >extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); >extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ; >extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ; > > > > > > > > >extern void perror (const char *__s); > > > > > > ># 1 "/usr/include/bits/sys_errlist.h" 1 3 4 ># 26 "/usr/include/bits/sys_errlist.h" 3 4 >extern int sys_nerr; >extern const char *const sys_errlist[]; > > >extern int _sys_nerr; >extern const char *const _sys_errlist[]; ># 856 "/usr/include/stdio.h" 2 3 4 > > > > >extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ; > > > > >extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ; ># 875 "/usr/include/stdio.h" 3 4 >extern FILE *popen (const char *__command, const char *__modes) ; > > > > > >extern int pclose (FILE *__stream); > > > > > >extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__)); > > > > > >extern char *cuserid (char *__s); > > > > >struct obstack; > > >extern int obstack_printf (struct obstack *__restrict __obstack, > const char *__restrict __format, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))); >extern int obstack_vprintf (struct obstack *__restrict __obstack, > const char *__restrict __format, > __gnuc_va_list __args) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))); > > > > > > > >extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ; > > >extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); ># 936 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/stdio.h" 1 3 4 ># 35 "/usr/include/bits/stdio.h" 3 4 >extern __inline int >vprintf (const char *__restrict __fmt, __gnuc_va_list __arg) >{ > return vfprintf (stdout, __fmt, __arg); >} > > > >extern __inline int >getchar (void) >{ > return _IO_getc (stdin); >} > > > > >extern __inline int >fgetc_unlocked (FILE *__fp) >{ > return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); >} > > > > > >extern __inline int >getc_unlocked (FILE *__fp) >{ > return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); >} > > >extern __inline int >getchar_unlocked (void) >{ > return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); >} > > > > >extern __inline int >putchar (int __c) >{ > return _IO_putc (__c, stdout); >} > > > > >extern __inline int >fputc_unlocked (int __c, FILE *__stream) >{ > return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); >} > > > > > >extern __inline int >putc_unlocked (int __c, FILE *__stream) >{ > return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); >} > > >extern __inline int >putchar_unlocked (int __c) >{ > return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); >} > > > > > >extern __inline __ssize_t >getline (char **__lineptr, size_t *__n, FILE *__stream) >{ > return __getdelim (__lineptr, __n, '\n', __stream); >} > > > > > >extern __inline int >__attribute__ ((__nothrow__ , __leaf__)) feof_unlocked (FILE *__stream) >{ > return (((__stream)->_flags & 0x10) != 0); >} > > >extern __inline int >__attribute__ ((__nothrow__ , __leaf__)) ferror_unlocked (FILE *__stream) >{ > return (((__stream)->_flags & 0x20) != 0); >} ># 937 "/usr/include/stdio.h" 2 3 4 ># 945 "/usr/include/stdio.h" 3 4 > ># 43 "../../gcc/system.h" 2 ># 196 "../../gcc/system.h" ># 1 "../../gcc/../include/safe-ctype.h" 1 ># 57 "../../gcc/../include/safe-ctype.h" >enum { > > _sch_isblank = 0x0001, > _sch_iscntrl = 0x0002, > _sch_isdigit = 0x0004, > _sch_islower = 0x0008, > _sch_isprint = 0x0010, > _sch_ispunct = 0x0020, > _sch_isspace = 0x0040, > _sch_isupper = 0x0080, > _sch_isxdigit = 0x0100, > > > _sch_isidst = 0x0200, > _sch_isvsp = 0x0400, > _sch_isnvsp = 0x0800, > > > _sch_isalpha = _sch_isupper|_sch_islower, > _sch_isalnum = _sch_isalpha|_sch_isdigit, > _sch_isidnum = _sch_isidst|_sch_isdigit, > _sch_isgraph = _sch_isalnum|_sch_ispunct, > _sch_iscppsp = _sch_isvsp|_sch_isnvsp, > _sch_isbasic = _sch_isprint|_sch_iscppsp > >}; > > >extern const unsigned short _sch_istable[256]; ># 110 "../../gcc/../include/safe-ctype.h" >extern const unsigned char _sch_toupper[256]; >extern const unsigned char _sch_tolower[256]; ># 122 "../../gcc/../include/safe-ctype.h" ># 1 "/usr/include/ctype.h" 1 3 4 ># 29 "/usr/include/ctype.h" 3 4 > ># 40 "/usr/include/ctype.h" 3 4 ># 1 "/usr/include/endian.h" 1 3 4 ># 36 "/usr/include/endian.h" 3 4 ># 1 "/usr/include/bits/endian.h" 1 3 4 ># 37 "/usr/include/endian.h" 2 3 4 ># 60 "/usr/include/endian.h" 3 4 ># 1 "/usr/include/bits/byteswap.h" 1 3 4 ># 33 "/usr/include/bits/byteswap.h" 3 4 ># 1 "/usr/include/bits/byteswap-16.h" 1 3 4 ># 34 "/usr/include/bits/byteswap.h" 2 3 4 ># 42 "/usr/include/bits/byteswap.h" 3 4 >static __inline unsigned int >__bswap_32 (unsigned int __bsx) >{ > return __builtin_bswap32 (__bsx); >} ># 73 "/usr/include/bits/byteswap.h" 3 4 >static __inline unsigned long long int >__bswap_64 (unsigned long long int __bsx) >{ > return __builtin_bswap64 (__bsx); >} ># 61 "/usr/include/endian.h" 2 3 4 ># 41 "/usr/include/ctype.h" 2 3 4 > > > > > > >enum >{ > _ISupper = (1 << (0)), > _ISlower = (1 << (1)), > _ISalpha = (1 << (2)), > _ISdigit = (1 << (3)), > _ISxdigit = (1 << (4)), > _ISspace = (1 << (5)), > _ISprint = (1 << (6)), > _ISgraph = (1 << (7)), > _ISblank = (1 << (8)), > _IScntrl = (1 << (9)), > _ISpunct = (1 << (10)), > _ISalnum = (1 << (11)) >}; ># 80 "/usr/include/ctype.h" 3 4 >extern const unsigned short int **__ctype_b_loc (void) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); >extern const __int32_t **__ctype_tolower_loc (void) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); >extern const __int32_t **__ctype_toupper_loc (void) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); ># 105 "/usr/include/ctype.h" 3 4 > > > > > > >extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__)); >extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__)); >extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__)); >extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__)); >extern int islower (int) __attribute__ ((__nothrow__ , __leaf__)); >extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__)); >extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__)); >extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__)); >extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__)); >extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__)); >extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__)); > > >extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > > > >extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > >extern int isctype (int __c, int __mask) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > >extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__)); >extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__)); ># 215 "/usr/include/ctype.h" 3 4 >extern __inline int >__attribute__ ((__nothrow__ , __leaf__)) tolower (int __c) >{ > return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c; >} > >extern __inline int >__attribute__ ((__nothrow__ , __leaf__)) toupper (int __c) >{ > return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c; >} ># 258 "/usr/include/ctype.h" 3 4 ># 1 "/usr/include/xlocale.h" 1 3 4 ># 27 "/usr/include/xlocale.h" 3 4 >typedef struct __locale_struct >{ > > struct __locale_data *__locales[13]; > > > const unsigned short int *__ctype_b; > const int *__ctype_tolower; > const int *__ctype_toupper; > > > const char *__names[13]; >} *__locale_t; > > >typedef __locale_t locale_t; ># 259 "/usr/include/ctype.h" 2 3 4 ># 272 "/usr/include/ctype.h" 3 4 >extern int isalnum_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); >extern int isalpha_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); >extern int iscntrl_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); >extern int isdigit_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); >extern int islower_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); >extern int isgraph_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); >extern int isprint_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); >extern int ispunct_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); >extern int isspace_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); >extern int isupper_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); >extern int isxdigit_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); > >extern int isblank_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int __tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); >extern int tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); > > >extern int __toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); >extern int toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); ># 348 "/usr/include/ctype.h" 3 4 > ># 123 "../../gcc/../include/safe-ctype.h" 2 ># 197 "../../gcc/system.h" 2 > ># 1 "/usr/include/sys/types.h" 1 3 4 ># 27 "/usr/include/sys/types.h" 3 4 > > > > > > >typedef __u_char u_char; >typedef __u_short u_short; >typedef __u_int u_int; >typedef __u_long u_long; >typedef __quad_t quad_t; >typedef __u_quad_t u_quad_t; >typedef __fsid_t fsid_t; > > > > >typedef __loff_t loff_t; > > > > > >typedef __ino64_t ino_t; > > > > >typedef __ino64_t ino64_t; > > > > >typedef __dev_t dev_t; > > > > >typedef __gid_t gid_t; > > > > >typedef __mode_t mode_t; > > > > >typedef __nlink_t nlink_t; > > > > >typedef __uid_t uid_t; ># 98 "/usr/include/sys/types.h" 3 4 >typedef __pid_t pid_t; > > > > > >typedef __id_t id_t; ># 115 "/usr/include/sys/types.h" 3 4 >typedef __daddr_t daddr_t; >typedef __caddr_t caddr_t; > > > > > >typedef __key_t key_t; ># 132 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/include/time.h" 1 3 4 ># 57 "/usr/include/time.h" 3 4 > > >typedef __clock_t clock_t; > > > ># 73 "/usr/include/time.h" 3 4 > > >typedef __time_t time_t; > > > ># 91 "/usr/include/time.h" 3 4 >typedef __clockid_t clockid_t; ># 103 "/usr/include/time.h" 3 4 >typedef __timer_t timer_t; ># 133 "/usr/include/sys/types.h" 2 3 4 > > > >typedef __useconds_t useconds_t; > > > >typedef __suseconds_t suseconds_t; > > > > > ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stddef.h" 1 3 4 ># 147 "/usr/include/sys/types.h" 2 3 4 > > > >typedef unsigned long int ulong; >typedef unsigned short int ushort; >typedef unsigned int uint; ># 194 "/usr/include/sys/types.h" 3 4 >typedef int int8_t __attribute__ ((__mode__ (__QI__))); >typedef int int16_t __attribute__ ((__mode__ (__HI__))); >typedef int int32_t __attribute__ ((__mode__ (__SI__))); >typedef int int64_t __attribute__ ((__mode__ (__DI__))); > > >typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); >typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); >typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); >typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); > >typedef int register_t __attribute__ ((__mode__ (__word__))); ># 219 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/include/sys/select.h" 1 3 4 ># 30 "/usr/include/sys/select.h" 3 4 ># 1 "/usr/include/bits/select.h" 1 3 4 ># 31 "/usr/include/sys/select.h" 2 3 4 > > ># 1 "/usr/include/bits/sigset.h" 1 3 4 ># 23 "/usr/include/bits/sigset.h" 3 4 >typedef int __sig_atomic_t; > > > > >typedef struct > { > unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; > } __sigset_t; ># 34 "/usr/include/sys/select.h" 2 3 4 > > > >typedef __sigset_t sigset_t; > > > > > ># 1 "/usr/include/time.h" 1 3 4 ># 120 "/usr/include/time.h" 3 4 >struct timespec > { > __time_t tv_sec; > __syscall_slong_t tv_nsec; > }; ># 44 "/usr/include/sys/select.h" 2 3 4 > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 30 "/usr/include/bits/time.h" 3 4 >struct timeval > { > __time_t tv_sec; > __suseconds_t tv_usec; > }; ># 46 "/usr/include/sys/select.h" 2 3 4 ># 54 "/usr/include/sys/select.h" 3 4 >typedef long int __fd_mask; ># 64 "/usr/include/sys/select.h" 3 4 >typedef struct > { > > > > __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; > > > > > > } fd_set; > > > > > > >typedef __fd_mask fd_mask; ># 96 "/usr/include/sys/select.h" 3 4 > ># 106 "/usr/include/sys/select.h" 3 4 >extern int select (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > struct timeval *__restrict __timeout); ># 118 "/usr/include/sys/select.h" 3 4 >extern int pselect (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > const struct timespec *__restrict __timeout, > const __sigset_t *__restrict __sigmask); ># 131 "/usr/include/sys/select.h" 3 4 > ># 220 "/usr/include/sys/types.h" 2 3 4 > > ># 1 "/usr/include/sys/sysmacros.h" 1 3 4 ># 29 "/usr/include/sys/sysmacros.h" 3 4 > > >__extension__ >extern unsigned int gnu_dev_major (unsigned long long int __dev) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); >__extension__ >extern unsigned int gnu_dev_minor (unsigned long long int __dev) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); >__extension__ >extern unsigned long long int gnu_dev_makedev (unsigned int __major, > unsigned int __minor) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); > > >__extension__ extern __inline __attribute__ ((__const__)) unsigned int >__attribute__ ((__nothrow__ , __leaf__)) gnu_dev_major (unsigned long long int __dev) >{ > return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); >} > >__extension__ extern __inline __attribute__ ((__const__)) unsigned int >__attribute__ ((__nothrow__ , __leaf__)) gnu_dev_minor (unsigned long long int __dev) >{ > return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); >} > >__extension__ extern __inline __attribute__ ((__const__)) unsigned long long int >__attribute__ ((__nothrow__ , __leaf__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor) >{ > return ((__minor & 0xff) | ((__major & 0xfff) << 8) > | (((unsigned long long int) (__minor & ~0xff)) << 12) > | (((unsigned long long int) (__major & ~0xfff)) << 32)); >} > > ># 223 "/usr/include/sys/types.h" 2 3 4 > > > > > >typedef __blksize_t blksize_t; ># 248 "/usr/include/sys/types.h" 3 4 >typedef __blkcnt64_t blkcnt_t; > > > >typedef __fsblkcnt64_t fsblkcnt_t; > > > >typedef __fsfilcnt64_t fsfilcnt_t; > > > > > >typedef __blkcnt64_t blkcnt64_t; >typedef __fsblkcnt64_t fsblkcnt64_t; >typedef __fsfilcnt64_t fsfilcnt64_t; > > > > > ># 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 ># 22 "/usr/include/bits/pthreadtypes.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 23 "/usr/include/bits/pthreadtypes.h" 2 3 4 ># 49 "/usr/include/bits/pthreadtypes.h" 3 4 >typedef unsigned long int pthread_t; > > >union pthread_attr_t >{ > char __size[36]; > long int __align; >}; > >typedef union pthread_attr_t pthread_attr_t; ># 70 "/usr/include/bits/pthreadtypes.h" 3 4 >typedef struct __pthread_internal_slist >{ > struct __pthread_internal_slist *__next; >} __pthread_slist_t; > > > > > >typedef union >{ > struct __pthread_mutex_s > { > int __lock; > unsigned int __count; > int __owner; > > > > > > int __kind; > > > > > > unsigned int __nusers; > __extension__ union > { > int __spins; > __pthread_slist_t __list; > }; > > } __data; > char __size[24]; > long int __align; >} pthread_mutex_t; > >typedef union >{ > char __size[4]; > int __align; >} pthread_mutexattr_t; > > > > >typedef union >{ > struct > { > int __lock; > unsigned int __futex; > __extension__ unsigned long long int __total_seq; > __extension__ unsigned long long int __wakeup_seq; > __extension__ unsigned long long int __woken_seq; > void *__mutex; > unsigned int __nwaiters; > unsigned int __broadcast_seq; > } __data; > char __size[48]; > __extension__ long long int __align; >} pthread_cond_t; > >typedef union >{ > char __size[4]; > int __align; >} pthread_condattr_t; > > > >typedef unsigned int pthread_key_t; > > > >typedef int pthread_once_t; > > > > > >typedef union >{ ># 173 "/usr/include/bits/pthreadtypes.h" 3 4 > struct > { > int __lock; > unsigned int __nr_readers; > unsigned int __readers_wakeup; > unsigned int __writer_wakeup; > unsigned int __nr_readers_queued; > unsigned int __nr_writers_queued; > unsigned char __pad1; > unsigned char __pad2; > unsigned char __shared; > > > unsigned char __flags; > int __writer; > } __data; > > char __size[32]; > long int __align; >} pthread_rwlock_t; > >typedef union >{ > char __size[8]; > long int __align; >} pthread_rwlockattr_t; > > > > > >typedef volatile int pthread_spinlock_t; > > > > >typedef union >{ > char __size[20]; > long int __align; >} pthread_barrier_t; > >typedef union >{ > char __size[4]; > int __align; >} pthread_barrierattr_t; ># 271 "/usr/include/sys/types.h" 2 3 4 > > > ># 199 "../../gcc/system.h" 2 > ># 1 "/usr/include/errno.h" 1 3 4 ># 31 "/usr/include/errno.h" 3 4 > > > > ># 1 "/usr/include/bits/errno.h" 1 3 4 ># 24 "/usr/include/bits/errno.h" 3 4 ># 1 "/usr/include/linux/errno.h" 1 3 4 > > > ># 1 "/usr/include/asm/errno.h" 1 3 4 > > > ># 1 "/usr/include/asm-generic/errno.h" 1 3 4 > > > ># 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 ># 5 "/usr/include/asm-generic/errno.h" 2 3 4 ># 5 "/usr/include/asm/errno.h" 2 3 4 ># 5 "/usr/include/linux/errno.h" 2 3 4 ># 25 "/usr/include/bits/errno.h" 2 3 4 ># 50 "/usr/include/bits/errno.h" 3 4 >extern int *__errno_location (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); ># 36 "/usr/include/errno.h" 2 3 4 ># 54 "/usr/include/errno.h" 3 4 >extern char *program_invocation_name, *program_invocation_short_name; > > > > ># 68 "/usr/include/errno.h" 3 4 >typedef int error_t; ># 201 "../../gcc/system.h" 2 ># 215 "../../gcc/system.h" ># 1 "/usr/include/string.h" 1 3 4 ># 27 "/usr/include/string.h" 3 4 > > > > > ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stddef.h" 1 3 4 ># 33 "/usr/include/string.h" 2 3 4 > > > > > > > > > >extern void *memcpy (void *__restrict __dest, const void *__restrict __src, > size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void *memmove (void *__dest, const void *__src, size_t __n) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern void *memccpy (void *__restrict __dest, const void *__restrict __src, > int __c, size_t __n) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > >extern int memcmp (const void *__s1, const void *__s2, size_t __n) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); ># 92 "/usr/include/string.h" 3 4 >extern void *memchr (const void *__s, int __c, size_t __n) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > ># 106 "/usr/include/string.h" 3 4 >extern void *rawmemchr (const void *__s, int __c) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); ># 117 "/usr/include/string.h" 3 4 >extern void *memrchr (const void *__s, int __c, size_t __n) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern char *strcpy (char *__restrict __dest, const char *__restrict __src) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncpy (char *__restrict __dest, > const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strcat (char *__restrict __dest, const char *__restrict __src) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncat (char *__restrict __dest, const char *__restrict __src, > size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcmp (const char *__s1, const char *__s2) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern int strncmp (const char *__s1, const char *__s2, size_t __n) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcoll (const char *__s1, const char *__s2) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern size_t strxfrm (char *__restrict __dest, > const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); > ># 162 "/usr/include/string.h" 3 4 >extern int strcoll_l (const char *__s1, const char *__s2, __locale_t __l) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); > >extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, > __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))); > > > > > >extern char *strdup (const char *__s) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern char *strndup (const char *__string, size_t __n) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); ># 207 "/usr/include/string.h" 3 4 > ># 232 "/usr/include/string.h" 3 4 >extern char *strchr (const char *__s, int __c) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); ># 259 "/usr/include/string.h" 3 4 >extern char *strrchr (const char *__s, int __c) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > ># 273 "/usr/include/string.h" 3 4 >extern char *strchrnul (const char *__s, int __c) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern size_t strcspn (const char *__s, const char *__reject) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern size_t strspn (const char *__s, const char *__accept) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); ># 311 "/usr/include/string.h" 3 4 >extern char *strpbrk (const char *__s, const char *__accept) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); ># 338 "/usr/include/string.h" 3 4 >extern char *strstr (const char *__haystack, const char *__needle) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > > >extern char *strtok (char *__restrict __s, const char *__restrict __delim) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); > > > > >extern char *__strtok_r (char *__restrict __s, > const char *__restrict __delim, > char **__restrict __save_ptr) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); > >extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, > char **__restrict __save_ptr) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); ># 369 "/usr/include/string.h" 3 4 >extern char *strcasestr (const char *__haystack, const char *__needle) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > > >extern void *memmem (const void *__haystack, size_t __haystacklen, > const void *__needle, size_t __needlelen) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); > > > >extern void *__mempcpy (void *__restrict __dest, > const void *__restrict __src, size_t __n) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); >extern void *mempcpy (void *__restrict __dest, > const void *__restrict __src, size_t __n) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern size_t strlen (const char *__s) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern size_t strnlen (const char *__string, size_t __maxlen) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__)); > ># 434 "/usr/include/string.h" 3 4 >extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ; > > > > > >extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); > > > > > >extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > >extern void bcopy (const void *__src, void *__dest, size_t __n) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > >extern int bcmp (const void *__s1, const void *__s2, size_t __n) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); ># 485 "/usr/include/string.h" 3 4 >extern char *index (const char *__s, int __c) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); ># 513 "/usr/include/string.h" 3 4 >extern char *rindex (const char *__s, int __c) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > >extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); > > > > >extern int ffsl (long int __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); > >__extension__ extern int ffsll (long long int __ll) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); > > > > >extern int strcasecmp (const char *__s1, const char *__s2) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern int strcasecmp_l (const char *__s1, const char *__s2, > __locale_t __loc) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); > >extern int strncasecmp_l (const char *__s1, const char *__s2, > size_t __n, __locale_t __loc) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); > > > > > >extern char *strsep (char **__restrict __stringp, > const char *__restrict __delim) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > > > >extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__)); > > >extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); >extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern char *__stpncpy (char *__restrict __dest, > const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); >extern char *stpncpy (char *__restrict __dest, > const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > > > >extern int strverscmp (const char *__s1, const char *__s2) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strfry (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > >extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); ># 602 "/usr/include/string.h" 3 4 >extern char *basename (const char *__filename) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); ># 630 "/usr/include/string.h" 3 4 ># 1 "/usr/include/bits/string.h" 1 3 4 ># 631 "/usr/include/string.h" 2 3 4 > > ># 1 "/usr/include/bits/string2.h" 1 3 4 ># 634 "/usr/include/string.h" 2 3 4 ># 642 "/usr/include/string.h" 3 4 > ># 216 "../../gcc/system.h" 2 ># 1 "/usr/include/strings.h" 1 3 4 ># 217 "../../gcc/system.h" 2 ># 228 "../../gcc/system.h" ># 1 "/usr/include/stdlib.h" 1 3 4 ># 32 "/usr/include/stdlib.h" 3 4 ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stddef.h" 1 3 4 ># 33 "/usr/include/stdlib.h" 2 3 4 > > > > > > > > ># 1 "/usr/include/bits/waitflags.h" 1 3 4 ># 42 "/usr/include/stdlib.h" 2 3 4 ># 1 "/usr/include/bits/waitstatus.h" 1 3 4 ># 66 "/usr/include/bits/waitstatus.h" 3 4 >union wait > { > int w_status; > struct > { > > > > > > > > unsigned int:16; > unsigned int __w_retcode:8; > unsigned int __w_coredump:1; > unsigned int __w_termsig:7; > > } __wait_terminated; > struct > { > > > > > > > unsigned int:16; > unsigned int __w_stopsig:8; > unsigned int __w_stopval:8; > > } __wait_stopped; > }; ># 43 "/usr/include/stdlib.h" 2 3 4 ># 67 "/usr/include/stdlib.h" 3 4 >typedef union > { > union wait *__uptr; > int *__iptr; > } __WAIT_STATUS __attribute__ ((__transparent_union__)); ># 95 "/usr/include/stdlib.h" 3 4 > > >typedef struct > { > int quot; > int rem; > } div_t; > > > >typedef struct > { > long int quot; > long int rem; > } ldiv_t; > > > > > > > >__extension__ typedef struct > { > long long int quot; > long long int rem; > } lldiv_t; > > ># 139 "/usr/include/stdlib.h" 3 4 >extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) ; > > > > >extern double atof (const char *__nptr) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; > >extern int atoi (const char *__nptr) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; > >extern long int atol (const char *__nptr) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; > > > > > >__extension__ extern long long int atoll (const char *__nptr) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; > > > > > >extern double strtod (const char *__restrict __nptr, > char **__restrict __endptr) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern float strtof (const char *__restrict __nptr, > char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > >extern long double strtold (const char *__restrict __nptr, > char **__restrict __endptr) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern long int strtol (const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > >extern unsigned long int strtoul (const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > >__extension__ >extern long long int strtoq (const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > >__extension__ >extern unsigned long long int strtouq (const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > > >__extension__ >extern long long int strtoll (const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > >__extension__ >extern unsigned long long int strtoull (const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > ># 239 "/usr/include/stdlib.h" 3 4 >extern long int strtol_l (const char *__restrict __nptr, > char **__restrict __endptr, int __base, > __locale_t __loc) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 4))); > >extern unsigned long int strtoul_l (const char *__restrict __nptr, > char **__restrict __endptr, > int __base, __locale_t __loc) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 4))); > >__extension__ >extern long long int strtoll_l (const char *__restrict __nptr, > char **__restrict __endptr, int __base, > __locale_t __loc) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 4))); > >__extension__ >extern unsigned long long int strtoull_l (const char *__restrict __nptr, > char **__restrict __endptr, > int __base, __locale_t __loc) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 4))); > >extern double strtod_l (const char *__restrict __nptr, > char **__restrict __endptr, __locale_t __loc) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))); > >extern float strtof_l (const char *__restrict __nptr, > char **__restrict __endptr, __locale_t __loc) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))); > >extern long double strtold_l (const char *__restrict __nptr, > char **__restrict __endptr, > __locale_t __loc) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))); > > > > > >extern __inline double >__attribute__ ((__nothrow__ , __leaf__)) atof (const char *__nptr) >{ > return strtod (__nptr, (char **) ((void *)0)); >} >extern __inline int >__attribute__ ((__nothrow__ , __leaf__)) atoi (const char *__nptr) >{ > return (int) strtol (__nptr, (char **) ((void *)0), 10); >} >extern __inline long int >__attribute__ ((__nothrow__ , __leaf__)) atol (const char *__nptr) >{ > return strtol (__nptr, (char **) ((void *)0), 10); >} > > > > >__extension__ extern __inline long long int >__attribute__ ((__nothrow__ , __leaf__)) atoll (const char *__nptr) >{ > return strtoll (__nptr, (char **) ((void *)0), 10); >} > ># 310 "/usr/include/stdlib.h" 3 4 >extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) ; > > >extern long int a64l (const char *__s) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; ># 326 "/usr/include/stdlib.h" 3 4 >extern long int random (void) __attribute__ ((__nothrow__ , __leaf__)); > > >extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__)); > > > > > >extern char *initstate (unsigned int __seed, char *__statebuf, > size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); > > > >extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > > > > >struct random_data > { > int32_t *fptr; > int32_t *rptr; > int32_t *state; > int rand_type; > int rand_deg; > int rand_sep; > int32_t *end_ptr; > }; > >extern int random_r (struct random_data *__restrict __buf, > int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > >extern int srandom_r (unsigned int __seed, struct random_data *__buf) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); > >extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, > size_t __statelen, > struct random_data *__restrict __buf) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))); > >extern int setstate_r (char *__restrict __statebuf, > struct random_data *__restrict __buf) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern int rand (void) __attribute__ ((__nothrow__ , __leaf__)); > >extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > > >extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__)); >extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > >extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__)); >extern long int nrand48 (unsigned short int __xsubi[3]) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > >extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__)); >extern long int jrand48 (unsigned short int __xsubi[3]) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > >extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__)); >extern unsigned short int *seed48 (unsigned short int __seed16v[3]) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); >extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > > >struct drand48_data > { > unsigned short int __x[3]; > unsigned short int __old_x[3]; > unsigned short int __c; > unsigned short int __init; > unsigned long long int __a; > }; > > >extern int drand48_r (struct drand48_data *__restrict __buffer, > double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); >extern int erand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int lrand48_r (struct drand48_data *__restrict __buffer, > long int *__restrict __result) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); >extern int nrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > long int *__restrict __result) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int mrand48_r (struct drand48_data *__restrict __buffer, > long int *__restrict __result) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); >extern int jrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > long int *__restrict __result) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int srand48_r (long int __seedval, struct drand48_data *__buffer) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); > >extern int seed48_r (unsigned short int __seed16v[3], > struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > >extern int lcong48_r (unsigned short int __param[7], > struct drand48_data *__buffer) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > > > > >extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ; > >extern void *calloc (size_t __nmemb, size_t __size) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ; > > > > > > > > > > >extern void *realloc (void *__ptr, size_t __size) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); > >extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern void cfree (void *__ptr) __attribute__ ((__nothrow__ , __leaf__)); > > > ># 1 "/usr/include/alloca.h" 1 3 4 ># 24 "/usr/include/alloca.h" 3 4 ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stddef.h" 1 3 4 ># 25 "/usr/include/alloca.h" 2 3 4 > > > > > > > >extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > ># 497 "/usr/include/stdlib.h" 2 3 4 > > > > > >extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ; > > > > >extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; > > > > >extern void *aligned_alloc (size_t __alignment, size_t __size) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__, __alloc_size__ (2))); > > > > >extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); > > > >extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > > > > >extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > > > > >extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); > > > > > >extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); > > > > > > > >extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); > > > > > > >extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; > > > > >extern char *__secure_getenv (const char *__name) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; > > > > > >extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int setenv (const char *__name, const char *__value, int __replace) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); > > >extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__)); ># 608 "/usr/include/stdlib.h" 3 4 >extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); ># 625 "/usr/include/stdlib.h" 3 4 >extern int mkstemp (char *__template) __asm__ ("" "mkstemp64") > __attribute__ ((__nonnull__ (1))) ; > > > > > >extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; ># 647 "/usr/include/stdlib.h" 3 4 >extern int mkstemps (char *__template, int __suffixlen) __asm__ ("" "mkstemps64") > __attribute__ ((__nonnull__ (1))) ; > > > > > >extern int mkstemps64 (char *__template, int __suffixlen) > __attribute__ ((__nonnull__ (1))) ; ># 665 "/usr/include/stdlib.h" 3 4 >extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; ># 679 "/usr/include/stdlib.h" 3 4 >extern int mkostemp (char *__template, int __flags) __asm__ ("" "mkostemp64") > __attribute__ ((__nonnull__ (1))) ; > > > > > >extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; ># 700 "/usr/include/stdlib.h" 3 4 >extern int mkostemps (char *__template, int __suffixlen, int __flags) __asm__ ("" "mkostemps64") > > __attribute__ ((__nonnull__ (1))) ; > > > > > >extern int mkostemps64 (char *__template, int __suffixlen, int __flags) > __attribute__ ((__nonnull__ (1))) ; > > > > > > > > > >extern int system (const char *__command) ; > > > > > > >extern char *canonicalize_file_name (const char *__name) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; ># 736 "/usr/include/stdlib.h" 3 4 >extern char *realpath (const char *__restrict __name, > char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) ; > > > > > > >typedef int (*__compar_fn_t) (const void *, const void *); > > >typedef __compar_fn_t comparison_fn_t; > > > >typedef int (*__compar_d_fn_t) (const void *, const void *, void *); > > > > > >extern void *bsearch (const void *__key, const void *__base, > size_t __nmemb, size_t __size, __compar_fn_t __compar) > __attribute__ ((__nonnull__ (1, 2, 5))) ; > > > >extern void qsort (void *__base, size_t __nmemb, size_t __size, > __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); > >extern void qsort_r (void *__base, size_t __nmemb, size_t __size, > __compar_d_fn_t __compar, void *__arg) > __attribute__ ((__nonnull__ (1, 4))); > > > > >extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ; >extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ; > > > >__extension__ extern long long int llabs (long long int __x) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ; > > > > > > > >extern div_t div (int __numer, int __denom) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ; >extern ldiv_t ldiv (long int __numer, long int __denom) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ; > > > > >__extension__ extern lldiv_t lldiv (long long int __numer, > long long int __denom) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ; > ># 810 "/usr/include/stdlib.h" 3 4 >extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ; > > > > >extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ; > > > > >extern char *gcvt (double __value, int __ndigit, char *__buf) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ; > > > > >extern char *qecvt (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ; >extern char *qfcvt (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ; >extern char *qgcvt (long double __value, int __ndigit, char *__buf) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ; > > > > >extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign, char *__restrict __buf, > size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5))); >extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign, char *__restrict __buf, > size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5))); > >extern int qecvt_r (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign, > char *__restrict __buf, size_t __len) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5))); >extern int qfcvt_r (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign, > char *__restrict __buf, size_t __len) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5))); > > > > > > > >extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) ; > > >extern int mbtowc (wchar_t *__restrict __pwc, > const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) ; > > >extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__)) ; > > > >extern size_t mbstowcs (wchar_t *__restrict __pwcs, > const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)); > >extern size_t wcstombs (char *__restrict __s, > const wchar_t *__restrict __pwcs, size_t __n) > __attribute__ ((__nothrow__ , __leaf__)); > > > > > > > > >extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; ># 898 "/usr/include/stdlib.h" 3 4 >extern int getsubopt (char **__restrict __optionp, > char *const *__restrict __tokens, > char **__restrict __valuep) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) ; > > > > > >extern void setkey (const char *__key) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > > > > >extern int posix_openpt (int __oflag) ; > > > > > > > >extern int grantpt (int __fd) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int unlockpt (int __fd) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern char *ptsname (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ; > > > > > > >extern int ptsname_r (int __fd, char *__buf, size_t __buflen) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); > > >extern int getpt (void); > > > > > > >extern int getloadavg (double __loadavg[], int __nelem) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); ># 966 "/usr/include/stdlib.h" 3 4 > ># 229 "../../gcc/system.h" 2 ># 253 "../../gcc/system.h" ># 1 "/usr/include/unistd.h" 1 3 4 ># 27 "/usr/include/unistd.h" 3 4 > ># 202 "/usr/include/unistd.h" 3 4 ># 1 "/usr/include/bits/posix_opt.h" 1 3 4 ># 203 "/usr/include/unistd.h" 2 3 4 > > > ># 1 "/usr/include/bits/environments.h" 1 3 4 ># 22 "/usr/include/bits/environments.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 23 "/usr/include/bits/environments.h" 2 3 4 ># 207 "/usr/include/unistd.h" 2 3 4 ># 226 "/usr/include/unistd.h" 3 4 ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stddef.h" 1 3 4 ># 227 "/usr/include/unistd.h" 2 3 4 ># 267 "/usr/include/unistd.h" 3 4 >typedef __intptr_t intptr_t; > > > > > > >typedef __socklen_t socklen_t; ># 287 "/usr/include/unistd.h" 3 4 >extern int access (const char *__name, int __type) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > >extern int euidaccess (const char *__name, int __type) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > >extern int eaccess (const char *__name, int __type) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern int faccessat (int __fd, const char *__file, int __type, int __flag) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ; ># 337 "/usr/include/unistd.h" 3 4 >extern __off64_t lseek (int __fd, __off64_t __offset, int __whence) __asm__ ("" "lseek64") __attribute__ ((__nothrow__ , __leaf__)) > > ; > > > > > >extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) > __attribute__ ((__nothrow__ , __leaf__)); > > > > > > >extern int close (int __fd); > > > > > > >extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ; > > > > > >extern ssize_t write (int __fd, const void *__buf, size_t __n) ; ># 388 "/usr/include/unistd.h" 3 4 >extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pread64") > > ; >extern ssize_t pwrite (int __fd, const void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pwrite64") > > ; ># 404 "/usr/include/unistd.h" 3 4 >extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, > __off64_t __offset) ; > > >extern ssize_t pwrite64 (int __fd, const void *__buf, size_t __n, > __off64_t __offset) ; > > > > > > > >extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__ , __leaf__)) ; > > > > >extern int pipe2 (int __pipedes[2], int __flags) __attribute__ ((__nothrow__ , __leaf__)) ; ># 432 "/usr/include/unistd.h" 3 4 >extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__ , __leaf__)); ># 444 "/usr/include/unistd.h" 3 4 >extern unsigned int sleep (unsigned int __seconds); > > > > > > > >extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) > __attribute__ ((__nothrow__ , __leaf__)); > > > > > > >extern int usleep (__useconds_t __useconds); ># 469 "/usr/include/unistd.h" 3 4 >extern int pause (void); > > > >extern int chown (const char *__file, __uid_t __owner, __gid_t __group) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; > > > >extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__ , __leaf__)) ; > > > > >extern int lchown (const char *__file, __uid_t __owner, __gid_t __group) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; > > > > > > >extern int fchownat (int __fd, const char *__file, __uid_t __owner, > __gid_t __group, int __flag) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ; > > > >extern int chdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; > > > >extern int fchdir (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ; ># 511 "/usr/include/unistd.h" 3 4 >extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) ; > > > > > >extern char *get_current_dir_name (void) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > > >extern char *getwd (char *__buf) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ; > > > > >extern int dup (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ; > > >extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern int dup3 (int __fd, int __fd2, int __flags) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern char **__environ; > >extern char **environ; > > > > > >extern int execve (const char *__path, char *const __argv[], > char *const __envp[]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > > > >extern int fexecve (int __fd, char *const __argv[], char *const __envp[]) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); > > > > >extern int execv (const char *__path, char *const __argv[]) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern int execle (const char *__path, const char *__arg, ...) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern int execl (const char *__path, const char *__arg, ...) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern int execvp (const char *__file, char *const __argv[]) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > > > >extern int execlp (const char *__file, const char *__arg, ...) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > > > >extern int execvpe (const char *__file, char *const __argv[], > char *const __envp[]) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern int nice (int __inc) __attribute__ ((__nothrow__ , __leaf__)) ; > > > > >extern void _exit (int __status) __attribute__ ((__noreturn__)); > > > > > ># 1 "/usr/include/bits/confname.h" 1 3 4 ># 25 "/usr/include/bits/confname.h" 3 4 >enum > { > _PC_LINK_MAX, > > _PC_MAX_CANON, > > _PC_MAX_INPUT, > > _PC_NAME_MAX, > > _PC_PATH_MAX, > > _PC_PIPE_BUF, > > _PC_CHOWN_RESTRICTED, > > _PC_NO_TRUNC, > > _PC_VDISABLE, > > _PC_SYNC_IO, > > _PC_ASYNC_IO, > > _PC_PRIO_IO, > > _PC_SOCK_MAXBUF, > > _PC_FILESIZEBITS, > > _PC_REC_INCR_XFER_SIZE, > > _PC_REC_MAX_XFER_SIZE, > > _PC_REC_MIN_XFER_SIZE, > > _PC_REC_XFER_ALIGN, > > _PC_ALLOC_SIZE_MIN, > > _PC_SYMLINK_MAX, > > _PC_2_SYMLINKS > > }; > > >enum > { > _SC_ARG_MAX, > > _SC_CHILD_MAX, > > _SC_CLK_TCK, > > _SC_NGROUPS_MAX, > > _SC_OPEN_MAX, > > _SC_STREAM_MAX, > > _SC_TZNAME_MAX, > > _SC_JOB_CONTROL, > > _SC_SAVED_IDS, > > _SC_REALTIME_SIGNALS, > > _SC_PRIORITY_SCHEDULING, > > _SC_TIMERS, > > _SC_ASYNCHRONOUS_IO, > > _SC_PRIORITIZED_IO, > > _SC_SYNCHRONIZED_IO, > > _SC_FSYNC, > > _SC_MAPPED_FILES, > > _SC_MEMLOCK, > > _SC_MEMLOCK_RANGE, > > _SC_MEMORY_PROTECTION, > > _SC_MESSAGE_PASSING, > > _SC_SEMAPHORES, > > _SC_SHARED_MEMORY_OBJECTS, > > _SC_AIO_LISTIO_MAX, > > _SC_AIO_MAX, > > _SC_AIO_PRIO_DELTA_MAX, > > _SC_DELAYTIMER_MAX, > > _SC_MQ_OPEN_MAX, > > _SC_MQ_PRIO_MAX, > > _SC_VERSION, > > _SC_PAGESIZE, > > > _SC_RTSIG_MAX, > > _SC_SEM_NSEMS_MAX, > > _SC_SEM_VALUE_MAX, > > _SC_SIGQUEUE_MAX, > > _SC_TIMER_MAX, > > > > > _SC_BC_BASE_MAX, > > _SC_BC_DIM_MAX, > > _SC_BC_SCALE_MAX, > > _SC_BC_STRING_MAX, > > _SC_COLL_WEIGHTS_MAX, > > _SC_EQUIV_CLASS_MAX, > > _SC_EXPR_NEST_MAX, > > _SC_LINE_MAX, > > _SC_RE_DUP_MAX, > > _SC_CHARCLASS_NAME_MAX, > > > _SC_2_VERSION, > > _SC_2_C_BIND, > > _SC_2_C_DEV, > > _SC_2_FORT_DEV, > > _SC_2_FORT_RUN, > > _SC_2_SW_DEV, > > _SC_2_LOCALEDEF, > > > _SC_PII, > > _SC_PII_XTI, > > _SC_PII_SOCKET, > > _SC_PII_INTERNET, > > _SC_PII_OSI, > > _SC_POLL, > > _SC_SELECT, > > _SC_UIO_MAXIOV, > > _SC_IOV_MAX = _SC_UIO_MAXIOV, > > _SC_PII_INTERNET_STREAM, > > _SC_PII_INTERNET_DGRAM, > > _SC_PII_OSI_COTS, > > _SC_PII_OSI_CLTS, > > _SC_PII_OSI_M, > > _SC_T_IOV_MAX, > > > > _SC_THREADS, > > _SC_THREAD_SAFE_FUNCTIONS, > > _SC_GETGR_R_SIZE_MAX, > > _SC_GETPW_R_SIZE_MAX, > > _SC_LOGIN_NAME_MAX, > > _SC_TTY_NAME_MAX, > > _SC_THREAD_DESTRUCTOR_ITERATIONS, > > _SC_THREAD_KEYS_MAX, > > _SC_THREAD_STACK_MIN, > > _SC_THREAD_THREADS_MAX, > > _SC_THREAD_ATTR_STACKADDR, > > _SC_THREAD_ATTR_STACKSIZE, > > _SC_THREAD_PRIORITY_SCHEDULING, > > _SC_THREAD_PRIO_INHERIT, > > _SC_THREAD_PRIO_PROTECT, > > _SC_THREAD_PROCESS_SHARED, > > > _SC_NPROCESSORS_CONF, > > _SC_NPROCESSORS_ONLN, > > _SC_PHYS_PAGES, > > _SC_AVPHYS_PAGES, > > _SC_ATEXIT_MAX, > > _SC_PASS_MAX, > > > _SC_XOPEN_VERSION, > > _SC_XOPEN_XCU_VERSION, > > _SC_XOPEN_UNIX, > > _SC_XOPEN_CRYPT, > > _SC_XOPEN_ENH_I18N, > > _SC_XOPEN_SHM, > > > _SC_2_CHAR_TERM, > > _SC_2_C_VERSION, > > _SC_2_UPE, > > > _SC_XOPEN_XPG2, > > _SC_XOPEN_XPG3, > > _SC_XOPEN_XPG4, > > > _SC_CHAR_BIT, > > _SC_CHAR_MAX, > > _SC_CHAR_MIN, > > _SC_INT_MAX, > > _SC_INT_MIN, > > _SC_LONG_BIT, > > _SC_WORD_BIT, > > _SC_MB_LEN_MAX, > > _SC_NZERO, > > _SC_SSIZE_MAX, > > _SC_SCHAR_MAX, > > _SC_SCHAR_MIN, > > _SC_SHRT_MAX, > > _SC_SHRT_MIN, > > _SC_UCHAR_MAX, > > _SC_UINT_MAX, > > _SC_ULONG_MAX, > > _SC_USHRT_MAX, > > > _SC_NL_ARGMAX, > > _SC_NL_LANGMAX, > > _SC_NL_MSGMAX, > > _SC_NL_NMAX, > > _SC_NL_SETMAX, > > _SC_NL_TEXTMAX, > > > _SC_XBS5_ILP32_OFF32, > > _SC_XBS5_ILP32_OFFBIG, > > _SC_XBS5_LP64_OFF64, > > _SC_XBS5_LPBIG_OFFBIG, > > > _SC_XOPEN_LEGACY, > > _SC_XOPEN_REALTIME, > > _SC_XOPEN_REALTIME_THREADS, > > > _SC_ADVISORY_INFO, > > _SC_BARRIERS, > > _SC_BASE, > > _SC_C_LANG_SUPPORT, > > _SC_C_LANG_SUPPORT_R, > > _SC_CLOCK_SELECTION, > > _SC_CPUTIME, > > _SC_THREAD_CPUTIME, > > _SC_DEVICE_IO, > > _SC_DEVICE_SPECIFIC, > > _SC_DEVICE_SPECIFIC_R, > > _SC_FD_MGMT, > > _SC_FIFO, > > _SC_PIPE, > > _SC_FILE_ATTRIBUTES, > > _SC_FILE_LOCKING, > > _SC_FILE_SYSTEM, > > _SC_MONOTONIC_CLOCK, > > _SC_MULTI_PROCESS, > > _SC_SINGLE_PROCESS, > > _SC_NETWORKING, > > _SC_READER_WRITER_LOCKS, > > _SC_SPIN_LOCKS, > > _SC_REGEXP, > > _SC_REGEX_VERSION, > > _SC_SHELL, > > _SC_SIGNALS, > > _SC_SPAWN, > > _SC_SPORADIC_SERVER, > > _SC_THREAD_SPORADIC_SERVER, > > _SC_SYSTEM_DATABASE, > > _SC_SYSTEM_DATABASE_R, > > _SC_TIMEOUTS, > > _SC_TYPED_MEMORY_OBJECTS, > > _SC_USER_GROUPS, > > _SC_USER_GROUPS_R, > > _SC_2_PBS, > > _SC_2_PBS_ACCOUNTING, > > _SC_2_PBS_LOCATE, > > _SC_2_PBS_MESSAGE, > > _SC_2_PBS_TRACK, > > _SC_SYMLOOP_MAX, > > _SC_STREAMS, > > _SC_2_PBS_CHECKPOINT, > > > _SC_V6_ILP32_OFF32, > > _SC_V6_ILP32_OFFBIG, > > _SC_V6_LP64_OFF64, > > _SC_V6_LPBIG_OFFBIG, > > > _SC_HOST_NAME_MAX, > > _SC_TRACE, > > _SC_TRACE_EVENT_FILTER, > > _SC_TRACE_INHERIT, > > _SC_TRACE_LOG, > > > _SC_LEVEL1_ICACHE_SIZE, > > _SC_LEVEL1_ICACHE_ASSOC, > > _SC_LEVEL1_ICACHE_LINESIZE, > > _SC_LEVEL1_DCACHE_SIZE, > > _SC_LEVEL1_DCACHE_ASSOC, > > _SC_LEVEL1_DCACHE_LINESIZE, > > _SC_LEVEL2_CACHE_SIZE, > > _SC_LEVEL2_CACHE_ASSOC, > > _SC_LEVEL2_CACHE_LINESIZE, > > _SC_LEVEL3_CACHE_SIZE, > > _SC_LEVEL3_CACHE_ASSOC, > > _SC_LEVEL3_CACHE_LINESIZE, > > _SC_LEVEL4_CACHE_SIZE, > > _SC_LEVEL4_CACHE_ASSOC, > > _SC_LEVEL4_CACHE_LINESIZE, > > > > _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, > > _SC_RAW_SOCKETS, > > > _SC_V7_ILP32_OFF32, > > _SC_V7_ILP32_OFFBIG, > > _SC_V7_LP64_OFF64, > > _SC_V7_LPBIG_OFFBIG, > > > _SC_SS_REPL_MAX, > > > _SC_TRACE_EVENT_NAME_MAX, > > _SC_TRACE_NAME_MAX, > > _SC_TRACE_SYS_MAX, > > _SC_TRACE_USER_EVENT_MAX, > > > _SC_XOPEN_STREAMS, > > > _SC_THREAD_ROBUST_PRIO_INHERIT, > > _SC_THREAD_ROBUST_PRIO_PROTECT > > }; > > >enum > { > _CS_PATH, > > > _CS_V6_WIDTH_RESTRICTED_ENVS, > > > > _CS_GNU_LIBC_VERSION, > > _CS_GNU_LIBPTHREAD_VERSION, > > > _CS_V5_WIDTH_RESTRICTED_ENVS, > > > > _CS_V7_WIDTH_RESTRICTED_ENVS, > > > > _CS_LFS_CFLAGS = 1000, > > _CS_LFS_LDFLAGS, > > _CS_LFS_LIBS, > > _CS_LFS_LINTFLAGS, > > _CS_LFS64_CFLAGS, > > _CS_LFS64_LDFLAGS, > > _CS_LFS64_LIBS, > > _CS_LFS64_LINTFLAGS, > > > _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, > > _CS_XBS5_ILP32_OFF32_LDFLAGS, > > _CS_XBS5_ILP32_OFF32_LIBS, > > _CS_XBS5_ILP32_OFF32_LINTFLAGS, > > _CS_XBS5_ILP32_OFFBIG_CFLAGS, > > _CS_XBS5_ILP32_OFFBIG_LDFLAGS, > > _CS_XBS5_ILP32_OFFBIG_LIBS, > > _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, > > _CS_XBS5_LP64_OFF64_CFLAGS, > > _CS_XBS5_LP64_OFF64_LDFLAGS, > > _CS_XBS5_LP64_OFF64_LIBS, > > _CS_XBS5_LP64_OFF64_LINTFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_CFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_LIBS, > > _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, > > > _CS_POSIX_V6_ILP32_OFF32_CFLAGS, > > _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, > > _CS_POSIX_V6_ILP32_OFF32_LIBS, > > _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_LIBS, > > _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, > > _CS_POSIX_V6_LP64_OFF64_CFLAGS, > > _CS_POSIX_V6_LP64_OFF64_LDFLAGS, > > _CS_POSIX_V6_LP64_OFF64_LIBS, > > _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS, > > > _CS_POSIX_V7_ILP32_OFF32_CFLAGS, > > _CS_POSIX_V7_ILP32_OFF32_LDFLAGS, > > _CS_POSIX_V7_ILP32_OFF32_LIBS, > > _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS, > > _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, > > _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS, > > _CS_POSIX_V7_ILP32_OFFBIG_LIBS, > > _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS, > > _CS_POSIX_V7_LP64_OFF64_CFLAGS, > > _CS_POSIX_V7_LP64_OFF64_LDFLAGS, > > _CS_POSIX_V7_LP64_OFF64_LIBS, > > _CS_POSIX_V7_LP64_OFF64_LINTFLAGS, > > _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS, > > _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS, > > _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, > > _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS, > > > _CS_V6_ENV, > > _CS_V7_ENV > > }; ># 610 "/usr/include/unistd.h" 2 3 4 > > >extern long int pathconf (const char *__path, int __name) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > >extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__ , __leaf__)); > > >extern long int sysconf (int __name) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern __pid_t getpid (void) __attribute__ ((__nothrow__ , __leaf__)); > > >extern __pid_t getppid (void) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern __pid_t getpgrp (void) __attribute__ ((__nothrow__ , __leaf__)); ># 646 "/usr/include/unistd.h" 3 4 >extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__)); > >extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > >extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__ , __leaf__)); ># 672 "/usr/include/unistd.h" 3 4 >extern int setpgrp (void) __attribute__ ((__nothrow__ , __leaf__)); ># 689 "/usr/include/unistd.h" 3 4 >extern __pid_t setsid (void) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern __uid_t getuid (void) __attribute__ ((__nothrow__ , __leaf__)); > > >extern __uid_t geteuid (void) __attribute__ ((__nothrow__ , __leaf__)); > > >extern __gid_t getgid (void) __attribute__ ((__nothrow__ , __leaf__)); > > >extern __gid_t getegid (void) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__ , __leaf__)) ; > > > >extern int group_member (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > >extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > >extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)); > > > > > >extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid) > __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid) > __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid) > __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid) > __attribute__ ((__nothrow__ , __leaf__)); > > > > > > >extern __pid_t fork (void) __attribute__ ((__nothrow__)); > > > > > > > >extern __pid_t vfork (void) __attribute__ ((__nothrow__ , __leaf__)); > > > > > >extern char *ttyname (int __fd) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int ttyname_r (int __fd, char *__buf, size_t __buflen) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ; > > > >extern int isatty (int __fd) __attribute__ ((__nothrow__ , __leaf__)); > > > > > >extern int ttyslot (void) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern int link (const char *__from, const char *__to) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ; > > > > >extern int linkat (int __fromfd, const char *__from, int __tofd, > const char *__to, int __flags) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))) ; > > > > >extern int symlink (const char *__from, const char *__to) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ; > > > > >extern ssize_t readlink (const char *__restrict __path, > char *__restrict __buf, size_t __len) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ; > > > > >extern int symlinkat (const char *__from, int __tofd, > const char *__to) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))) ; > > >extern ssize_t readlinkat (int __fd, const char *__restrict __path, > char *__restrict __buf, size_t __len) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))) ; > > > >extern int unlink (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > >extern int unlinkat (int __fd, const char *__name, int __flag) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); > > > >extern int rmdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > >extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__ , __leaf__)); > > >extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > >extern char *getlogin (void); > > > > > > > >extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1))); > > > > >extern int setlogin (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); ># 893 "/usr/include/unistd.h" 3 4 ># 1 "../../gcc/../include/getopt.h" 1 3 4 ># 36 "../../gcc/../include/getopt.h" 3 4 >extern char *optarg; ># 50 "../../gcc/../include/getopt.h" 3 4 >extern int optind; > > > > >extern int opterr; > > > >extern int optopt; ># 82 "../../gcc/../include/getopt.h" 3 4 >struct option >{ > > const char *name; > > > > > > int has_arg; > int *flag; > int val; >}; ># 113 "../../gcc/../include/getopt.h" 3 4 >extern int getopt (int argc, char *const *argv, const char *shortopts); > > > > > > > >extern int getopt_long (int argc, char *const *argv, const char *shortopts, > const struct option *longopts, int *longind); >extern int getopt_long_only (int argc, char *const *argv, > const char *shortopts, > const struct option *longopts, int *longind); > > >extern int _getopt_internal (int argc, char *const *argv, > const char *shortopts, > const struct option *longopts, int *longind, > int long_only); ># 894 "/usr/include/unistd.h" 2 3 4 > > > > > > > >extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern int sethostname (const char *__name, size_t __len) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; > > > >extern int sethostid (long int __id) __attribute__ ((__nothrow__ , __leaf__)) ; > > > > > >extern int getdomainname (char *__name, size_t __len) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; >extern int setdomainname (const char *__name, size_t __len) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; > > > > > >extern int vhangup (void) __attribute__ ((__nothrow__ , __leaf__)); > > >extern int revoke (const char *__file) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; > > > > > > > >extern int profil (unsigned short int *__sample_buffer, size_t __size, > size_t __offset, unsigned int __scale) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int acct (const char *__name) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern char *getusershell (void) __attribute__ ((__nothrow__ , __leaf__)); >extern void endusershell (void) __attribute__ ((__nothrow__ , __leaf__)); >extern void setusershell (void) __attribute__ ((__nothrow__ , __leaf__)); > > > > > >extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__ , __leaf__)) ; > > > > > > >extern int chroot (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; > > > >extern char *getpass (const char *__prompt) __attribute__ ((__nonnull__ (1))); > > > > > > > >extern int fsync (int __fd); > > > > > >extern int syncfs (int __fd) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > >extern long int gethostid (void); > > >extern void sync (void) __attribute__ ((__nothrow__ , __leaf__)); > > > > > >extern int getpagesize (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); > > > > >extern int getdtablesize (void) __attribute__ ((__nothrow__ , __leaf__)); ># 1019 "/usr/include/unistd.h" 3 4 >extern int truncate (const char *__file, __off64_t __length) __asm__ ("" "truncate64") __attribute__ ((__nothrow__ , __leaf__)) > > __attribute__ ((__nonnull__ (1))) ; > > > > > >extern int truncate64 (const char *__file, __off64_t __length) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; ># 1041 "/usr/include/unistd.h" 3 4 >extern int ftruncate (int __fd, __off64_t __length) __asm__ ("" "ftruncate64") __attribute__ ((__nothrow__ , __leaf__)) > ; > > > > > >extern int ftruncate64 (int __fd, __off64_t __length) __attribute__ ((__nothrow__ , __leaf__)) ; ># 1059 "/usr/include/unistd.h" 3 4 >extern int brk (void *__addr) __attribute__ ((__nothrow__ , __leaf__)) ; > > > > > >extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__ , __leaf__)); ># 1080 "/usr/include/unistd.h" 3 4 >extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__ , __leaf__)); ># 1106 "/usr/include/unistd.h" 3 4 >extern int lockf (int __fd, int __cmd, __off64_t __len) __asm__ ("" "lockf64") > ; > > > > > >extern int lockf64 (int __fd, int __cmd, __off64_t __len) ; ># 1134 "/usr/include/unistd.h" 3 4 >extern int fdatasync (int __fildes); > > > > > > > >extern char *crypt (const char *__key, const char *__salt) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern void encrypt (char *__block, int __edflag) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern void swab (const void *__restrict __from, void *__restrict __to, > ssize_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); ># 1172 "/usr/include/unistd.h" 3 4 > ># 254 "../../gcc/system.h" 2 > > > ># 1 "/usr/include/sys/param.h" 1 3 4 ># 26 "/usr/include/sys/param.h" 3 4 ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include-fixed/limits.h" 1 3 4 ># 34 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include-fixed/limits.h" 3 4 ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include-fixed/syslimits.h" 1 3 4 > > > > > > ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include-fixed/limits.h" 1 3 4 ># 169 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include-fixed/limits.h" 3 4 ># 1 "/usr/include/limits.h" 1 3 4 ># 144 "/usr/include/limits.h" 3 4 ># 1 "/usr/include/bits/posix1_lim.h" 1 3 4 ># 156 "/usr/include/bits/posix1_lim.h" 3 4 ># 1 "/usr/include/bits/local_lim.h" 1 3 4 ># 39 "/usr/include/bits/local_lim.h" 3 4 ># 1 "/usr/include/linux/limits.h" 1 3 4 ># 40 "/usr/include/bits/local_lim.h" 2 3 4 ># 157 "/usr/include/bits/posix1_lim.h" 2 3 4 ># 145 "/usr/include/limits.h" 2 3 4 > > > ># 1 "/usr/include/bits/posix2_lim.h" 1 3 4 ># 149 "/usr/include/limits.h" 2 3 4 > > > ># 1 "/usr/include/bits/xopen_lim.h" 1 3 4 ># 33 "/usr/include/bits/xopen_lim.h" 3 4 ># 1 "/usr/include/bits/stdio_lim.h" 1 3 4 ># 34 "/usr/include/bits/xopen_lim.h" 2 3 4 ># 153 "/usr/include/limits.h" 2 3 4 ># 170 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include-fixed/limits.h" 2 3 4 ># 8 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include-fixed/syslimits.h" 2 3 4 ># 35 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include-fixed/limits.h" 2 3 4 ># 27 "/usr/include/sys/param.h" 2 3 4 > ># 1 "/usr/include/linux/param.h" 1 3 4 > > > ># 1 "/usr/include/asm/param.h" 1 3 4 ># 1 "/usr/include/asm-generic/param.h" 1 3 4 ># 1 "/usr/include/asm/param.h" 2 3 4 ># 5 "/usr/include/linux/param.h" 2 3 4 ># 29 "/usr/include/sys/param.h" 2 3 4 ># 258 "../../gcc/system.h" 2 > > > > > ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include-fixed/limits.h" 1 3 4 ># 264 "../../gcc/system.h" 2 > > > ># 1 "../../gcc/hwint.h" 1 ># 180 "../../gcc/hwint.h" >static __inline__ int >clz_hwi (unsigned long long x) >{ > if (x == 0) > return (8 * 8); > > > > return __builtin_clzll (x); > > > >} > >static __inline__ int >ctz_hwi (unsigned long long x) >{ > if (x == 0) > return (8 * 8); > > > > return __builtin_ctzll (x); > > > >} > >static __inline__ int >ffs_hwi (unsigned long long x) >{ > > > > return __builtin_ffsll (x); > > > >} > >static __inline__ int >floor_log2 (unsigned long long x) >{ > return (8 * 8) - 1 - clz_hwi (x); >} > >static __inline__ int >exact_log2 (unsigned long long x) >{ > return x == (x & -x) && x ? ctz_hwi (x) : -1; >} > > > > > > > >extern long long abs_hwi (long long); >extern unsigned long long absu_hwi (long long); >extern long long gcd (long long, long long); >extern long long pos_mul_hwi (long long, long long); >extern long long mul_hwi (long long, long long); >extern long long least_common_multiple (long long, long long); ># 268 "../../gcc/system.h" 2 ># 297 "../../gcc/system.h" ># 1 "/usr/include/sys/time.h" 1 3 4 ># 26 "/usr/include/sys/time.h" 3 4 ># 1 "/usr/include/time.h" 1 3 4 ># 27 "/usr/include/sys/time.h" 2 3 4 > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 29 "/usr/include/sys/time.h" 2 3 4 ># 38 "/usr/include/sys/time.h" 3 4 > ># 56 "/usr/include/sys/time.h" 3 4 >struct timezone > { > int tz_minuteswest; > int tz_dsttime; > }; > >typedef struct timezone *__restrict __timezone_ptr_t; ># 72 "/usr/include/sys/time.h" 3 4 >extern int gettimeofday (struct timeval *__restrict __tv, > __timezone_ptr_t __tz) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > >extern int settimeofday (const struct timeval *__tv, > const struct timezone *__tz) > __attribute__ ((__nothrow__ , __leaf__)); > > > > > >extern int adjtime (const struct timeval *__delta, > struct timeval *__olddelta) __attribute__ ((__nothrow__ , __leaf__)); > > > > >enum __itimer_which > { > > ITIMER_REAL = 0, > > > ITIMER_VIRTUAL = 1, > > > > ITIMER_PROF = 2 > > }; > > > >struct itimerval > { > > struct timeval it_interval; > > struct timeval it_value; > }; > > > > >typedef enum __itimer_which __itimer_which_t; > > > > > > >extern int getitimer (__itimer_which_t __which, > struct itimerval *__value) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern int setitimer (__itimer_which_t __which, > const struct itimerval *__restrict __new, > struct itimerval *__restrict __old) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern int utimes (const char *__file, const struct timeval __tvp[2]) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > >extern int lutimes (const char *__file, const struct timeval __tvp[2]) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > >extern int futimes (int __fd, const struct timeval __tvp[2]) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > >extern int futimesat (int __fd, const char *__file, > const struct timeval __tvp[2]) __attribute__ ((__nothrow__ , __leaf__)); ># 190 "/usr/include/sys/time.h" 3 4 > ># 298 "../../gcc/system.h" 2 ># 1 "/usr/include/time.h" 1 3 4 ># 29 "/usr/include/time.h" 3 4 > > > > > > > > ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stddef.h" 1 3 4 ># 38 "/usr/include/time.h" 2 3 4 > > > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 86 "/usr/include/bits/time.h" 3 4 ># 1 "/usr/include/bits/timex.h" 1 3 4 ># 25 "/usr/include/bits/timex.h" 3 4 >struct timex >{ > unsigned int modes; > __syscall_slong_t offset; > __syscall_slong_t freq; > __syscall_slong_t maxerror; > __syscall_slong_t esterror; > int status; > __syscall_slong_t constant; > __syscall_slong_t precision; > __syscall_slong_t tolerance; > struct timeval time; > __syscall_slong_t tick; > __syscall_slong_t ppsfreq; > __syscall_slong_t jitter; > int shift; > __syscall_slong_t stabil; > __syscall_slong_t jitcnt; > __syscall_slong_t calcnt; > __syscall_slong_t errcnt; > __syscall_slong_t stbcnt; > > int tai; > > > int :32; int :32; int :32; int :32; > int :32; int :32; int :32; int :32; > int :32; int :32; int :32; >}; ># 87 "/usr/include/bits/time.h" 2 3 4 > > > > >extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __attribute__ ((__nothrow__ , __leaf__)); > > ># 42 "/usr/include/time.h" 2 3 4 ># 131 "/usr/include/time.h" 3 4 > > >struct tm >{ > int tm_sec; > int tm_min; > int tm_hour; > int tm_mday; > int tm_mon; > int tm_year; > int tm_wday; > int tm_yday; > int tm_isdst; > > > long int tm_gmtoff; > const char *tm_zone; > > > > >}; > > > > > > > > >struct itimerspec > { > struct timespec it_interval; > struct timespec it_value; > }; > > >struct sigevent; ># 186 "/usr/include/time.h" 3 4 > > > >extern clock_t clock (void) __attribute__ ((__nothrow__ , __leaf__)); > > >extern time_t time (time_t *__timer) __attribute__ ((__nothrow__ , __leaf__)); > > >extern double difftime (time_t __time1, time_t __time0) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); > > >extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__)); > > > > > >extern size_t strftime (char *__restrict __s, size_t __maxsize, > const char *__restrict __format, > const struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__)); > > > > > >extern char *strptime (const char *__restrict __s, > const char *__restrict __fmt, struct tm *__tp) > __attribute__ ((__nothrow__ , __leaf__)); > > > > > > > >extern size_t strftime_l (char *__restrict __s, size_t __maxsize, > const char *__restrict __format, > const struct tm *__restrict __tp, > __locale_t __loc) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern char *strptime_l (const char *__restrict __s, > const char *__restrict __fmt, struct tm *__tp, > __locale_t __loc) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > >extern struct tm *gmtime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern struct tm *localtime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__)); > > > > > >extern struct tm *gmtime_r (const time_t *__restrict __timer, > struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern struct tm *localtime_r (const time_t *__restrict __timer, > struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__)); > > > > > >extern char *asctime (const struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__)); > > >extern char *ctime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > > >extern char *asctime_r (const struct tm *__restrict __tp, > char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)); > > >extern char *ctime_r (const time_t *__restrict __timer, > char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern char *__tzname[2]; >extern int __daylight; >extern long int __timezone; > > > > >extern char *tzname[2]; > > > >extern void tzset (void) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int daylight; >extern long int timezone; > > > > > >extern int stime (const time_t *__when) __attribute__ ((__nothrow__ , __leaf__)); ># 319 "/usr/include/time.h" 3 4 >extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__)); > > >extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__)); > > >extern int dysize (int __year) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); ># 334 "/usr/include/time.h" 3 4 >extern int nanosleep (const struct timespec *__requested_time, > struct timespec *__remaining); > > > >extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__ , __leaf__)); > > >extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__ , __leaf__)); > > >extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) > __attribute__ ((__nothrow__ , __leaf__)); > > > > > > >extern int clock_nanosleep (clockid_t __clock_id, int __flags, > const struct timespec *__req, > struct timespec *__rem); > > >extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern int timer_create (clockid_t __clock_id, > struct sigevent *__restrict __evp, > timer_t *__restrict __timerid) __attribute__ ((__nothrow__ , __leaf__)); > > >extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__ , __leaf__)); > > >extern int timer_settime (timer_t __timerid, int __flags, > const struct itimerspec *__restrict __value, > struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__ , __leaf__)); > > >extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) > __attribute__ ((__nothrow__ , __leaf__)); > > >extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__ , __leaf__)); > > > > > >extern int timespec_get (struct timespec *__ts, int __base) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); ># 403 "/usr/include/time.h" 3 4 >extern int getdate_err; ># 412 "/usr/include/time.h" 3 4 >extern struct tm *getdate (const char *__string); ># 426 "/usr/include/time.h" 3 4 >extern int getdate_r (const char *__restrict __string, > struct tm *__restrict __resbufp); > > > ># 299 "../../gcc/system.h" 2 ># 310 "../../gcc/system.h" ># 1 "/usr/include/fcntl.h" 1 3 4 ># 28 "/usr/include/fcntl.h" 3 4 > > > > ># 1 "/usr/include/bits/fcntl.h" 1 3 4 ># 26 "/usr/include/bits/fcntl.h" 3 4 ># 1 "/usr/include/bits/uio.h" 1 3 4 ># 43 "/usr/include/bits/uio.h" 3 4 >struct iovec > { > void *iov_base; > size_t iov_len; > }; ># 27 "/usr/include/bits/fcntl.h" 2 3 4 ># 152 "/usr/include/bits/fcntl.h" 3 4 >struct flock > { > short int l_type; > short int l_whence; > > > > > __off64_t l_start; > __off64_t l_len; > > __pid_t l_pid; > }; > > >struct flock64 > { > short int l_type; > short int l_whence; > __off64_t l_start; > __off64_t l_len; > __pid_t l_pid; > }; > > > > >enum __pid_type > { > F_OWNER_TID = 0, > F_OWNER_PID, > F_OWNER_PGRP, > F_OWNER_GID = F_OWNER_PGRP > }; > > >struct f_owner_ex > { > enum __pid_type type; > __pid_t pid; > }; ># 237 "/usr/include/bits/fcntl.h" 3 4 > > > > > >extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count) > __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int sync_file_range (int __fd, __off64_t __offset, __off64_t __count, > unsigned int __flags); > > > >extern ssize_t vmsplice (int __fdout, const struct iovec *__iov, > size_t __count, unsigned int __flags); > > >extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout, > __off64_t *__offout, size_t __len, > unsigned int __flags); > > >extern ssize_t tee (int __fdin, int __fdout, size_t __len, > unsigned int __flags); > > > > > > >extern int fallocate (int __fd, int __mode, __off64_t __offset, __off64_t __len) __asm__ ("" "fallocate64") > > ; > > > > > >extern int fallocate64 (int __fd, int __mode, __off64_t __offset, > __off64_t __len); > > > > > ># 33 "/usr/include/fcntl.h" 2 3 4 ># 62 "/usr/include/fcntl.h" 3 4 ># 1 "/usr/include/bits/stat.h" 1 3 4 ># 26 "/usr/include/bits/stat.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 27 "/usr/include/bits/stat.h" 2 3 4 ># 47 "/usr/include/bits/stat.h" 3 4 >struct stat > { > __dev_t st_dev; > > > > > __ino64_t st_ino; > > __mode_t st_mode; > __nlink_t st_nlink; > __uid_t st_uid; > __gid_t st_gid; > __dev_t st_rdev; > unsigned short int __pad2; > > > > __off64_t st_size; > > __blksize_t st_blksize; > > > > > __blkcnt64_t st_blocks; ># 81 "/usr/include/bits/stat.h" 3 4 > struct timespec st_atim; > struct timespec st_mtim; > struct timespec st_ctim; ># 95 "/usr/include/bits/stat.h" 3 4 > unsigned long int __unused4; > unsigned long int __unused5; > }; > > > >struct stat64 > { > __dev_t st_dev; > __ino64_t st_ino; > __mode_t st_mode; > __nlink_t st_nlink; > __uid_t st_uid; > __gid_t st_gid; > __dev_t st_rdev; > unsigned short int __pad2; > __off64_t st_size; > __blksize_t st_blksize; > __blkcnt64_t st_blocks; > > > > > > > > struct timespec st_atim; > struct timespec st_mtim; > struct timespec st_ctim; ># 135 "/usr/include/bits/stat.h" 3 4 > unsigned long int __unused4; > unsigned long int __unused5; > }; ># 63 "/usr/include/fcntl.h" 2 3 4 ># 148 "/usr/include/fcntl.h" 3 4 >extern int fcntl (int __fd, int __cmd, ...); ># 160 "/usr/include/fcntl.h" 3 4 >extern int open (const char *__file, int __oflag, ...) __asm__ ("" "open64") > __attribute__ ((__nonnull__ (1))); > > > > > >extern int open64 (const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1))); ># 185 "/usr/include/fcntl.h" 3 4 >extern int openat (int __fd, const char *__file, int __oflag, ...) __asm__ ("" "openat64") > __attribute__ ((__nonnull__ (2))); > > > > > >extern int openat64 (int __fd, const char *__file, int __oflag, ...) > __attribute__ ((__nonnull__ (2))); ># 206 "/usr/include/fcntl.h" 3 4 >extern int creat (const char *__file, __mode_t __mode) __asm__ ("" "creat64") > __attribute__ ((__nonnull__ (1))); > > > > > >extern int creat64 (const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1))); ># 253 "/usr/include/fcntl.h" 3 4 >extern int posix_fadvise (int __fd, __off64_t __offset, __off64_t __len, int __advise) __asm__ ("" "posix_fadvise64") __attribute__ ((__nothrow__ , __leaf__)) > > ; > > > > > >extern int posix_fadvise64 (int __fd, __off64_t __offset, __off64_t __len, > int __advise) __attribute__ ((__nothrow__ , __leaf__)); ># 274 "/usr/include/fcntl.h" 3 4 >extern int posix_fallocate (int __fd, __off64_t __offset, __off64_t __len) __asm__ ("" "posix_fallocate64") > > ; > > > > > >extern int posix_fallocate64 (int __fd, __off64_t __offset, __off64_t __len); ># 293 "/usr/include/fcntl.h" 3 4 > ># 311 "../../gcc/system.h" 2 ># 351 "../../gcc/system.h" ># 1 "/usr/include/sys/wait.h" 1 3 4 ># 28 "/usr/include/sys/wait.h" 3 4 > > ># 1 "/usr/include/signal.h" 1 3 4 ># 30 "/usr/include/signal.h" 3 4 > > ># 1 "/usr/include/bits/sigset.h" 1 3 4 ># 103 "/usr/include/bits/sigset.h" 3 4 >extern int __sigismember (const __sigset_t *, int); >extern int __sigaddset (__sigset_t *, int); >extern int __sigdelset (__sigset_t *, int); ># 117 "/usr/include/bits/sigset.h" 3 4 >extern __inline int __sigismember (const __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return (__set->__val[__word] & __mask) ? 1 : 0; } >extern __inline int __sigaddset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] |= __mask), 0); } >extern __inline int __sigdelset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] &= ~__mask), 0); } ># 33 "/usr/include/signal.h" 2 3 4 > > > > > > > >typedef __sig_atomic_t sig_atomic_t; > ># 57 "/usr/include/signal.h" 3 4 ># 1 "/usr/include/bits/signum.h" 1 3 4 ># 58 "/usr/include/signal.h" 2 3 4 ># 78 "/usr/include/signal.h" 3 4 ># 1 "/usr/include/bits/siginfo.h" 1 3 4 ># 24 "/usr/include/bits/siginfo.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 25 "/usr/include/bits/siginfo.h" 2 3 4 > > > > > > > >typedef union sigval > { > int sival_int; > void *sival_ptr; > } sigval_t; ># 50 "/usr/include/bits/siginfo.h" 3 4 >typedef struct > { > int si_signo; > int si_errno; > > int si_code; > > union > { > int _pad[((128 / sizeof (int)) - 3)]; > > > struct > { > __pid_t si_pid; > __uid_t si_uid; > } _kill; > > > struct > { > int si_tid; > int si_overrun; > sigval_t si_sigval; > } _timer; > > > struct > { > __pid_t si_pid; > __uid_t si_uid; > sigval_t si_sigval; > } _rt; > > > struct > { > __pid_t si_pid; > __uid_t si_uid; > int si_status; > __clock_t si_utime; > __clock_t si_stime; > } _sigchld; > > > struct > { > void *si_addr; > } _sigfault; > > > struct > { > long int si_band; > int si_fd; > } _sigpoll; > } _sifields; > } siginfo_t; ># 128 "/usr/include/bits/siginfo.h" 3 4 >enum >{ > SI_ASYNCNL = -60, > > SI_TKILL = -6, > > SI_SIGIO, > > SI_ASYNCIO, > > SI_MESGQ, > > SI_TIMER, > > SI_QUEUE, > > SI_USER, > > SI_KERNEL = 0x80 > >}; > > > >enum >{ > ILL_ILLOPC = 1, > > ILL_ILLOPN, > > ILL_ILLADR, > > ILL_ILLTRP, > > ILL_PRVOPC, > > ILL_PRVREG, > > ILL_COPROC, > > ILL_BADSTK > >}; > > >enum >{ > FPE_INTDIV = 1, > > FPE_INTOVF, > > FPE_FLTDIV, > > FPE_FLTOVF, > > FPE_FLTUND, > > FPE_FLTRES, > > FPE_FLTINV, > > FPE_FLTSUB > >}; > > >enum >{ > SEGV_MAPERR = 1, > > SEGV_ACCERR > >}; > > >enum >{ > BUS_ADRALN = 1, > > BUS_ADRERR, > > BUS_OBJERR > >}; > > >enum >{ > TRAP_BRKPT = 1, > > TRAP_TRACE > >}; > > >enum >{ > CLD_EXITED = 1, > > CLD_KILLED, > > CLD_DUMPED, > > CLD_TRAPPED, > > CLD_STOPPED, > > CLD_CONTINUED > >}; > > >enum >{ > POLL_IN = 1, > > POLL_OUT, > > POLL_MSG, > > POLL_ERR, > > POLL_PRI, > > POLL_HUP > >}; ># 278 "/usr/include/bits/siginfo.h" 3 4 >typedef struct sigevent > { > sigval_t sigev_value; > int sigev_signo; > int sigev_notify; > > union > { > int _pad[((64 / sizeof (int)) - 3)]; > > > > __pid_t _tid; > > struct > { > void (*_function) (sigval_t); > pthread_attr_t *_attribute; > } _sigev_thread; > } _sigev_un; > } sigevent_t; > > > > > > >enum >{ > SIGEV_SIGNAL = 0, > > SIGEV_NONE, > > SIGEV_THREAD, > > > SIGEV_THREAD_ID = 4 > >}; ># 79 "/usr/include/signal.h" 2 3 4 > > > > >typedef void (*__sighandler_t) (int); > > > > >extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler) > __attribute__ ((__nothrow__ , __leaf__)); > >extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler) > __attribute__ ((__nothrow__ , __leaf__)); > > > > > > > >extern __sighandler_t signal (int __sig, __sighandler_t __handler) > __attribute__ ((__nothrow__ , __leaf__)); ># 112 "/usr/include/signal.h" 3 4 > > > > > >extern __sighandler_t bsd_signal (int __sig, __sighandler_t __handler) > __attribute__ ((__nothrow__ , __leaf__)); > > > > > > >extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > >extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern int raise (int __sig) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern __sighandler_t ssignal (int __sig, __sighandler_t __handler) > __attribute__ ((__nothrow__ , __leaf__)); >extern int gsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern void psignal (int __sig, const char *__s); > > > > >extern void psiginfo (const siginfo_t *__pinfo, const char *__s); ># 167 "/usr/include/signal.h" 3 4 >extern int __sigpause (int __sig_or_mask, int __is_sig); ># 176 "/usr/include/signal.h" 3 4 >extern int sigpause (int __sig) __asm__ ("__xpg_sigpause"); ># 195 "/usr/include/signal.h" 3 4 >extern int sigblock (int __mask) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__)); > > >extern int sigsetmask (int __mask) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__)); > > >extern int siggetmask (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__)); ># 210 "/usr/include/signal.h" 3 4 >typedef __sighandler_t sighandler_t; > > > > >typedef __sighandler_t sig_t; > > > > > >extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > >extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > >extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > >extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > >extern int sigismember (const sigset_t *__set, int __signo) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > >extern int sigisemptyset (const sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > >extern int sigandset (sigset_t *__set, const sigset_t *__left, > const sigset_t *__right) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))); > > >extern int sigorset (sigset_t *__set, const sigset_t *__left, > const sigset_t *__right) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))); > > > > ># 1 "/usr/include/bits/sigaction.h" 1 3 4 ># 24 "/usr/include/bits/sigaction.h" 3 4 >struct sigaction > { > > > union > { > > __sighandler_t sa_handler; > > void (*sa_sigaction) (int, siginfo_t *, void *); > } > __sigaction_handler; > > > > > > > > __sigset_t sa_mask; > > > int sa_flags; > > > void (*sa_restorer) (void); > }; ># 252 "/usr/include/signal.h" 2 3 4 > > >extern int sigprocmask (int __how, const sigset_t *__restrict __set, > sigset_t *__restrict __oset) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > >extern int sigsuspend (const sigset_t *__set) __attribute__ ((__nonnull__ (1))); > > >extern int sigaction (int __sig, const struct sigaction *__restrict __act, > struct sigaction *__restrict __oact) __attribute__ ((__nothrow__ , __leaf__)); > > >extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern int sigwait (const sigset_t *__restrict __set, int *__restrict __sig) > __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern int sigwaitinfo (const sigset_t *__restrict __set, > siginfo_t *__restrict __info) __attribute__ ((__nonnull__ (1))); > > > > > > >extern int sigtimedwait (const sigset_t *__restrict __set, > siginfo_t *__restrict __info, > const struct timespec *__restrict __timeout) > __attribute__ ((__nonnull__ (1))); > > > >extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val) > __attribute__ ((__nothrow__ , __leaf__)); ># 309 "/usr/include/signal.h" 3 4 >extern const char *const _sys_siglist[65]; >extern const char *const sys_siglist[65]; > > >struct sigvec > { > __sighandler_t sv_handler; > int sv_mask; > > int sv_flags; > > }; ># 333 "/usr/include/signal.h" 3 4 >extern int sigvec (int __sig, const struct sigvec *__vec, > struct sigvec *__ovec) __attribute__ ((__nothrow__ , __leaf__)); > > > ># 1 "/usr/include/bits/sigcontext.h" 1 3 4 ># 27 "/usr/include/bits/sigcontext.h" 3 4 ># 1 "/usr/include/asm/sigcontext.h" 1 3 4 ># 11 "/usr/include/asm/sigcontext.h" 3 4 ># 1 "/usr/include/asm/ptrace.h" 1 3 4 ># 27 "/usr/include/asm/ptrace.h" 3 4 ># 1 "/usr/include/linux/types.h" 1 3 4 > > > ># 1 "/usr/include/asm/types.h" 1 3 4 ># 15 "/usr/include/asm/types.h" 3 4 ># 1 "/usr/include/asm-generic/int-ll64.h" 1 3 4 ># 11 "/usr/include/asm-generic/int-ll64.h" 3 4 ># 1 "/usr/include/asm/bitsperlong.h" 1 3 4 ># 10 "/usr/include/asm/bitsperlong.h" 3 4 ># 1 "/usr/include/asm-generic/bitsperlong.h" 1 3 4 ># 11 "/usr/include/asm/bitsperlong.h" 2 3 4 ># 12 "/usr/include/asm-generic/int-ll64.h" 2 3 4 > > > > > > > >typedef __signed__ char __s8; >typedef unsigned char __u8; > >typedef __signed__ short __s16; >typedef unsigned short __u16; > >typedef __signed__ int __s32; >typedef unsigned int __u32; > > >__extension__ typedef __signed__ long long __s64; >__extension__ typedef unsigned long long __u64; ># 16 "/usr/include/asm/types.h" 2 3 4 ># 33 "/usr/include/asm/types.h" 3 4 >typedef struct { > __u32 u[4]; >} __attribute__((aligned(16))) __vector128; ># 5 "/usr/include/linux/types.h" 2 3 4 > > > ># 1 "/usr/include/linux/posix_types.h" 1 3 4 > > > ># 1 "/usr/include/linux/stddef.h" 1 3 4 ># 5 "/usr/include/linux/posix_types.h" 2 3 4 ># 36 "/usr/include/linux/posix_types.h" 3 4 >typedef struct { > unsigned long fds_bits [(1024/(8 * sizeof(unsigned long)))]; >} __kernel_fd_set; > > >typedef void (*__kernel_sighandler_t)(int); > > >typedef int __kernel_key_t; >typedef int __kernel_mqd_t; > ># 1 "/usr/include/asm/posix_types.h" 1 3 4 ># 14 "/usr/include/asm/posix_types.h" 3 4 >typedef unsigned int __kernel_size_t; >typedef int __kernel_ssize_t; >typedef long __kernel_ptrdiff_t; > > >typedef short __kernel_ipc_pid_t; > > > ># 1 "/usr/include/asm-generic/posix_types.h" 1 3 4 ># 14 "/usr/include/asm-generic/posix_types.h" 3 4 >typedef long __kernel_long_t; >typedef unsigned long __kernel_ulong_t; > > > >typedef __kernel_ulong_t __kernel_ino_t; > > > >typedef unsigned int __kernel_mode_t; > > > >typedef int __kernel_pid_t; > > > > > > > >typedef unsigned int __kernel_uid_t; >typedef unsigned int __kernel_gid_t; > > > >typedef __kernel_long_t __kernel_suseconds_t; > > > >typedef int __kernel_daddr_t; > > > >typedef unsigned int __kernel_uid32_t; >typedef unsigned int __kernel_gid32_t; > > > >typedef __kernel_uid_t __kernel_old_uid_t; >typedef __kernel_gid_t __kernel_old_gid_t; > > > >typedef unsigned int __kernel_old_dev_t; ># 78 "/usr/include/asm-generic/posix_types.h" 3 4 >typedef struct { > int val[2]; >} __kernel_fsid_t; > > > > > >typedef __kernel_long_t __kernel_off_t; >typedef long long __kernel_loff_t; >typedef __kernel_long_t __kernel_time_t; >typedef __kernel_long_t __kernel_clock_t; >typedef int __kernel_timer_t; >typedef int __kernel_clockid_t; >typedef char * __kernel_caddr_t; >typedef unsigned short __kernel_uid16_t; >typedef unsigned short __kernel_gid16_t; ># 24 "/usr/include/asm/posix_types.h" 2 3 4 ># 48 "/usr/include/linux/posix_types.h" 2 3 4 ># 9 "/usr/include/linux/types.h" 2 3 4 ># 27 "/usr/include/linux/types.h" 3 4 >typedef __u16 __le16; >typedef __u16 __be16; >typedef __u32 __le32; >typedef __u32 __be32; >typedef __u64 __le64; >typedef __u64 __be64; > >typedef __u16 __sum16; >typedef __u32 __wsum; ># 28 "/usr/include/asm/ptrace.h" 2 3 4 > > > >struct pt_regs { > unsigned long gpr[32]; > unsigned long nip; > unsigned long msr; > unsigned long orig_gpr3; > unsigned long ctr; > unsigned long link; > unsigned long xer; > unsigned long ccr; > > > > unsigned long mq; > > > unsigned long trap; > > > unsigned long dar; > unsigned long dsisr; > unsigned long result; >}; ># 194 "/usr/include/asm/ptrace.h" 3 4 >struct ppc_debug_info { > __u32 version; > __u32 num_instruction_bps; > __u32 num_data_bps; > __u32 num_condition_regs; > __u32 data_bp_alignment; > __u32 sizeof_condition; > __u64 features; >}; ># 216 "/usr/include/asm/ptrace.h" 3 4 >struct ppc_hw_breakpoint { > __u32 version; > __u32 trigger_type; > __u32 addr_mode; > __u32 condition_mode; > __u64 addr; > __u64 addr2; > __u64 condition_value; >}; ># 12 "/usr/include/asm/sigcontext.h" 2 3 4 > > > > >struct sigcontext { > unsigned long _unused[4]; > int signal; > > > > unsigned long handler; > unsigned long oldmask; > struct pt_regs *regs; ># 85 "/usr/include/asm/sigcontext.h" 3 4 >}; ># 28 "/usr/include/bits/sigcontext.h" 2 3 4 > > > ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stddef.h" 1 3 4 ># 32 "/usr/include/bits/sigcontext.h" 2 3 4 ># 339 "/usr/include/signal.h" 2 3 4 > > >extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stddef.h" 1 3 4 ># 349 "/usr/include/signal.h" 2 3 4 > > > > >extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__ , __leaf__)); > ># 1 "/usr/include/bits/sigstack.h" 1 3 4 ># 25 "/usr/include/bits/sigstack.h" 3 4 >struct sigstack > { > void *ss_sp; > int ss_onstack; > }; > > > >enum >{ > SS_ONSTACK = 1, > > SS_DISABLE > >}; ># 49 "/usr/include/bits/sigstack.h" 3 4 >typedef struct sigaltstack > { > void *ss_sp; > int ss_flags; > size_t ss_size; > } stack_t; ># 356 "/usr/include/signal.h" 2 3 4 > > ># 1 "/usr/include/sys/ucontext.h" 1 3 4 ># 22 "/usr/include/sys/ucontext.h" 3 4 ># 1 "/usr/include/signal.h" 1 3 4 ># 23 "/usr/include/sys/ucontext.h" 2 3 4 > > > ># 1 "/usr/include/bits/sigcontext.h" 1 3 4 ># 27 "/usr/include/sys/ucontext.h" 2 3 4 > > > > > > > >typedef unsigned long gregset_t[48]; > > >typedef struct _libc_fpstate >{ > double fpregs[32]; > double fpscr; > unsigned int _pad[2]; >} fpregset_t; > > > >typedef struct _libc_vrstate >{ > unsigned int vrregs[32][4]; > unsigned int vrsave; > unsigned int _pad[2]; > unsigned int vscr; >} vrregset_t; > > >typedef struct >{ > gregset_t gregs; > fpregset_t fpregs; > vrregset_t vrregs __attribute__((__aligned__(16))); >} mcontext_t; ># 134 "/usr/include/sys/ucontext.h" 3 4 >typedef struct ucontext > { > unsigned long int uc_flags; > struct ucontext *uc_link; > stack_t uc_stack; ># 163 "/usr/include/sys/ucontext.h" 3 4 > int uc_pad[7]; > union uc_regs_ptr { > struct pt_regs *regs; > mcontext_t *uc_regs; > } uc_mcontext; > sigset_t uc_sigmask; > char uc_reg_space[sizeof(mcontext_t) + 12]; > > > > > } ucontext_t; ># 359 "/usr/include/signal.h" 2 3 4 > > > > > >extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__)); > > > >extern int sigaltstack (const struct sigaltstack *__restrict __ss, > struct sigaltstack *__restrict __oss) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > > >extern int sighold (int __sig) __attribute__ ((__nothrow__ , __leaf__)); > > >extern int sigrelse (int __sig) __attribute__ ((__nothrow__ , __leaf__)); > > >extern int sigignore (int __sig) __attribute__ ((__nothrow__ , __leaf__)); > > >extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > ># 1 "/usr/include/bits/sigthread.h" 1 3 4 ># 30 "/usr/include/bits/sigthread.h" 3 4 >extern int pthread_sigmask (int __how, > const __sigset_t *__restrict __newmask, > __sigset_t *__restrict __oldmask)__attribute__ ((__nothrow__ , __leaf__)); > > >extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int pthread_sigqueue (pthread_t __threadid, int __signo, > const union sigval __value) __attribute__ ((__nothrow__ , __leaf__)); ># 395 "/usr/include/signal.h" 2 3 4 > > > > > > >extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__ , __leaf__)); > >extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__ , __leaf__)); > > > > ># 31 "/usr/include/sys/wait.h" 2 3 4 ># 100 "/usr/include/sys/wait.h" 3 4 >typedef enum >{ > P_ALL, > P_PID, > P_PGID >} idtype_t; ># 114 "/usr/include/sys/wait.h" 3 4 >extern __pid_t wait (__WAIT_STATUS __stat_loc); ># 137 "/usr/include/sys/wait.h" 3 4 >extern __pid_t waitpid (__pid_t __pid, int *__stat_loc, int __options); ># 147 "/usr/include/sys/wait.h" 3 4 ># 1 "/usr/include/bits/siginfo.h" 1 3 4 ># 24 "/usr/include/bits/siginfo.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 25 "/usr/include/bits/siginfo.h" 2 3 4 ># 148 "/usr/include/sys/wait.h" 2 3 4 ># 160 "/usr/include/sys/wait.h" 3 4 >extern int waitid (idtype_t __idtype, __id_t __id, siginfo_t *__infop, > int __options); > > > > > >struct rusage; > > > > > > >extern __pid_t wait3 (__WAIT_STATUS __stat_loc, int __options, > struct rusage * __usage) __attribute__ ((__nothrow__)); > > > > >extern __pid_t wait4 (__pid_t __pid, __WAIT_STATUS __stat_loc, int __options, > struct rusage *__usage) __attribute__ ((__nothrow__)); > > > > ># 352 "../../gcc/system.h" 2 ># 382 "../../gcc/system.h" ># 1 "/usr/include/sys/mman.h" 1 3 4 ># 25 "/usr/include/sys/mman.h" 3 4 ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stddef.h" 1 3 4 ># 26 "/usr/include/sys/mman.h" 2 3 4 ># 41 "/usr/include/sys/mman.h" 3 4 ># 1 "/usr/include/bits/mman.h" 1 3 4 ># 42 "/usr/include/sys/mman.h" 2 3 4 > > > > > ># 61 "/usr/include/sys/mman.h" 3 4 >extern void * mmap (void *__addr, size_t __len, int __prot, int __flags, int __fd, __off64_t __offset) __asm__ ("" "mmap64") __attribute__ ((__nothrow__ , __leaf__)) > > > ; > > > > > >extern void *mmap64 (void *__addr, size_t __len, int __prot, > int __flags, int __fd, __off64_t __offset) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern int munmap (void *__addr, size_t __len) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern int mprotect (void *__addr, size_t __len, int __prot) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > > >extern int msync (void *__addr, size_t __len, int __flags); > > > > >extern int madvise (void *__addr, size_t __len, int __advice) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int posix_madvise (void *__addr, size_t __len, int __advice) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern int mlock (const void *__addr, size_t __len) __attribute__ ((__nothrow__ , __leaf__)); > > >extern int munlock (const void *__addr, size_t __len) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern int mlockall (int __flags) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int munlockall (void) __attribute__ ((__nothrow__ , __leaf__)); > > > > > > > >extern int mincore (void *__start, size_t __len, unsigned char *__vec) > __attribute__ ((__nothrow__ , __leaf__)); ># 133 "/usr/include/sys/mman.h" 3 4 >extern void *mremap (void *__addr, size_t __old_len, size_t __new_len, > int __flags, ...) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int remap_file_pages (void *__start, size_t __size, int __prot, > size_t __pgoff, int __flags) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern int shm_open (const char *__name, int __oflag, mode_t __mode); > > >extern int shm_unlink (const char *__name); > > ># 383 "../../gcc/system.h" 2 ># 394 "../../gcc/system.h" ># 1 "/usr/include/sys/resource.h" 1 3 4 ># 25 "/usr/include/sys/resource.h" 3 4 ># 1 "/usr/include/bits/resource.h" 1 3 4 ># 31 "/usr/include/bits/resource.h" 3 4 >enum __rlimit_resource >{ > > RLIMIT_CPU = 0, > > > > RLIMIT_FSIZE = 1, > > > > RLIMIT_DATA = 2, > > > > RLIMIT_STACK = 3, > > > > RLIMIT_CORE = 4, > > > > > > > __RLIMIT_RSS = 5, > > > > RLIMIT_NOFILE = 7, > __RLIMIT_OFILE = RLIMIT_NOFILE, > > > > > RLIMIT_AS = 9, > > > > __RLIMIT_NPROC = 6, > > > > __RLIMIT_MEMLOCK = 8, > > > > __RLIMIT_LOCKS = 10, > > > > __RLIMIT_SIGPENDING = 11, > > > > __RLIMIT_MSGQUEUE = 12, > > > > > > __RLIMIT_NICE = 13, > > > > > __RLIMIT_RTPRIO = 14, > > > > > > __RLIMIT_RTTIME = 15, > > > __RLIMIT_NLIMITS = 16, > __RLIM_NLIMITS = __RLIMIT_NLIMITS > > >}; ># 133 "/usr/include/bits/resource.h" 3 4 >typedef __rlim64_t rlim_t; > > >typedef __rlim64_t rlim64_t; > > >struct rlimit > { > > rlim_t rlim_cur; > > rlim_t rlim_max; > }; > > >struct rlimit64 > { > > rlim64_t rlim_cur; > > rlim64_t rlim_max; > }; > > > >enum __rusage_who >{ > > RUSAGE_SELF = 0, > > > > RUSAGE_CHILDREN = -1 > > > > , > > RUSAGE_THREAD = 1 > > > > >}; > > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 180 "/usr/include/bits/resource.h" 2 3 4 > > > > > > > >struct rusage > { > > struct timeval ru_utime; > > struct timeval ru_stime; > > __extension__ union > { > long int ru_maxrss; > __syscall_slong_t __ru_maxrss_word; > }; > > > > __extension__ union > { > long int ru_ixrss; > __syscall_slong_t __ru_ixrss_word; > }; > > __extension__ union > { > long int ru_idrss; > __syscall_slong_t __ru_idrss_word; > }; > > __extension__ union > { > long int ru_isrss; > __syscall_slong_t __ru_isrss_word; > }; > > > __extension__ union > { > long int ru_minflt; > __syscall_slong_t __ru_minflt_word; > }; > > __extension__ union > { > long int ru_majflt; > __syscall_slong_t __ru_majflt_word; > }; > > __extension__ union > { > long int ru_nswap; > __syscall_slong_t __ru_nswap_word; > }; > > > __extension__ union > { > long int ru_inblock; > __syscall_slong_t __ru_inblock_word; > }; > > __extension__ union > { > long int ru_oublock; > __syscall_slong_t __ru_oublock_word; > }; > > __extension__ union > { > long int ru_msgsnd; > __syscall_slong_t __ru_msgsnd_word; > }; > > __extension__ union > { > long int ru_msgrcv; > __syscall_slong_t __ru_msgrcv_word; > }; > > __extension__ union > { > long int ru_nsignals; > __syscall_slong_t __ru_nsignals_word; > }; > > > > __extension__ union > { > long int ru_nvcsw; > __syscall_slong_t __ru_nvcsw_word; > }; > > > __extension__ union > { > long int ru_nivcsw; > __syscall_slong_t __ru_nivcsw_word; > }; > }; > > > > > > > >enum __priority_which >{ > PRIO_PROCESS = 0, > > PRIO_PGRP = 1, > > PRIO_USER = 2 > >}; > > > ># 313 "/usr/include/bits/resource.h" 3 4 >extern int prlimit (__pid_t __pid, enum __rlimit_resource __resource, const struct rlimit *__new_limit, struct rlimit *__old_limit) __asm__ ("" "prlimit64") __attribute__ ((__nothrow__ , __leaf__)) > > > ; > > > > > >extern int prlimit64 (__pid_t __pid, enum __rlimit_resource __resource, > const struct rlimit64 *__new_limit, > struct rlimit64 *__old_limit) __attribute__ ((__nothrow__ , __leaf__)); > > > > ># 26 "/usr/include/sys/resource.h" 2 3 4 > > > > > > > > > > > > > >typedef enum __rlimit_resource __rlimit_resource_t; >typedef enum __rusage_who __rusage_who_t; >typedef enum __priority_which __priority_which_t; ># 55 "/usr/include/sys/resource.h" 3 4 >extern int getrlimit (__rlimit_resource_t __resource, struct rlimit *__rlimits) __asm__ ("" "getrlimit64") __attribute__ ((__nothrow__ , __leaf__)) > ; > > > > > >extern int getrlimit64 (__rlimit_resource_t __resource, > struct rlimit64 *__rlimits) __attribute__ ((__nothrow__ , __leaf__)); ># 74 "/usr/include/sys/resource.h" 3 4 >extern int setrlimit (__rlimit_resource_t __resource, const struct rlimit *__rlimits) __asm__ ("" "setrlimit64") __attribute__ ((__nothrow__ , __leaf__)) > > ; > > > > > >extern int setrlimit64 (__rlimit_resource_t __resource, > const struct rlimit64 *__rlimits) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern int getrusage (__rusage_who_t __who, struct rusage *__usage) __attribute__ ((__nothrow__ , __leaf__)); > > > > > >extern int getpriority (__priority_which_t __which, id_t __who) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int setpriority (__priority_which_t __which, id_t __who, int __prio) > __attribute__ ((__nothrow__ , __leaf__)); > > ># 395 "../../gcc/system.h" 2 > > > ># 1 "/usr/include/sys/times.h" 1 3 4 ># 31 "/usr/include/sys/times.h" 3 4 > > > >struct tms > { > clock_t tms_utime; > clock_t tms_stime; > > clock_t tms_cutime; > clock_t tms_cstime; > }; > > > > > > >extern clock_t times (struct tms *__buffer) __attribute__ ((__nothrow__ , __leaf__)); > > ># 399 "../../gcc/system.h" 2 ># 431 "../../gcc/system.h" >extern int getopt (int, char * const *, const char *); ># 459 "../../gcc/system.h" ># 1 "/usr/include/malloc.h" 1 3 4 ># 24 "/usr/include/malloc.h" 3 4 ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stddef.h" 1 3 4 ># 25 "/usr/include/malloc.h" 2 3 4 ># 57 "/usr/include/malloc.h" 3 4 > > > >extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ; > > >extern void *calloc (size_t __nmemb, size_t __size) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ; > > > > > > >extern void *realloc (void *__ptr, size_t __size) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); > > >extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__)); > > >extern void cfree (void *__ptr) __attribute__ ((__nothrow__ , __leaf__)); > > >extern void *memalign (size_t __alignment, size_t __size) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ; > > >extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ; > > > >extern void * pvalloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ; > > > >extern void *(*__morecore) (ptrdiff_t __size); > > >extern void *__default_morecore (ptrdiff_t __size) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)); > > > >struct mallinfo >{ > int arena; > int ordblks; > int smblks; > int hblks; > int hblkhd; > int usmblks; > int fsmblks; > int uordblks; > int fordblks; > int keepcost; >}; > > >extern struct mallinfo mallinfo (void) __attribute__ ((__nothrow__ , __leaf__)); ># 143 "/usr/include/malloc.h" 3 4 >extern int mallopt (int __param, int __val) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int malloc_trim (size_t __pad) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern size_t malloc_usable_size (void *__ptr) __attribute__ ((__nothrow__ , __leaf__)); > > >extern void malloc_stats (void) __attribute__ ((__nothrow__ , __leaf__)); > > >extern int malloc_info (int __options, FILE *__fp) __attribute__ ((__nothrow__ , __leaf__)); > > >extern void *malloc_get_state (void) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int malloc_set_state (void *__ptr) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern void (*volatile __malloc_initialize_hook) (void) > __attribute__ ((__deprecated__)); > >extern void (*volatile __free_hook) (void *__ptr, > const void *) > __attribute__ ((__deprecated__)); >extern void *(*volatile __malloc_hook) (size_t __size, > const void *) > __attribute__ ((__deprecated__)); >extern void *(*volatile __realloc_hook) (void *__ptr, > size_t __size, > const void *) > __attribute__ ((__deprecated__)); >extern void *(*volatile __memalign_hook) (size_t __alignment, > size_t __size, > const void *) > __attribute__ ((__deprecated__)); >extern void (*volatile __after_morecore_hook) (void); > > >extern void __malloc_check_init (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__)); > > > ># 460 "../../gcc/system.h" 2 ># 483 "../../gcc/system.h" ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stdint.h" 1 3 4 > > ># 1 "/usr/include/stdint.h" 1 3 4 ># 26 "/usr/include/stdint.h" 3 4 ># 1 "/usr/include/bits/wchar.h" 1 3 4 ># 27 "/usr/include/stdint.h" 2 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 28 "/usr/include/stdint.h" 2 3 4 ># 48 "/usr/include/stdint.h" 3 4 >typedef unsigned char uint8_t; >typedef unsigned short int uint16_t; > >typedef unsigned int uint32_t; > > > > > >__extension__ >typedef unsigned long long int uint64_t; > > > > > > >typedef signed char int_least8_t; >typedef short int int_least16_t; >typedef int int_least32_t; > > > >__extension__ >typedef long long int int_least64_t; > > > >typedef unsigned char uint_least8_t; >typedef unsigned short int uint_least16_t; >typedef unsigned int uint_least32_t; > > > >__extension__ >typedef unsigned long long int uint_least64_t; > > > > > > >typedef signed char int_fast8_t; > > > > > >typedef int int_fast16_t; >typedef int int_fast32_t; >__extension__ >typedef long long int int_fast64_t; > > > >typedef unsigned char uint_fast8_t; > > > > > >typedef unsigned int uint_fast16_t; >typedef unsigned int uint_fast32_t; >__extension__ >typedef unsigned long long int uint_fast64_t; ># 128 "/usr/include/stdint.h" 3 4 >typedef unsigned int uintptr_t; ># 137 "/usr/include/stdint.h" 3 4 >__extension__ >typedef long long int intmax_t; >__extension__ >typedef unsigned long long int uintmax_t; ># 4 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stdint.h" 2 3 4 ># 484 "../../gcc/system.h" 2 > > > ># 1 "/usr/include/inttypes.h" 1 3 4 ># 34 "/usr/include/inttypes.h" 3 4 >typedef long int __gwchar_t; ># 273 "/usr/include/inttypes.h" 3 4 > ># 287 "/usr/include/inttypes.h" 3 4 >typedef struct > { > long long int quot; > long long int rem; > } imaxdiv_t; > > > > > >extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); > > >extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); > > >extern intmax_t strtoimax (const char *__restrict __nptr, > char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)); > > >extern uintmax_t strtoumax (const char *__restrict __nptr, > char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)); > > >extern intmax_t wcstoimax (const __gwchar_t *__restrict __nptr, > __gwchar_t **__restrict __endptr, int __base) > __attribute__ ((__nothrow__ , __leaf__)); > > >extern uintmax_t wcstoumax (const __gwchar_t *__restrict __nptr, > __gwchar_t ** __restrict __endptr, int __base) > __attribute__ ((__nothrow__ , __leaf__)); ># 377 "/usr/include/inttypes.h" 3 4 >__extension__ >extern long long int __strtoll_internal (const char *__restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; > >extern __inline intmax_t >__attribute__ ((__nothrow__ , __leaf__)) strtoimax (const char *__restrict nptr, char **__restrict endptr, int base) > >{ > return __strtoll_internal (nptr, endptr, base, 0); >} > >__extension__ >extern unsigned long long int __strtoull_internal (const char * > __restrict __nptr, > char ** > __restrict __endptr, > int __base, > int __group) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; > >extern __inline uintmax_t >__attribute__ ((__nothrow__ , __leaf__)) strtoumax (const char *__restrict nptr, char **__restrict endptr, int base) > >{ > return __strtoull_internal (nptr, endptr, base, 0); >} > >__extension__ >extern long long int __wcstoll_internal (const __gwchar_t *__restrict __nptr, > __gwchar_t **__restrict __endptr, > int __base, int __group) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; > >extern __inline intmax_t >__attribute__ ((__nothrow__ , __leaf__)) wcstoimax (const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) > >{ > return __wcstoll_internal (nptr, endptr, base, 0); >} > > >__extension__ >extern unsigned long long int __wcstoull_internal (const __gwchar_t * > __restrict __nptr, > __gwchar_t ** > __restrict __endptr, > int __base, > int __group) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; > >extern __inline uintmax_t >__attribute__ ((__nothrow__ , __leaf__)) wcstoumax (const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) > >{ > return __wcstoull_internal (nptr, endptr, base, 0); >} > > > > > ># 488 "../../gcc/system.h" 2 ># 551 "../../gcc/system.h" ># 1 "/usr/include/sys/stat.h" 1 3 4 ># 104 "/usr/include/sys/stat.h" 3 4 > > ># 1 "/usr/include/bits/stat.h" 1 3 4 ># 107 "/usr/include/sys/stat.h" 2 3 4 ># 218 "/usr/include/sys/stat.h" 3 4 >extern int stat (const char *__restrict __file, struct stat *__restrict __buf) __asm__ ("" "stat64") __attribute__ ((__nothrow__ , __leaf__)) > > __attribute__ ((__nonnull__ (1, 2))); >extern int fstat (int __fd, struct stat *__buf) __asm__ ("" "fstat64") __attribute__ ((__nothrow__ , __leaf__)) > __attribute__ ((__nonnull__ (2))); > > > > > > >extern int stat64 (const char *__restrict __file, > struct stat64 *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); >extern int fstat64 (int __fd, struct stat64 *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); ># 244 "/usr/include/sys/stat.h" 3 4 >extern int fstatat (int __fd, const char *__restrict __file, struct stat *__restrict __buf, int __flag) __asm__ ("" "fstatat64") __attribute__ ((__nothrow__ , __leaf__)) > > > __attribute__ ((__nonnull__ (2, 3))); > > > > > > >extern int fstatat64 (int __fd, const char *__restrict __file, > struct stat64 *__restrict __buf, int __flag) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); ># 268 "/usr/include/sys/stat.h" 3 4 >extern int lstat (const char *__restrict __file, struct stat *__restrict __buf) __asm__ ("" "lstat64") __attribute__ ((__nothrow__ , __leaf__)) > > > __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern int lstat64 (const char *__restrict __file, > struct stat64 *__restrict __buf) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern int chmod (const char *__file, __mode_t __mode) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int lchmod (const char *__file, __mode_t __mode) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > >extern int fchmod (int __fd, __mode_t __mode) __attribute__ ((__nothrow__ , __leaf__)); > > > > > >extern int fchmodat (int __fd, const char *__file, __mode_t __mode, > int __flag) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ; > > > > > > >extern __mode_t umask (__mode_t __mask) __attribute__ ((__nothrow__ , __leaf__)); > > > > >extern __mode_t getumask (void) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int mkdir (const char *__path, __mode_t __mode) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int mkdirat (int __fd, const char *__path, __mode_t __mode) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); > > > > > > >extern int mknod (const char *__path, __mode_t __mode, __dev_t __dev) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int mknodat (int __fd, const char *__path, __mode_t __mode, > __dev_t __dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); > > > > > >extern int mkfifo (const char *__path, __mode_t __mode) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int mkfifoat (int __fd, const char *__path, __mode_t __mode) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); > > > > > >extern int utimensat (int __fd, const char *__path, > const struct timespec __times[2], > int __flags) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); > > > > >extern int futimens (int __fd, const struct timespec __times[2]) __attribute__ ((__nothrow__ , __leaf__)); ># 411 "/usr/include/sys/stat.h" 3 4 >extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) __asm__ ("" "__fxstat64") __attribute__ ((__nothrow__ , __leaf__)) > > __attribute__ ((__nonnull__ (3))); >extern int __xstat (int __ver, const char *__filename, struct stat *__stat_buf) __asm__ ("" "__xstat64") __attribute__ ((__nothrow__ , __leaf__)) > > __attribute__ ((__nonnull__ (2, 3))); >extern int __lxstat (int __ver, const char *__filename, struct stat *__stat_buf) __asm__ ("" "__lxstat64") __attribute__ ((__nothrow__ , __leaf__)) > > __attribute__ ((__nonnull__ (2, 3))); >extern int __fxstatat (int __ver, int __fildes, const char *__filename, struct stat *__stat_buf, int __flag) __asm__ ("" "__fxstatat64") __attribute__ ((__nothrow__ , __leaf__)) > > > __attribute__ ((__nonnull__ (3, 4))); ># 433 "/usr/include/sys/stat.h" 3 4 >extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))); >extern int __xstat64 (int __ver, const char *__filename, > struct stat64 *__stat_buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); >extern int __lxstat64 (int __ver, const char *__filename, > struct stat64 *__stat_buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); >extern int __fxstatat64 (int __ver, int __fildes, const char *__filename, > struct stat64 *__stat_buf, int __flag) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))); > >extern int __xmknod (int __ver, const char *__path, __mode_t __mode, > __dev_t *__dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))); > >extern int __xmknodat (int __ver, int __fd, const char *__path, > __mode_t __mode, __dev_t *__dev) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 5))); > > > > >extern __inline int >__attribute__ ((__nothrow__ , __leaf__)) stat (const char *__path, struct stat *__statbuf) >{ > return __xstat (3, __path, __statbuf); >} > > >extern __inline int >__attribute__ ((__nothrow__ , __leaf__)) lstat (const char *__path, struct stat *__statbuf) >{ > return __lxstat (3, __path, __statbuf); >} > > >extern __inline int >__attribute__ ((__nothrow__ , __leaf__)) fstat (int __fd, struct stat *__statbuf) >{ > return __fxstat (3, __fd, __statbuf); >} > > >extern __inline int >__attribute__ ((__nothrow__ , __leaf__)) fstatat (int __fd, const char *__filename, struct stat *__statbuf, int __flag) > >{ > return __fxstatat (3, __fd, __filename, __statbuf, __flag); >} > > > >extern __inline int >__attribute__ ((__nothrow__ , __leaf__)) mknod (const char *__path, __mode_t __mode, __dev_t __dev) >{ > return __xmknod (1, __path, __mode, &__dev); >} > > > >extern __inline int >__attribute__ ((__nothrow__ , __leaf__)) mknodat (int __fd, const char *__path, __mode_t __mode, __dev_t __dev) > >{ > return __xmknodat (1, __fd, __path, __mode, &__dev); >} > > > > > >extern __inline int >__attribute__ ((__nothrow__ , __leaf__)) stat64 (const char *__path, struct stat64 *__statbuf) >{ > return __xstat64 (3, __path, __statbuf); >} > > >extern __inline int >__attribute__ ((__nothrow__ , __leaf__)) lstat64 (const char *__path, struct stat64 *__statbuf) >{ > return __lxstat64 (3, __path, __statbuf); >} > > >extern __inline int >__attribute__ ((__nothrow__ , __leaf__)) fstat64 (int __fd, struct stat64 *__statbuf) >{ > return __fxstat64 (3, __fd, __statbuf); >} > > >extern __inline int >__attribute__ ((__nothrow__ , __leaf__)) fstatat64 (int __fd, const char *__filename, struct stat64 *__statbuf, int __flag) > >{ > return __fxstatat64 (3, __fd, __filename, __statbuf, __flag); >} > > > > > > > ># 552 "../../gcc/system.h" 2 ># 623 "../../gcc/system.h" ># 1 "../../gcc/../include/filenames.h" 1 ># 81 "../../gcc/../include/filenames.h" >extern int filename_cmp (const char *s1, const char *s2); > > >extern int filename_ncmp (const char *s1, const char *s2, > size_t n); ># 624 "../../gcc/system.h" 2 ># 635 "../../gcc/system.h" ># 1 "/usr/include/dlfcn.h" 1 3 4 ># 25 "/usr/include/dlfcn.h" 3 4 ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stddef.h" 1 3 4 ># 26 "/usr/include/dlfcn.h" 2 3 4 > > ># 1 "/usr/include/bits/dlfcn.h" 1 3 4 ># 57 "/usr/include/bits/dlfcn.h" 3 4 > > > >extern void _dl_mcount_wrapper_check (void *__selfpc) __attribute__ ((__nothrow__ , __leaf__)); > > ># 29 "/usr/include/dlfcn.h" 2 3 4 ># 45 "/usr/include/dlfcn.h" 3 4 >typedef long int Lmid_t; > > > > > > > > > > > >extern void *dlopen (const char *__file, int __mode) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern int dlclose (void *__handle) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); > > > >extern void *dlsym (void *__restrict __handle, > const char *__restrict __name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); > > > >extern void *dlmopen (Lmid_t __nsid, const char *__file, int __mode) __attribute__ ((__nothrow__ , __leaf__)); > > > >extern void *dlvsym (void *__restrict __handle, > const char *__restrict __name, > const char *__restrict __version) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); > > > > > >extern char *dlerror (void) __attribute__ ((__nothrow__ , __leaf__)); > > > > > >typedef struct >{ > const char *dli_fname; > void *dli_fbase; > const char *dli_sname; > void *dli_saddr; >} Dl_info; > > > >extern int dladdr (const void *__address, Dl_info *__info) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); > > >extern int dladdr1 (const void *__address, Dl_info *__info, > void **__extra_info, int __flags) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); > > > > >enum > { > > RTLD_DL_SYMENT = 1, > > > RTLD_DL_LINKMAP = 2 > }; > > > > > > > >extern int dlinfo (void *__restrict __handle, > int __request, void *__restrict __arg) > __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))); > > >enum > { > > RTLD_DI_LMID = 1, > > > > RTLD_DI_LINKMAP = 2, > > RTLD_DI_CONFIGADDR = 3, > > > > > > > RTLD_DI_SERINFO = 4, > RTLD_DI_SERINFOSIZE = 5, > > > > RTLD_DI_ORIGIN = 6, > > RTLD_DI_PROFILENAME = 7, > RTLD_DI_PROFILEOUT = 8, > > > > > RTLD_DI_TLS_MODID = 9, > > > > > > RTLD_DI_TLS_DATA = 10, > > RTLD_DI_MAX = 10 > }; > > > > >typedef struct >{ > char *dls_name; > unsigned int dls_flags; >} Dl_serpath; > > > >typedef struct >{ > size_t dls_size; > unsigned int dls_cnt; > Dl_serpath dls_serpath[1]; >} Dl_serinfo; > > > > ># 636 "../../gcc/system.h" 2 > > > ># 1 "../../gcc/../include/libiberty.h" 1 ># 43 "../../gcc/../include/libiberty.h" ># 1 "../../gcc/../include/ansidecl.h" 1 ># 44 "../../gcc/../include/libiberty.h" 2 > > ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stddef.h" 1 3 4 ># 47 "../../gcc/../include/libiberty.h" 2 ># 56 "../../gcc/../include/libiberty.h" >extern void unlock_stream (FILE *); > > > > > >extern void unlock_std_streams (void); > > > > > >extern FILE *fopen_unlocked (const char *, const char *); >extern FILE *fdopen_unlocked (int, const char *); >extern FILE *freopen_unlocked (const char *, const char *, FILE *); > > > > >extern char **buildargv (const char *) __attribute__ ((__malloc__)); > > > >extern void freeargv (char **); > > > > >extern char **dupargv (char **) __attribute__ ((__malloc__)); > > > >extern void expandargv (int *, char ***); > > > >extern int writeargv (char **, FILE *); > > > >extern int countargv (char**); ># 121 "../../gcc/../include/libiberty.h" >extern const char *lbasename (const char *); > > > > >extern const char *dos_lbasename (const char *); > > > > > >extern const char *unix_lbasename (const char *); > > > >extern char *lrealpath (const char *); > > > > > >extern char *concat (const char *, ...) __attribute__ ((__malloc__)) __attribute__ ((__sentinel__)); ># 151 "../../gcc/../include/libiberty.h" >extern char *reconcat (char *, const char *, ...) __attribute__ ((__malloc__)) __attribute__ ((__sentinel__)); > > > > > >extern unsigned long concat_length (const char *, ...) __attribute__ ((__sentinel__)); > > > > > > >extern char *concat_copy (char *, const char *, ...) __attribute__ ((__sentinel__)); > > > > > > >extern char *concat_copy2 (const char *, ...) __attribute__ ((__sentinel__)); > > > >extern char *libiberty_concat_ptr; ># 187 "../../gcc/../include/libiberty.h" >extern int fdmatch (int fd1, int fd2); ># 199 "../../gcc/../include/libiberty.h" >extern char * getpwd (void); ># 212 "../../gcc/../include/libiberty.h" >extern long get_run_time (void); > > > > >extern char *make_relative_prefix (const char *, const char *, > const char *) __attribute__ ((__malloc__)); > > > > > >extern char *make_relative_prefix_ignore_links (const char *, const char *, > const char *) __attribute__ ((__malloc__)); > > > >extern char *choose_temp_base (void) __attribute__ ((__malloc__)); > > > >extern char *make_temp_file (const char *) __attribute__ ((__malloc__)); > > > >extern int unlink_if_ordinary (const char *); > > > >extern const char *spaces (int count); > > > > >extern int errno_max (void); > > > > >extern const char *strerrno (int); > > > >extern int strtoerrno (const char *); > > > >extern char *xstrerror (int); > > > > >extern int signo_max (void); ># 276 "../../gcc/../include/libiberty.h" >extern const char *strsigno (int); > > > >extern int strtosigno (const char *); > > > >extern int xatexit (void (*fn) (void)); > > > >extern void xexit (int status) __attribute__ ((__noreturn__)); > > > >extern void xmalloc_set_program_name (const char *); > > >extern void xmalloc_failed (size_t) __attribute__ ((__noreturn__)); > > > > > >extern void *xmalloc (size_t) __attribute__ ((__malloc__)); > > > > > >extern void *xrealloc (void *, size_t); > > > > >extern void *xcalloc (size_t, size_t) __attribute__ ((__malloc__)); > > > >extern char *xstrdup (const char *) __attribute__ ((__malloc__)); > > > >extern char *xstrndup (const char *, size_t) __attribute__ ((__malloc__)); > > > >extern void *xmemdup (const void *, size_t, size_t) __attribute__ ((__malloc__)); > > >extern double physmem_total (void); >extern double physmem_available (void); > > >extern unsigned int xcrc32 (const unsigned char *, int, unsigned int); ># 375 "../../gcc/../include/libiberty.h" >extern const unsigned char _hex_value[256]; >extern void hex_init (void); ># 401 "../../gcc/../include/libiberty.h" >extern struct pex_obj *pex_init (int flags, const char *pname, > const char *tempbase); ># 496 "../../gcc/../include/libiberty.h" >extern const char *pex_run (struct pex_obj *obj, int flags, > const char *executable, char * const *argv, > const char *outname, const char *errname, > int *err); ># 511 "../../gcc/../include/libiberty.h" >extern const char *pex_run_in_environment (struct pex_obj *obj, int flags, > const char *executable, > char * const *argv, > char * const *env, > const char *outname, > const char *errname, int *err); > > > > > >extern FILE *pex_input_file (struct pex_obj *obj, int flags, > const char *in_name); > > > > > > >extern FILE *pex_input_pipe (struct pex_obj *obj, int binary); > > > > > > > >extern FILE *pex_read_output (struct pex_obj *, int binary); > > > > > > > >extern FILE *pex_read_err (struct pex_obj *, int binary); > > > > > >extern int pex_get_status (struct pex_obj *, int count, int *vector); > > > > > > >struct pex_time >{ > unsigned long user_seconds; > unsigned long user_microseconds; > unsigned long system_seconds; > unsigned long system_microseconds; >}; > >extern int pex_get_times (struct pex_obj *, int count, > struct pex_time *vector); > > > > >extern void pex_free (struct pex_obj *); ># 586 "../../gcc/../include/libiberty.h" >extern const char *pex_one (int flags, const char *executable, > char * const *argv, const char *pname, > const char *outname, const char *errname, > int *status, int *err); ># 605 "../../gcc/../include/libiberty.h" >extern int pexecute (const char *, char * const *, const char *, > const char *, char **, char **, int); > > > >extern int pwait (int, int *, int); ># 642 "../../gcc/../include/libiberty.h" >extern void setproctitle (const char *name, ...); > > >extern void stack_limit_increase (unsigned long); ># 655 "../../gcc/../include/libiberty.h" >extern void *C_alloca (size_t) __attribute__ ((__malloc__)); ># 640 "../../gcc/system.h" 2 ># 668 "../../gcc/system.h" >extern void fancy_abort (const char *, int, const char *) __attribute__ ((__noreturn__)); ># 758 "../../gcc/system.h" > > > > > > > > > > > > > > > > ># 814 "../../gcc/system.h" > > > > > > > > ># 884 "../../gcc/system.h" > ># 896 "../../gcc/system.h" > > > > > > > > ># 914 "../../gcc/system.h" > ># 930 "../../gcc/system.h" > ># 80 "../../gcc/combine.c" 2 ># 1 "../../gcc/coretypes.h" 1 ># 47 "../../gcc/coretypes.h" >struct bitmap_head_def; >typedef struct bitmap_head_def *bitmap; >typedef const struct bitmap_head_def *const_bitmap; >struct simple_bitmap_def; >typedef struct simple_bitmap_def *sbitmap; >typedef const struct simple_bitmap_def *const_sbitmap; >struct rtx_def; >typedef struct rtx_def *rtx; >typedef const struct rtx_def *const_rtx; >struct rtvec_def; >typedef struct rtvec_def *rtvec; >typedef const struct rtvec_def *const_rtvec; >union tree_node; >typedef union tree_node *tree; >union gimple_statement_d; >typedef union gimple_statement_d *gimple; >typedef const union tree_node *const_tree; >typedef const union gimple_statement_d *const_gimple; >union section; >typedef union section section; >struct gcc_options; >struct cl_target_option; >struct cl_optimization; >struct cl_option; >struct cl_decoded_option; >struct cl_option_handlers; >struct diagnostic_context; >typedef struct diagnostic_context diagnostic_context; >struct gimple_seq_d; >typedef struct gimple_seq_d *gimple_seq; >typedef const struct gimple_seq_d *const_gimple_seq; > > >typedef unsigned char addr_space_t; > > > > > > >enum ir_type { > IR_GIMPLE, > IR_RTL_CFGRTL, > IR_RTL_CFGLAYOUT >}; > > > > > > >struct cpp_reader; >struct cpp_token; > > > > >enum tls_model { > TLS_MODEL_NONE, > TLS_MODEL_EMULATED, > TLS_MODEL_REAL, > TLS_MODEL_GLOBAL_DYNAMIC = TLS_MODEL_REAL, > TLS_MODEL_LOCAL_DYNAMIC, > TLS_MODEL_INITIAL_EXEC, > TLS_MODEL_LOCAL_EXEC >}; > > > >enum unwind_info_type >{ > UI_NONE, > UI_SJLJ, > UI_DWARF2, > UI_TARGET >}; > > >enum node_frequency { > > > NODE_FREQUENCY_UNLIKELY_EXECUTED, > > > NODE_FREQUENCY_EXECUTED_ONCE, > > NODE_FREQUENCY_NORMAL, > > > NODE_FREQUENCY_HOT >}; > > > > >enum var_init_status >{ > VAR_INIT_STATUS_UNKNOWN, > VAR_INIT_STATUS_UNINITIALIZED, > VAR_INIT_STATUS_INITIALIZED >}; > > >struct edge_def; >typedef struct edge_def *edge; >typedef const struct edge_def *const_edge; >struct basic_block_def; >typedef struct basic_block_def *basic_block; >typedef const struct basic_block_def *const_basic_block; ># 168 "../../gcc/coretypes.h" >typedef int reg_class_t; ># 186 "../../gcc/coretypes.h" >enum memmodel >{ > MEMMODEL_RELAXED = 0, > MEMMODEL_CONSUME = 1, > MEMMODEL_ACQUIRE = 2, > MEMMODEL_RELEASE = 3, > MEMMODEL_ACQ_REL = 4, > MEMMODEL_SEQ_CST = 5, > MEMMODEL_LAST = 6 >}; ># 81 "../../gcc/combine.c" 2 ># 1 "./tm.h" 1 ># 19 "./tm.h" ># 1 "./options.h" 1 > > > > > ># 1 "../../gcc/flag-types.h" 1 ># 25 "../../gcc/flag-types.h" >enum debug_info_type >{ > NO_DEBUG, > DBX_DEBUG, > SDB_DEBUG, > DWARF2_DEBUG, > XCOFF_DEBUG, > VMS_DEBUG, > VMS_AND_DWARF2_DEBUG > >}; > >enum debug_info_levels >{ > DINFO_LEVEL_NONE, > DINFO_LEVEL_TERSE, > DINFO_LEVEL_NORMAL, > DINFO_LEVEL_VERBOSE >}; ># 53 "../../gcc/flag-types.h" >enum debug_info_usage >{ > DINFO_USAGE_DFN, > DINFO_USAGE_DIR_USE, > DINFO_USAGE_IND_USE, > DINFO_USAGE_NUM_ENUMS >}; ># 86 "../../gcc/flag-types.h" >enum debug_struct_file >{ > DINFO_STRUCT_FILE_NONE, > DINFO_STRUCT_FILE_BASE, > > DINFO_STRUCT_FILE_SYS, > > DINFO_STRUCT_FILE_ANY >}; > > > > > >enum symbol_visibility >{ > VISIBILITY_DEFAULT, > VISIBILITY_PROTECTED, > VISIBILITY_HIDDEN, > VISIBILITY_INTERNAL >}; > > > >enum ira_algorithm >{ > IRA_ALGORITHM_CB, > IRA_ALGORITHM_PRIORITY >}; > > >enum ira_region >{ > IRA_REGION_ONE, > IRA_REGION_ALL, > IRA_REGION_MIXED, > > > > IRA_REGION_AUTODETECT >}; > > >enum excess_precision >{ > EXCESS_PRECISION_DEFAULT, > EXCESS_PRECISION_FAST, > EXCESS_PRECISION_STANDARD >}; > > >enum graph_dump_types >{ > no_graph = 0, > vcg >}; > > >enum stack_check_type >{ > > NO_STACK_CHECK = 0, > > > > GENERIC_STACK_CHECK, > > > > > STATIC_BUILTIN_STACK_CHECK, > > > > FULL_BUILTIN_STACK_CHECK >}; > > > > >enum warn_strict_overflow_code >{ > > > > WARN_STRICT_OVERFLOW_ALL = 1, > > > > > WARN_STRICT_OVERFLOW_CONDITIONAL = 2, > > > WARN_STRICT_OVERFLOW_COMPARISON = 3, > > > WARN_STRICT_OVERFLOW_MISC = 4, > > > WARN_STRICT_OVERFLOW_MAGNITUDE = 5 >}; > > >enum fp_contract_mode { > FP_CONTRACT_OFF = 0, > FP_CONTRACT_ON = 1, > FP_CONTRACT_FAST = 2 >}; > > >enum vect_verbosity_levels { > REPORT_NONE, > REPORT_VECTORIZED_LOCATIONS, > REPORT_UNVECTORIZED_LOCATIONS, > REPORT_COST, > REPORT_ALIGNMENT, > REPORT_DR_DETAILS, > REPORT_BAD_FORM_LOOPS, > REPORT_OUTER_LOOPS, > REPORT_SLP, > REPORT_DETAILS, > > MAX_VERBOSITY_LEVEL >}; ># 7 "./options.h" 2 > ># 1 "../../gcc/config/rs6000/rs6000-opts.h" 1 ># 32 "../../gcc/config/rs6000/rs6000-opts.h" >enum processor_type > { > PROCESSOR_RIOS1, > PROCESSOR_RIOS2, > PROCESSOR_RS64A, > PROCESSOR_MPCCORE, > PROCESSOR_PPC403, > PROCESSOR_PPC405, > PROCESSOR_PPC440, > PROCESSOR_PPC476, > PROCESSOR_PPC601, > PROCESSOR_PPC603, > PROCESSOR_PPC604, > PROCESSOR_PPC604e, > PROCESSOR_PPC620, > PROCESSOR_PPC630, > PROCESSOR_PPC750, > PROCESSOR_PPC7400, > PROCESSOR_PPC7450, > PROCESSOR_PPC8540, > PROCESSOR_PPCE300C2, > PROCESSOR_PPCE300C3, > PROCESSOR_PPCE500MC, > PROCESSOR_PPCE500MC64, > PROCESSOR_POWER4, > PROCESSOR_POWER5, > PROCESSOR_POWER6, > PROCESSOR_POWER7, > PROCESSOR_CELL, > PROCESSOR_PPCA2, > PROCESSOR_TITAN >}; > > >enum fpu_type_t >{ > FPU_NONE, > FPU_SF_LITE, > FPU_DF_LITE, > FPU_SF_FULL, > FPU_DF_FULL >}; > > >enum rs6000_dependence_cost >{ > max_dep_latency = 1000, > no_dep_costly, > all_deps_costly, > true_store_to_load_dep_costly, > store_to_load_dep_costly >}; > > >enum rs6000_nop_insertion >{ > sched_finish_regroup_exact = 1000, > sched_finish_pad_groups, > sched_finish_none >}; > > >enum group_termination >{ > current_group, > previous_group >}; > > >enum rs6000_abi { > ABI_NONE, > ABI_AIX, > ABI_V4, > ABI_DARWIN >}; > > >enum rs6000_sdata_type { > SDATA_NONE, > SDATA_DATA, > SDATA_SYSV, > SDATA_EABI >}; > > >enum rs6000_traceback_type { > traceback_default = 0, > traceback_none, > traceback_part, > traceback_full >}; > > > > > >enum rs6000_cmodel { > CMODEL_SMALL, > CMODEL_MEDIUM, > CMODEL_LARGE >}; > > >enum rs6000_vector { > VECTOR_NONE, > VECTOR_ALTIVEC, > VECTOR_VSX, > VECTOR_PAIRED, > VECTOR_SPE, > VECTOR_OTHER >}; ># 9 "./options.h" 2 > > > > >struct gcc_options > > > >{ > > > > > enum processor_type x_rs6000_cpu; > > > > > > enum rs6000_abi x_rs6000_current_abi; > > > > > > enum rs6000_cmodel x_rs6000_current_cmodel; > > > > > > enum rs6000_dependence_cost x_rs6000_sched_costly_dep; > > > > > > enum rs6000_nop_insertion x_rs6000_sched_insert_nops; > > > > > > enum rs6000_sdata_type x_rs6000_sdata; > > > > > > enum rs6000_traceback_type x_rs6000_traceback; > > > > > > int x_rs6000_tls_size; > > > > > > unsigned char x_can_override_loop_align; > > > > > > unsigned char x_rs6000_align_branch_targets; > > > > > > unsigned char x_rs6000_alignment_flags; > > > > > > unsigned char x_rs6000_always_hint; > > > > > > unsigned char x_rs6000_sched_groups; > > > > > > unsigned int x_rs6000_builtin_mask; > > > > > > unsigned int x_rs6000_debug; > > > > > > unsigned int x_rs6000_recip_control; > > > > > > long long x_frame_larger_than_size; > > > > > > long long x_larger_than_size; > > > > > > unsigned char x_exit_after_options; > > > > > > unsigned char x_flag_dump_all_passed; > > > > > > unsigned char x_flag_opts_finished; > > > > > > unsigned char x_flag_stack_usage_info; > > > > > > unsigned char x_flag_warn_unused_result; > > > > > > unsigned char x_in_lto_p; > > > > > > unsigned char x_use_gnu_debug_info_extensions; > > > > > > unsigned char x_warn_frame_larger_than; > > > > > > unsigned char x_warn_larger_than; > > > > > > char * x_help_enum_printed; > > > > > > char * x_help_printed; > > > > > > const char * x_main_input_basename; > > > > > > const char * x_main_input_filename; > > > > > > enum debug_info_levels x_debug_info_level; > > > > > > enum debug_info_type x_write_symbols; > > > > > > enum debug_struct_file x_debug_struct_generic[DINFO_USAGE_NUM_ENUMS]; > > > > > > enum debug_struct_file x_debug_struct_ordinary[DINFO_USAGE_NUM_ENUMS]; > > > > > > enum graph_dump_types x_graph_dump_format; > > > > > > enum stack_check_type x_flag_stack_check; > > > > > > enum vect_verbosity_levels x_user_vect_verbosity_level; > > > > > > int * x_param_values; > > > > > > int x_flag_complex_method; > > > > > > int x_flag_debug_asm; > > > > > > int x_flag_dump_rtl_in_asm; > > > > > > int x_flag_evaluation_order; > > > > > > int x_flag_gen_aux_info; > > > > > > int x_flag_generate_lto; > > > > > > int x_flag_print_asm_name; > > > > > > int x_flag_shlib; > > > > > > int x_main_input_baselength; > > > > > > int x_optimize; > > > > > > int x_optimize_fast; > > > > > > int x_optimize_size; > > > > > > int x_rtl_dump_and_exit; > > > > > > int x_target_flags; > > > > > > unsigned int x_help_columns; > > > > > > unsigned int x_initial_max_fld_align; > > > > > > void * x_flag_instrument_functions_exclude_files; > > > > > > void * x_flag_instrument_functions_exclude_functions; > > > > > > int x_help_flag; > > > > > > int x_flag_preprocess_only; > > > > > > int x_g_switch_value; > > > > > > int x_warn_abi; > > > > > > int x_warn_address; > > > > > > int x_warn_aggregate_return; > > > > > > int x_warn_array_bounds; > > > > > > int x_warn_assign_intercept; > > > > > > int x_warn_attributes; > > > > > > int x_warn_bad_function_cast; > > > > > > int x_warn_cxx_compat; > > > > > > int x_warn_cxx0x_compat; > > > > > > int x_warn_cast_align; > > > > > > int x_warn_cast_qual; > > > > > > int x_warn_char_subscripts; > > > > > > int x_warn_clobbered; > > > > > > int x_warn_conversion; > > > > > > int x_warn_conversion_null; > > > > > > int x_warn_coverage_mismatch; > > > > > > int x_warn_cpp; > > > > > > int x_warn_ctor_dtor_privacy; > > > > > > int x_warn_declaration_after_statement; > > > > > > int x_warn_delnonvdtor; > > > > > > int x_warn_deprecated; > > > > > > int x_warn_deprecated_decl; > > > > > > int x_warn_disabled_optimization; > > > > > > int x_warn_div_by_zero; > > > > > > int x_warn_double_promotion; > > > > > > int x_warn_ecpp; > > > > > > int x_warn_empty_body; > > > > > > int x_warn_enum_compare; > > > > > > int x_warnings_are_errors; > > > > > > int x_extra_warnings; > > > > > > int x_flag_extraneous_semicolon; > > > > > > int x_flag_fatal_errors; > > > > > > int x_warn_float_equal; > > > > > > int x_warn_format_contains_nul; > > > > > > int x_warn_format_extra_args; > > > > > > int x_warn_format_nonliteral; > > > > > > int x_warn_format_security; > > > > > > int x_warn_format_y2k; > > > > > > int x_warn_format_zero_length; > > > > > > int x_warn_free_nonheap_object; > > > > > > int x_warn_ignored_qualifiers; > > > > > > int x_warn_implicit; > > > > > > int x_warn_implicit_function_declaration; > > > > > > int x_warn_implicit_int; > > > > > > int x_warn_init_self; > > > > > > int x_warn_inline; > > > > > > int x_warn_int_to_pointer_cast; > > > > > > int x_warn_invalid_memory_model; > > > > > > int x_warn_invalid_offsetof; > > > > > > int x_warn_jump_misses_init; > > > > > > int x_warn_logical_op; > > > > > > int x_warn_long_long; > > > > > > int x_warn_main; > > > > > > int x_warn_maybe_uninitialized; > > > > > > int x_warn_missing_braces; > > > > > > int x_warn_missing_declarations; > > > > > > int x_warn_missing_field_initializers; > > > > > > int x_warn_missing_format_attribute; > > > > > > int x_warn_missing_noreturn; > > > > > > int x_warn_missing_parameter_type; > > > > > > int x_warn_missing_prototypes; > > > > > > int x_warn_mudflap; > > > > > > int x_warn_narrowing; > > > > > > int x_warn_nested_externs; > > > > > > int x_warn_noexcept; > > > > > > int x_warn_nontemplate_friend; > > > > > > int x_warn_nonvdtor; > > > > > > int x_warn_nonnull; > > > > > > int x_warn_old_style_cast; > > > > > > int x_warn_old_style_declaration; > > > > > > int x_warn_old_style_definition; > > > > > > int x_flag_newer; > > > > > > int x_warn_overflow; > > > > > > int x_warn_overlength_strings; > > > > > > int x_warn_overloaded_virtual; > > > > > > int x_warn_override_init; > > > > > > int x_warn_packed; > > > > > > int x_warn_packed_bitfield_compat; > > > > > > int x_warn_padded; > > > > > > int x_warn_parentheses; > > > > > > int x_warn_pmf2ptr; > > > > > > int x_warn_pointer_arith; > > > > > > int x_warn_pointer_sign; > > > > > > int x_warn_pointer_to_int_cast; > > > > > > int x_warn_pragmas; > > > > > > int x_warn_property_assign_default; > > > > > > int x_warn_protocol; > > > > > > int x_warn_psabi; > > > > > > int x_warn_redundant_decls; > > > > > > int x_flag_redundant; > > > > > > int x_warn_reorder; > > > > > > int x_warn_return_type; > > > > > > int x_warn_selector; > > > > > > int x_warn_sequence_point; > > > > > > int x_warn_shadow; > > > > > > int x_warn_sign_compare; > > > > > > int x_warn_sign_conversion; > > > > > > int x_warn_sign_promo; > > > > > > int x_warn_stack_protect; > > > > > > int x_warn_stack_usage; > > > > > > int x_warn_strict_aliasing; > > > > > > int x_warn_strict_null_sentinel; > > > > > > int x_warn_strict_overflow; > > > > > > int x_warn_strict_prototypes; > > > > > > int x_warn_strict_selector_match; > > > > > > int x_warn_suggest_attribute_const; > > > > > > int x_warn_suggest_attribute_noreturn; > > > > > > int x_warn_suggest_attribute_pure; > > > > > > int x_warn_switch; > > > > > > int x_warn_switch_default; > > > > > > int x_warn_switch_enum; > > > > > > int x_warn_sync_nand; > > > > > > int x_warn_synth; > > > > > > int x_warn_system_headers; > > > > > > int x_warn_traditional; > > > > > > int x_warn_traditional_conversion; > > > > > > int x_warn_trampolines; > > > > > > int x_warn_type_limits; > > > > > > int x_warn_undeclared_selector; > > > > > > int x_warn_uninitialized; > > > > > > int x_warn_unsafe_loop_optimizations; > > > > > > int x_warn_unsuffixed_float_constants; > > > > > > int x_warn_unused; > > > > > > int x_warn_unused_but_set_parameter; > > > > > > int x_warn_unused_but_set_variable; > > > > > > int x_warn_unused_function; > > > > > > int x_warn_unused_label; > > > > > > int x_warn_unused_local_typedefs; > > > > > > int x_warn_unused_parameter; > > > > > > int x_warn_unused_result; > > > > > > int x_warn_unused_value; > > > > > > int x_warn_unused_variable; > > > > > > int x_warn_vector_operation_performance; > > > > > > int x_warn_vla; > > > > > > int x_warn_volatile_register_var; > > > > > > int x_warn_write_strings; > > > > > > int x_warn_zero_as_null_pointer_constant; > > > > > > const char *x_aux_info_file_name; > > > > > > const char *x_aux_base_name; > > > > > > const char *x_dump_base_name; > > > > > > const char *x_dump_dir_name; > > > > > > int x_flag_pic; > > > > > > int x_flag_pie; > > > > > > int x_flag_abi_version; > > > > > > int x_flag_access_control; > > > > > > int x_align_functions; > > > > > > int x_align_jumps; > > > > > > int x_align_labels; > > > > > > int x_align_loops; > > > > > > int x_flag_allow_parameterless_variadic_functions; > > > > > > int x_flag_no_asm; > > > > > > int x_flag_assert; > > > > > > int x_flag_associative_math; > > > > > > int x_flag_asynchronous_unwind_tables; > > > > > > int x_flag_auto_inc_dec; > > > > > > int x_flag_bootstrap_classes; > > > > > > int x_flag_bounds_check; > > > > > > int x_flag_branch_on_count_reg; > > > > > > int x_flag_branch_probabilities; > > > > > > int x_flag_branch_target_load_optimize; > > > > > > int x_flag_branch_target_load_optimize2; > > > > > > int x_flag_btr_bb_exclusive; > > > > > > int x_flag_building_libgcc; > > > > > > int x_flag_no_builtin; > > > > > > void *x_common_deferred_options; > > > > > > int x_flag_caller_saves; > > > > > > int x_flag_check_data_deps; > > > > > > int x_flag_check_new; > > > > > > int x_flag_check_references; > > > > > > int x_flag_combine_stack_adjustments; > > > > > > int x_flag_no_common; > > > > > > int x_flag_compare_debug; > > > > > > const char *x_flag_compare_debug_opt; > > > > > > int x_flag_compare_elim_after_reload; > > > > > > int x_flag_conserve_space; > > > > > > int x_flag_conserve_stack; > > > > > > int x_max_constexpr_depth; > > > > > > int x_flag_cprop_registers; > > > > > > int x_flag_crossjumping; > > > > > > int x_flag_cse_follow_jumps; > > > > > > int x_flag_cx_fortran_rules; > > > > > > int x_flag_cx_limited_range; > > > > > > int x_flag_data_sections; > > > > > > int x_flag_dce; > > > > > > int x_flag_debug_types_section; > > > > > > int x_flag_deduce_init_list; > > > > > > int x_flag_defer_pop; > > > > > > int x_flag_delayed_branch; > > > > > > int x_flag_delete_null_pointer_checks; > > > > > > int x_flag_devirtualize; > > > > > > int x_flag_diagnostics_show_option; > > > > > > int x_flag_dse; > > > > > > const char *x_flag_dump_final_insns; > > > > > > const char *x_flag_dump_go_spec; > > > > > > int x_flag_dump_noaddr; > > > > > > int x_flag_dump_passes; > > > > > > int x_flag_dump_unnumbered; > > > > > > int x_flag_dump_unnumbered_links; > > > > > > int x_flag_dwarf2_cfi_asm; > > > > > > int x_flag_early_inlining; > > > > > > int x_flag_elide_constructors; > > > > > > int x_flag_eliminate_dwarf2_dups; > > > > > > int x_flag_debug_only_used_symbols; > > > > > > int x_flag_eliminate_unused_debug_types; > > > > > > int x_flag_emit_class_debug_always; > > > > > > int x_flag_emit_class_files; > > > > > > int x_flag_enforce_eh_specs; > > > > > > int x_flag_exceptions; > > > > > > enum excess_precision x_flag_excess_precision_cmdline; > > > > > > int x_flag_expensive_optimizations; > > > > > > int x_flag_fat_lto_objects; > > > > > > int x_flag_filelist_file; > > > > > > int x_flag_finite_math_only; > > > > > > int x_flag_float_store; > > > > > > int x_flag_new_for_scope; > > > > > > int x_flag_force_classes_archive_check; > > > > > > int x_flag_forward_propagate; > > > > > > enum fp_contract_mode x_flag_fp_contract_mode; > > > > > > int x_flag_friend_injection; > > > > > > int x_flag_no_function_cse; > > > > > > int x_flag_function_sections; > > > > > > int x_flag_gcse; > > > > > > int x_flag_gcse_after_reload; > > > > > > int x_flag_gcse_las; > > > > > > int x_flag_gcse_lm; > > > > > > int x_flag_gcse_sm; > > > > > > int x_flag_no_gnu_keywords; > > > > > > int x_flag_next_runtime; > > > > > > int x_flag_tm; > > > > > > int x_flag_gnu89_inline; > > > > > > int x_go_check_divide_overflow; > > > > > > int x_go_check_divide_zero; > > > > > > int x_flag_graphite; > > > > > > int x_flag_graphite_identity; > > > > > > int x_flag_guess_branch_prob; > > > > > > int x_flag_hash_synchronization; > > > > > > int x_flag_no_ident; > > > > > > int x_flag_if_conversion; > > > > > > int x_flag_if_conversion2; > > > > > > int x_flag_implement_inlines; > > > > > > int x_flag_implicit_inline_templates; > > > > > > int x_flag_implicit_templates; > > > > > > int x_flag_indirect_classes; > > > > > > int x_flag_indirect_dispatch; > > > > > > int x_flag_indirect_inlining; > > > > > > int x_flag_inhibit_size_directive; > > > > > > int x_flag_no_inline; > > > > > > int x_flag_inline_atomics; > > > > > > int x_flag_inline_functions; > > > > > > int x_flag_inline_functions_called_once; > > > > > > int x_flag_inline_small_functions; > > > > > > int x_flag_instrument_function_entry_exit; > > > > > > int x_flag_ipa_cp; > > > > > > int x_flag_ipa_cp_clone; > > > > > > int x_flag_ipa_matrix_reorg; > > > > > > int x_flag_ipa_profile; > > > > > > int x_flag_ipa_pta; > > > > > > int x_flag_ipa_pure_const; > > > > > > int x_flag_ipa_reference; > > > > > > int x_flag_ipa_sra; > > > > > > enum ira_algorithm x_flag_ira_algorithm; > > > > > > int x_flag_ira_loop_pressure; > > > > > > enum ira_region x_flag_ira_region; > > > > > > int x_flag_ira_share_save_slots; > > > > > > int x_flag_ira_share_spill_slots; > > > > > > int x_flag_ira_verbose; > > > > > > int x_flag_ivopts; > > > > > > int x_flag_jni; > > > > > > int x_flag_jump_tables; > > > > > > int x_flag_keep_inline_dllexport; > > > > > > int x_flag_keep_inline_functions; > > > > > > int x_flag_keep_static_consts; > > > > > > int x_flag_lax_vector_conversions; > > > > > > int x_flag_leading_underscore; > > > > > > int x_flag_loop_block; > > > > > > int x_flag_loop_flatten; > > > > > > int x_flag_loop_interchange; > > > > > > int x_flag_loop_parallelize_all; > > > > > > int x_flag_loop_strip_mine; > > > > > > int x_flag_lto_compression_level; > > > > > > int x_flag_lto_partition_1to1; > > > > > > int x_flag_lto_partition_balanced; > > > > > > int x_flag_lto_partition_none; > > > > > > int x_flag_lto_report; > > > > > > const char *x_flag_lto; > > > > > > int x_flag_ltrans; > > > > > > const char *x_ltrans_output_list; > > > > > > int x_flag_errno_math; > > > > > > int x_flag_max_errors; > > > > > > int x_mem_report; > > > > > > int x_flag_merge_constants; > > > > > > int x_flag_merge_debug_strings; > > > > > > int x_flag_modulo_sched; > > > > > > int x_flag_modulo_sched_allow_regmoves; > > > > > > int x_flag_move_loop_invariants; > > > > > > int x_flag_ms_extensions; > > > > > > int x_flag_mudflap; > > > > > > int x_flag_mudflap_ignore_reads; > > > > > > int x_flag_nil_receivers; > > > > > > int x_flag_non_call_exceptions; > > > > > > int x_flag_no_nonansi_builtin; > > > > > > int x_flag_nothrow_opt; > > > > > > int x_flag_objc_abi; > > > > > > int x_flag_objc_call_cxx_cdtors; > > > > > > int x_flag_objc_direct_dispatch; > > > > > > int x_flag_objc_exceptions; > > > > > > int x_flag_objc_gc; > > > > > > int x_flag_objc_nilcheck; > > > > > > int x_flag_objc_sjlj_exceptions; > > > > > > int x_flag_objc1_only; > > > > > > int x_flag_omit_frame_pointer; > > > > > > int x_flag_openmp; > > > > > > int x_flag_regmove; > > > > > > int x_flag_optimize_sibling_calls; > > > > > > int x_flag_optimize_sci; > > > > > > int x_flag_optimize_strlen; > > > > > > int x_flag_pack_struct; > > > > > > int x_flag_partial_inlining; > > > > > > int x_flag_pcc_struct_return; > > > > > > int x_flag_peel_loops; > > > > > > int x_flag_no_peephole; > > > > > > int x_flag_peephole2; > > > > > > int x_flag_plan9_extensions; > > > > > > int x_post_ipa_mem_report; > > > > > > int x_pre_ipa_mem_report; > > > > > > int x_flag_predictive_commoning; > > > > > > int x_flag_prefetch_loop_arrays; > > > > > > int x_flag_pretty_templates; > > > > > > int x_profile_flag; > > > > > > int x_profile_arc_flag; > > > > > > int x_flag_profile_correction; > > > > > > const char *x_profile_data_prefix; > > > > > > int x_flag_profile_use; > > > > > > int x_flag_profile_values; > > > > > > int x_flag_reciprocal_math; > > > > > > int x_flag_record_gcc_switches; > > > > > > int x_flag_reduced_reflection; > > > > > > int x_flag_ree; > > > > > > int x_flag_rename_registers; > > > > > > int x_flag_reorder_blocks; > > > > > > int x_flag_reorder_blocks_and_partition; > > > > > > int x_flag_reorder_functions; > > > > > > int x_flag_replace_objc_classes; > > > > > > int x_go_require_return_statement; > > > > > > int x_flag_rerun_cse_after_loop; > > > > > > int x_flag_resched_modulo_sched; > > > > > > int x_flag_rounding_math; > > > > > > int x_flag_rtti; > > > > > > int x_flag_sched_critical_path_heuristic; > > > > > > int x_flag_sched_dep_count_heuristic; > > > > > > int x_flag_sched_group_heuristic; > > > > > > int x_flag_schedule_interblock; > > > > > > int x_flag_sched_last_insn_heuristic; > > > > > > int x_flag_sched_pressure; > > > > > > int x_flag_sched_rank_heuristic; > > > > > > int x_flag_schedule_speculative; > > > > > > int x_flag_sched_spec_insn_heuristic; > > > > > > int x_flag_schedule_speculative_load; > > > > > > int x_flag_schedule_speculative_load_dangerous; > > > > > > int x_flag_sched_stalled_insns; > > > > > > int x_flag_sched_stalled_insns_dep; > > > > > > int x_sched_verbose_param; > > > > > > int x_flag_sched2_use_superblocks; > > > > > > int x_flag_schedule_insns; > > > > > > int x_flag_schedule_insns_after_reload; > > > > > > int x_flag_section_anchors; > > > > > > int x_flag_sel_sched_pipelining; > > > > > > int x_flag_sel_sched_pipelining_outer_loops; > > > > > > int x_flag_sel_sched_reschedule_pipelined; > > > > > > int x_flag_selective_scheduling; > > > > > > int x_flag_selective_scheduling2; > > > > > > int x_flag_short_double; > > > > > > int x_flag_short_enums; > > > > > > int x_flag_short_wchar; > > > > > > int x_flag_show_column; > > > > > > int x_flag_shrink_wrap; > > > > > > int x_flag_signaling_nans; > > > > > > int x_flag_signed_bitfields; > > > > > > int x_flag_signed_char; > > > > > > int x_flag_signed_zeros; > > > > > > int x_flag_single_precision_constant; > > > > > > int x_flag_split_ivs_in_unroller; > > > > > > int x_flag_split_stack; > > > > > > int x_flag_split_wide_types; > > > > > > int x_flag_stack_protect; > > > > > > int x_flag_stack_usage; > > > > > > int x_flag_detailed_statistics; > > > > > > int x_flag_store_check; > > > > > > int x_flag_strict_aliasing; > > > > > > int x_flag_strict_enums; > > > > > > int x_flag_strict_overflow; > > > > > > int x_flag_strict_volatile_bitfields; > > > > > > int x_flag_syntax_only; > > > > > > int x_flag_test_coverage; > > > > > > int x_flag_thread_jumps; > > > > > > int x_flag_threadsafe_statics; > > > > > > int x_time_report; > > > > > > enum tls_model x_flag_tls_default; > > > > > > int x_flag_toplevel_reorder; > > > > > > int x_flag_tracer; > > > > > > int x_flag_trapping_math; > > > > > > int x_flag_trapv; > > > > > > int x_flag_tree_bit_ccp; > > > > > > int x_flag_tree_builtin_call_dce; > > > > > > int x_flag_tree_ccp; > > > > > > int x_flag_tree_ch; > > > > > > int x_flag_tree_copy_prop; > > > > > > int x_flag_tree_copyrename; > > > > > > int x_flag_tree_cselim; > > > > > > int x_flag_tree_dce; > > > > > > int x_flag_tree_dom; > > > > > > int x_flag_tree_dse; > > > > > > int x_flag_tree_forwprop; > > > > > > int x_flag_tree_fre; > > > > > > int x_flag_tree_loop_distribute_patterns; > > > > > > int x_flag_tree_loop_distribution; > > > > > > int x_flag_tree_loop_if_convert; > > > > > > int x_flag_tree_loop_if_convert_stores; > > > > > > int x_flag_tree_loop_im; > > > > > > int x_flag_tree_loop_ivcanon; > > > > > > int x_flag_tree_loop_optimize; > > > > > > int x_flag_tree_live_range_split; > > > > > > int x_flag_tree_parallelize_loops; > > > > > > int x_flag_tree_phiprop; > > > > > > int x_flag_tree_pre; > > > > > > int x_flag_tree_pta; > > > > > > int x_flag_tree_reassoc; > > > > > > int x_flag_tree_scev_cprop; > > > > > > int x_flag_tree_sink; > > > > > > int x_flag_tree_slp_vectorize; > > > > > > int x_flag_tree_sra; > > > > > > int x_flag_tree_switch_conversion; > > > > > > int x_flag_tree_tail_merge; > > > > > > int x_flag_tree_ter; > > > > > > int x_flag_tree_vect_loop_version; > > > > > > int x_flag_tree_vectorize; > > > > > > int x_flag_tree_vrp; > > > > > > int x_flag_unit_at_a_time; > > > > > > int x_flag_unroll_all_loops; > > > > > > int x_flag_unroll_loops; > > > > > > int x_flag_unsafe_loop_optimizations; > > > > > > int x_flag_unsafe_math_optimizations; > > > > > > int x_flag_unswitch_loops; > > > > > > int x_flag_unwind_tables; > > > > > > int x_flag_use_atomic_builtins; > > > > > > int x_flag_use_boehm_gc; > > > > > > int x_flag_use_cxa_atexit; > > > > > > int x_flag_use_cxa_get_exception_ptr; > > > > > > int x_flag_use_divide_subroutine; > > > > > > int x_flag_var_tracking; > > > > > > int x_flag_var_tracking_assignments; > > > > > > int x_flag_var_tracking_assignments_toggle; > > > > > > int x_flag_var_tracking_uninit; > > > > > > int x_flag_variable_expansion_in_unroller; > > > > > > int x_flag_vect_cost_model; > > > > > > int x_flag_verbose_asm; > > > > > > int x_flag_visibility_ms_compat; > > > > > > enum symbol_visibility x_default_visibility; > > > > > > int x_flag_value_profile_transformations; > > > > > > int x_flag_weak; > > > > > > int x_flag_web; > > > > > > int x_flag_whole_program; > > > > > > int x_flag_working_directory; > > > > > > int x_flag_wpa; > > > > > > int x_flag_wrapv; > > > > > > int x_flag_zero_initialized_in_bss; > > > > > > int x_flag_zero_link; > > > > > > int x_dwarf_version; > > > > > > int x_flag_gen_declaration; > > > > > > int x_dwarf_record_gcc_switches; > > > > > > int x_dwarf_strict; > > > > > > int x_flag_gtoggle; > > > > > > const char *x_plugindir_string; > > > > > > int x_rs6000_altivec_abi; > > > > > > int x_rs6000_darwin64_abi; > > > > > > int x_rs6000_ieeequad; > > > > > > int x_rs6000_spe_abi; > > > > > > int x_aix_struct_return; > > > > > > int x_TARGET_ALIGN_BRANCH_TARGETS; > > > > > > int x_TARGET_ALLOW_DF_PERMUTE; > > > > > > int x_TARGET_ALLOW_MOVMISALIGN; > > > > > > int x_TARGET_ALWAYS_HINT; > > > > > > int x_flag_android; > > > > > > int x_TARGET_AVOID_XFORM; > > > > > > int x_linux_libc; > > > > > > int x_TARGET_NO_BITFIELD_TYPE; > > > > > > int x_TARGET_NO_BITFIELD_WORD; > > > > > > int x_rs6000_block_move_inline_limit; > > > > > > int x_secure_plt; > > > > > > const char *x_rs6000_abi_name; > > > > > > int x_rs6000_cpu_index; > > > > > > int x_rs6000_double_float; > > > > > > unsigned char x_rs6000_float_gprs; > > > > > > int x_TARGET_NO_FP_IN_TOC; > > > > > > enum fpu_type_t x_rs6000_fpu_type; > > > > > > int x_TARGET_FRIZ; > > > > > > int x_rs6000_gen_cell_microcode; > > > > > > const char *x_rs6000_sched_insert_nops_str; > > > > > > int x_rs6000_long_double_type_size; > > > > > > int x_rs6000_default_long_calls; > > > > > > int x_TARGET_NO_SUM_IN_TOC; > > > > > > int x_rs6000_paired_float; > > > > > > int x_TARGET_POINTERS_TO_NESTED_FUNCTIONS; > > > > > > int x_rs6000_sched_restricted_insns_priority; > > > > > > int x_profile_kernel; > > > > > > int x_target_prototype; > > > > > > const char *x_rs6000_recip_name; > > > > > > int x_rs6000_regnames; > > > > > > int x_TARGET_SAVE_TOC_INDIRECT; > > > > > > const char *x_rs6000_sched_costly_dep_str; > > > > > > int x_TARGET_SCHED_PROLOG; > > > > > > int x_TARGET_SCHED_GROUPS; > > > > > > const char *x_rs6000_sdata_name; > > > > > > int x_rs6000_simple_fpu; > > > > > > int x_rs6000_single_float; > > > > > > int x_TARGET_SINGLE_PIC_BASE; > > > > > > int x_rs6000_spe; > > > > > > int x_tls_markers; > > > > > > int x_rs6000_tune_index; > > > > > > const char *x_rs6000_veclibabi_name; > > > > > > int x_TARGET_VECTORIZE_BUILTINS; > > > > > > int x_TARGET_ALTIVEC_VRSAVE; > > > > > > int x_TARGET_VSX_ALIGN_128; > > > > > > int x_TARGET_VSX_SCALAR_DOUBLE; > > > > > > int x_TARGET_VSX_SCALAR_MEMORY; > > > > > > int x_rs6000_warn_altivec_long; > > > > > > int x_rs6000_warn_cell_microcode; > > > > > > int x_rs6000_xilinx_fpu; > > > > > > int x_TARGET_XL_COMPAT; > > > > > > const char *x_asm_file_name; > > > > > > int x_pass_exit_codes; > > > > > > int x_pedantic; > > > > > > int x_flag_pedantic_errors; > > > > > > int x_use_pipes; > > > > > > const char *x_print_file_name; > > > > > > int x_print_multi_directory; > > > > > > int x_print_multi_lib; > > > > > > int x_print_multi_os_directory; > > > > > > const char *x_print_prog_name; > > > > > > int x_print_search_dirs; > > > > > > int x_print_sysroot; > > > > > > int x_print_sysroot_headers_suffix; > > > > > > int x_quiet_flag; > > > > > > int x_report_times; > > > > > > int x_flag_undef; > > > > > > int x_verbose_flag; > > > > > > int x_version_flag; > > > > > > int x_inhibit_warnings; > > > > > > const char *x_wrapper_string; > > > > int x_VAR_mads; > > > > const char *x_VAR_mdebug_; > > > > int x_VAR_memb; > > > > int x_VAR_mfull_toc; > > > > int x_VAR_mmvme; > > > > int x_VAR_mnewlib; > > > > int x_VAR_mno_power; > > > > int x_VAR_mno_powerpc; > > > > int x_VAR_mno_toc; > > > > int x_VAR_mno_traceback; > > > > int x_VAR_mrecip; > > > > int x_VAR_mrelocatable_lib; > > > > int x_VAR_msdata; > > > > int x_VAR_mshlib; > > > > int x_VAR_msim; > > > > int x_VAR_mtoc; > > > > int x_VAR_myellowknife; > > > > unsigned char frontend_set_flag_associative_math; > > > unsigned char frontend_set_flag_cx_limited_range; > > > unsigned char frontend_set_flag_finite_math_only; > > > unsigned char frontend_set_flag_errno_math; > > > unsigned char frontend_set_flag_reciprocal_math; > > > unsigned char frontend_set_flag_rounding_math; > > > unsigned char frontend_set_flag_signaling_nans; > > > unsigned char frontend_set_flag_signed_zeros; > > > unsigned char frontend_set_flag_trapping_math; > > > unsigned char frontend_set_flag_unsafe_math_optimizations; > > >}; >extern struct gcc_options global_options; >extern const struct gcc_options global_options_init; >extern struct gcc_options global_options_set; > > > > > > > >struct cl_optimization >{ > int x_align_functions; > int x_align_jumps; > int x_align_labels; > int x_align_loops; > int x_flag_sched_stalled_insns; > int x_flag_sched_stalled_insns_dep; > enum fp_contract_mode x_flag_fp_contract_mode; > unsigned char x_optimize; > unsigned char x_optimize_size; > signed char x_flag_asynchronous_unwind_tables; > signed char x_flag_branch_on_count_reg; > signed char x_flag_branch_probabilities; > signed char x_flag_branch_target_load_optimize; > signed char x_flag_branch_target_load_optimize2; > signed char x_flag_btr_bb_exclusive; > signed char x_flag_caller_saves; > signed char x_flag_combine_stack_adjustments; > signed char x_flag_no_common; > signed char x_flag_compare_elim_after_reload; > signed char x_flag_conserve_stack; > signed char x_flag_cprop_registers; > signed char x_flag_crossjumping; > signed char x_flag_cse_follow_jumps; > signed char x_flag_cx_fortran_rules; > signed char x_flag_cx_limited_range; > signed char x_flag_data_sections; > signed char x_flag_dce; > signed char x_flag_defer_pop; > signed char x_flag_delayed_branch; > signed char x_flag_delete_null_pointer_checks; > signed char x_flag_devirtualize; > signed char x_flag_dse; > signed char x_flag_early_inlining; > signed char x_flag_exceptions; > signed char x_flag_expensive_optimizations; > signed char x_flag_finite_math_only; > signed char x_flag_float_store; > signed char x_flag_forward_propagate; > signed char x_flag_gcse; > signed char x_flag_gcse_after_reload; > signed char x_flag_gcse_las; > signed char x_flag_gcse_lm; > signed char x_flag_gcse_sm; > signed char x_flag_graphite_identity; > signed char x_flag_guess_branch_prob; > signed char x_flag_if_conversion; > signed char x_flag_if_conversion2; > signed char x_flag_inline_atomics; > signed char x_flag_inline_functions; > signed char x_flag_inline_functions_called_once; > signed char x_flag_inline_small_functions; > signed char x_flag_ipa_cp; > signed char x_flag_ipa_cp_clone; > signed char x_flag_ipa_matrix_reorg; > signed char x_flag_ipa_profile; > signed char x_flag_ipa_pta; > signed char x_flag_ipa_pure_const; > signed char x_flag_ipa_reference; > signed char x_flag_ipa_sra; > signed char x_flag_ivopts; > signed char x_flag_jump_tables; > signed char x_flag_loop_block; > signed char x_flag_loop_flatten; > signed char x_flag_loop_interchange; > signed char x_flag_loop_parallelize_all; > signed char x_flag_loop_strip_mine; > signed char x_flag_errno_math; > signed char x_flag_merge_constants; > signed char x_flag_modulo_sched; > signed char x_flag_move_loop_invariants; > signed char x_flag_non_call_exceptions; > signed char x_flag_nothrow_opt; > signed char x_flag_omit_frame_pointer; > signed char x_flag_regmove; > signed char x_flag_optimize_sibling_calls; > signed char x_flag_optimize_strlen; > signed char x_flag_pack_struct; > signed char x_flag_peel_loops; > signed char x_flag_no_peephole; > signed char x_flag_peephole2; > signed char x_flag_predictive_commoning; > signed char x_flag_prefetch_loop_arrays; > signed char x_flag_pcc_struct_return; > signed char x_flag_rename_registers; > signed char x_flag_reorder_blocks; > signed char x_flag_reorder_blocks_and_partition; > signed char x_flag_reorder_functions; > signed char x_flag_rerun_cse_after_loop; > signed char x_flag_resched_modulo_sched; > signed char x_flag_rounding_math; > signed char x_flag_rtti; > signed char x_flag_sched_critical_path_heuristic; > signed char x_flag_sched_dep_count_heuristic; > signed char x_flag_sched_group_heuristic; > signed char x_flag_schedule_interblock; > signed char x_flag_sched_last_insn_heuristic; > signed char x_flag_sched_pressure; > signed char x_flag_sched_rank_heuristic; > signed char x_flag_schedule_speculative; > signed char x_flag_sched_spec_insn_heuristic; > signed char x_flag_schedule_speculative_load; > signed char x_flag_schedule_speculative_load_dangerous; > signed char x_flag_sched2_use_superblocks; > signed char x_flag_schedule_insns; > signed char x_flag_schedule_insns_after_reload; > signed char x_flag_section_anchors; > signed char x_flag_sel_sched_pipelining; > signed char x_flag_sel_sched_pipelining_outer_loops; > signed char x_flag_sel_sched_reschedule_pipelined; > signed char x_flag_selective_scheduling; > signed char x_flag_selective_scheduling2; > signed char x_flag_short_double; > signed char x_flag_short_enums; > signed char x_flag_short_wchar; > signed char x_flag_shrink_wrap; > signed char x_flag_signaling_nans; > signed char x_flag_signed_zeros; > signed char x_flag_single_precision_constant; > signed char x_flag_split_ivs_in_unroller; > signed char x_flag_split_wide_types; > signed char x_flag_strict_aliasing; > signed char x_flag_strict_enums; > signed char x_flag_thread_jumps; > signed char x_flag_threadsafe_statics; > signed char x_flag_toplevel_reorder; > signed char x_flag_trapping_math; > signed char x_flag_trapv; > signed char x_flag_tree_bit_ccp; > signed char x_flag_tree_builtin_call_dce; > signed char x_flag_tree_ccp; > signed char x_flag_tree_ch; > signed char x_flag_tree_copy_prop; > signed char x_flag_tree_copyrename; > signed char x_flag_tree_cselim; > signed char x_flag_tree_dce; > signed char x_flag_tree_dom; > signed char x_flag_tree_dse; > signed char x_flag_tree_forwprop; > signed char x_flag_tree_fre; > signed char x_flag_tree_loop_distribute_patterns; > signed char x_flag_tree_loop_distribution; > signed char x_flag_tree_loop_if_convert; > signed char x_flag_tree_loop_if_convert_stores; > signed char x_flag_tree_loop_im; > signed char x_flag_tree_loop_ivcanon; > signed char x_flag_tree_loop_optimize; > signed char x_flag_tree_live_range_split; > signed char x_flag_tree_phiprop; > signed char x_flag_tree_pre; > signed char x_flag_tree_pta; > signed char x_flag_tree_reassoc; > signed char x_flag_tree_scev_cprop; > signed char x_flag_tree_sink; > signed char x_flag_tree_slp_vectorize; > signed char x_flag_tree_sra; > signed char x_flag_tree_switch_conversion; > signed char x_flag_tree_tail_merge; > signed char x_flag_tree_ter; > signed char x_flag_tree_vect_loop_version; > signed char x_flag_tree_vectorize; > signed char x_flag_tree_vrp; > signed char x_flag_unit_at_a_time; > signed char x_flag_unroll_all_loops; > signed char x_flag_unroll_loops; > signed char x_flag_unsafe_loop_optimizations; > signed char x_flag_unsafe_math_optimizations; > signed char x_flag_unswitch_loops; > signed char x_flag_unwind_tables; > signed char x_flag_var_tracking; > signed char x_flag_var_tracking_assignments; > signed char x_flag_var_tracking_assignments_toggle; > signed char x_flag_var_tracking_uninit; > signed char x_flag_variable_expansion_in_unroller; > signed char x_flag_vect_cost_model; > signed char x_flag_value_profile_transformations; > signed char x_flag_web; > signed char x_flag_whole_program; > signed char x_flag_wrapv; >}; > > >struct cl_target_option >{ > enum processor_type x_rs6000_cpu; > enum rs6000_abi x_rs6000_current_abi; > enum rs6000_cmodel x_rs6000_current_cmodel; > enum rs6000_dependence_cost x_rs6000_sched_costly_dep; > enum rs6000_nop_insertion x_rs6000_sched_insert_nops; > enum rs6000_sdata_type x_rs6000_sdata; > enum rs6000_traceback_type x_rs6000_traceback; > int rs6000_target_flags_explicit; > int x_rs6000_tls_size; > unsigned int x_rs6000_builtin_mask; > unsigned int x_rs6000_debug; > unsigned int x_rs6000_recip_control; > int x_target_flags; > int x_rs6000_block_move_inline_limit; > int x_rs6000_cpu_index; > int x_rs6000_long_double_type_size; > int x_rs6000_sched_restricted_insns_priority; > int x_rs6000_tune_index; > unsigned char x_can_override_loop_align; > unsigned char x_rs6000_align_branch_targets; > unsigned char x_rs6000_alignment_flags; > unsigned char x_rs6000_always_hint; > unsigned char x_rs6000_sched_groups; > signed char x_rs6000_altivec_abi; > signed char x_rs6000_darwin64_abi; > signed char x_rs6000_ieeequad; > signed char x_rs6000_spe_abi; > signed char x_aix_struct_return; > signed char x_TARGET_AVOID_XFORM; > signed char x_TARGET_NO_BITFIELD_TYPE; > signed char x_TARGET_NO_BITFIELD_WORD; > signed char x_secure_plt; > signed char x_rs6000_double_float; > unsigned char x_rs6000_float_gprs; > signed char x_TARGET_NO_FP_IN_TOC; > signed char x_TARGET_FRIZ; > signed char x_rs6000_gen_cell_microcode; > signed char x_rs6000_default_long_calls; > signed char x_TARGET_NO_SUM_IN_TOC; > signed char x_rs6000_paired_float; > signed char x_TARGET_POINTERS_TO_NESTED_FUNCTIONS; > signed char x_profile_kernel; > signed char x_target_prototype; > signed char x_rs6000_regnames; > signed char x_TARGET_SAVE_TOC_INDIRECT; > signed char x_TARGET_SCHED_PROLOG; > signed char x_rs6000_simple_fpu; > signed char x_rs6000_single_float; > signed char x_rs6000_spe; > signed char x_tls_markers; > signed char x_TARGET_ALTIVEC_VRSAVE; > signed char x_rs6000_warn_altivec_long; > signed char x_rs6000_warn_cell_microcode; > signed char x_rs6000_xilinx_fpu; > signed char x_TARGET_XL_COMPAT; >}; > > > >extern void cl_optimization_save (struct cl_optimization *, struct gcc_options *); > > >extern void cl_optimization_restore (struct gcc_options *, struct cl_optimization *); > > >extern void cl_optimization_print (FILE *, int, struct cl_optimization *); > > >extern void cl_target_option_save (struct cl_target_option *, struct gcc_options *); > > >extern void cl_target_option_restore (struct gcc_options *, struct cl_target_option *); > > >extern void cl_target_option_print (FILE *, int, struct cl_target_option *); ># 4124 "./options.h" >enum opt_code >{ > OPT____ = 0, ># 4158 "./options.h" > OPT__help = 32, > OPT__help_ = 33, ># 4191 "./options.h" > OPT__output_pch_ = 65, > > OPT__param = 67, ># 4225 "./options.h" > OPT__sysroot_ = 99, > OPT__target_help = 100, ># 4236 "./options.h" > OPT__version = 110, > > > OPT_A = 113, > OPT_B = 114, > OPT_C = 115, > OPT_CC = 116, > > OPT_D = 118, > OPT_E = 119, > OPT_F = 120, > OPT_G = 121, > OPT_H = 122, > OPT_I = 123, > OPT_J = 124, > OPT_L = 125, > OPT_M = 126, > OPT_MD = 127, > OPT_MD_ = 128, > OPT_MF = 129, > OPT_MG = 130, > OPT_MM = 131, > OPT_MMD = 132, > OPT_MMD_ = 133, > OPT_MP = 134, > OPT_MQ = 135, > OPT_MT = 136, > OPT_N = 137, > OPT_O = 138, > OPT_Ofast = 139, > OPT_Os = 140, > OPT_P = 141, > OPT_Q = 142, > OPT_Qn = 143, > OPT_Qy = 144, > OPT_R = 145, > OPT_S = 146, > OPT_T = 147, > OPT_Tbss = 148, > OPT_Tbss_ = 149, > OPT_Tdata = 150, > OPT_Tdata_ = 151, > OPT_Ttext = 152, > OPT_Ttext_ = 153, > OPT_U = 154, > > OPT_Wa_ = 156, > OPT_Wabi = 157, > OPT_Waddress = 158, > OPT_Waggregate_return = 159, > OPT_Waliasing = 160, > OPT_Walign_commons = 161, > OPT_Wall = 162, > OPT_Wall_deprecation = 163, > OPT_Wall_javadoc = 164, > OPT_Wampersand = 165, > OPT_Warray_bounds = 166, > OPT_Warray_temporaries = 167, > OPT_Wassert_identifier = 168, > OPT_Wassign_intercept = 169, > OPT_Wattributes = 170, > OPT_Wbad_function_cast = 171, > OPT_Wboxing = 172, > OPT_Wbuiltin_macro_redefined = 173, > OPT_Wc___compat = 174, > OPT_Wc__0x_compat = 175, > > OPT_Wcast_align = 177, > OPT_Wcast_qual = 178, > OPT_Wchar_concat = 179, > OPT_Wchar_subscripts = 180, > OPT_Wcharacter_truncation = 181, > OPT_Wclobbered = 182, > OPT_Wcomment = 183, > > OPT_Wcondition_assign = 185, > OPT_Wconstructor_name = 186, > OPT_Wconversion = 187, > OPT_Wconversion_extra = 188, > OPT_Wconversion_null = 189, > OPT_Wcoverage_mismatch = 190, > OPT_Wcpp = 191, > OPT_Wctor_dtor_privacy = 192, > OPT_Wdeclaration_after_statement = 193, > OPT_Wdelete_non_virtual_dtor = 194, > OPT_Wdep_ann = 195, > OPT_Wdeprecated = 196, > OPT_Wdeprecated_declarations = 197, > OPT_Wdisabled_optimization = 198, > OPT_Wdiscouraged = 199, > OPT_Wdiv_by_zero = 200, > OPT_Wdouble_promotion = 201, > OPT_Weffc__ = 202, > OPT_Wempty_block = 203, > OPT_Wempty_body = 204, > OPT_Wendif_labels = 205, > OPT_Wenum_compare = 206, > OPT_Wenum_identifier = 207, > OPT_Wenum_switch = 208, > OPT_Werror = 209, > > OPT_Werror_ = 211, > OPT_Wextra = 212, > OPT_Wextraneous_semicolon = 213, > OPT_Wfallthrough = 214, > OPT_Wfatal_errors = 215, > OPT_Wfield_hiding = 216, > OPT_Wfinal_bound = 217, > OPT_Wfinally = 218, > OPT_Wfloat_equal = 219, > OPT_Wforbidden = 220, > OPT_Wformat = 221, > OPT_Wformat_contains_nul = 222, > OPT_Wformat_extra_args = 223, > OPT_Wformat_nonliteral = 224, > OPT_Wformat_security = 225, > OPT_Wformat_y2k = 226, > OPT_Wformat_zero_length = 227, > OPT_Wformat_ = 228, > OPT_Wframe_larger_than_ = 229, > OPT_Wfree_nonheap_object = 230, > OPT_Wfunction_elimination = 231, > OPT_Whiding = 232, > OPT_Wignored_qualifiers = 233, > OPT_Wimplicit = 234, > OPT_Wimplicit_function_declaration = 235, > OPT_Wimplicit_int = 236, > OPT_Wimplicit_interface = 237, > OPT_Wimplicit_procedure = 238, > > OPT_Windirect_static = 240, > OPT_Winit_self = 241, > OPT_Winline = 242, > OPT_Wint_to_pointer_cast = 243, > OPT_Wintf_annotation = 244, > OPT_Wintf_non_inherited = 245, > OPT_Wintrinsic_shadow = 246, > OPT_Wintrinsics_std = 247, > OPT_Winvalid_memory_model = 248, > OPT_Winvalid_offsetof = 249, > OPT_Winvalid_pch = 250, > OPT_Wjavadoc = 251, > OPT_Wjump_misses_init = 252, > OPT_Wl_ = 253, > > OPT_Wlarger_than_ = 255, > OPT_Wline_truncation = 256, > OPT_Wlocal_hiding = 257, > OPT_Wlogical_op = 258, > OPT_Wlong_long = 259, > OPT_Wmain = 260, > OPT_Wmasked_catch_block = 261, > OPT_Wmaybe_uninitialized = 262, > OPT_Wmissing_braces = 263, > OPT_Wmissing_declarations = 264, > OPT_Wmissing_field_initializers = 265, > OPT_Wmissing_format_attribute = 266, > OPT_Wmissing_include_dirs = 267, > OPT_Wmissing_noreturn = 268, > OPT_Wmissing_parameter_type = 269, > OPT_Wmissing_prototypes = 270, > OPT_Wmudflap = 271, > OPT_Wmultichar = 272, > OPT_Wnarrowing = 273, > OPT_Wnested_externs = 274, > OPT_Wnls = 275, > OPT_Wno_effect_assign = 276, > OPT_Wnoexcept = 277, > OPT_Wnon_template_friend = 278, > OPT_Wnon_virtual_dtor = 279, > OPT_Wnonnull = 280, > OPT_Wnormalized_ = 281, > OPT_Wnull = 282, > OPT_Wold_style_cast = 283, > OPT_Wold_style_declaration = 284, > OPT_Wold_style_definition = 285, > OPT_Wout_of_date = 286, > OPT_Wover_ann = 287, > OPT_Woverflow = 288, > OPT_Woverlength_strings = 289, > OPT_Woverloaded_virtual = 290, > OPT_Woverride_init = 291, > OPT_Wp_ = 292, > OPT_Wpacked = 293, > OPT_Wpacked_bitfield_compat = 294, > OPT_Wpadded = 295, > OPT_Wparam_assign = 296, > OPT_Wparentheses = 297, > OPT_Wpkg_default_method = 298, > OPT_Wpmf_conversions = 299, > OPT_Wpointer_arith = 300, > OPT_Wpointer_sign = 301, > OPT_Wpointer_to_int_cast = 302, > OPT_Wpragmas = 303, > OPT_Wproperty_assign_default = 304, > OPT_Wprotocol = 305, > OPT_Wpsabi = 306, > OPT_Wraw = 307, > OPT_Wreal_q_constant = 308, > OPT_Wredundant_decls = 309, > OPT_Wredundant_modifiers = 310, > OPT_Wreorder = 311, > OPT_Wreturn_type = 312, > OPT_Wselector = 313, > OPT_Wsequence_point = 314, > OPT_Wserial = 315, > OPT_Wshadow = 316, > OPT_Wsign_compare = 317, > OPT_Wsign_conversion = 318, > OPT_Wsign_promo = 319, > OPT_Wspecial_param_hiding = 320, > OPT_Wstack_protector = 321, > OPT_Wstack_usage_ = 322, > OPT_Wstatic_access = 323, > OPT_Wstatic_receiver = 324, > OPT_Wstrict_aliasing = 325, > OPT_Wstrict_aliasing_ = 326, > OPT_Wstrict_null_sentinel = 327, > OPT_Wstrict_overflow = 328, > OPT_Wstrict_overflow_ = 329, > OPT_Wstrict_prototypes = 330, > OPT_Wstrict_selector_match = 331, > OPT_Wsuggest_attribute_const = 332, > OPT_Wsuggest_attribute_noreturn = 333, > OPT_Wsuggest_attribute_pure = 334, > OPT_Wsuppress = 335, > OPT_Wsurprising = 336, > OPT_Wswitch = 337, > OPT_Wswitch_default = 338, > OPT_Wswitch_enum = 339, > OPT_Wsync_nand = 340, > OPT_Wsynth = 341, > OPT_Wsynthetic_access = 342, > OPT_Wsystem_headers = 343, > OPT_Wtabs = 344, > OPT_Wtasks = 345, > OPT_Wtraditional = 346, > OPT_Wtraditional_conversion = 347, > OPT_Wtrampolines = 348, > OPT_Wtrigraphs = 349, > OPT_Wtype_hiding = 350, > OPT_Wtype_limits = 351, > OPT_Wuncheck = 352, > OPT_Wundeclared_selector = 353, > OPT_Wundef = 354, > OPT_Wunderflow = 355, > OPT_Wuninitialized = 356, > OPT_Wunknown_pragmas = 357, > OPT_Wunnecessary_else = 358, > OPT_Wunqualified_field = 359, > > OPT_Wunsafe_loop_optimizations = 361, > OPT_Wunsuffixed_float_constants = 362, > OPT_Wunused = 363, > OPT_Wunused_argument = 364, > OPT_Wunused_but_set_parameter = 365, > OPT_Wunused_but_set_variable = 366, > OPT_Wunused_dummy_argument = 367, > OPT_Wunused_function = 368, > OPT_Wunused_import = 369, > OPT_Wunused_label = 370, > OPT_Wunused_local = 371, > OPT_Wunused_local_typedefs = 372, > OPT_Wunused_macros = 373, > OPT_Wunused_parameter = 374, > OPT_Wunused_private = 375, > OPT_Wunused_result = 376, > OPT_Wunused_thrown = 377, > OPT_Wunused_value = 378, > OPT_Wunused_variable = 379, > OPT_Wuseless_type_check = 380, > OPT_Wvarargs_cast = 381, > OPT_Wvariadic_macros = 382, > OPT_Wvector_operation_performance = 383, > OPT_Wvla = 384, > OPT_Wvolatile_register_var = 385, > OPT_Wwarning_token = 386, > OPT_Wwrite_strings = 387, > OPT_Wzero_as_null_pointer_constant = 388, > OPT_Xassembler = 389, > OPT_Xlinker = 390, > OPT_Xpreprocessor = 391, > OPT_Z = 392, > OPT_ansi = 393, > OPT_aux_info = 394, > > OPT_auxbase = 396, > OPT_auxbase_strip = 397, > > OPT_c = 399, > > OPT_coverage = 401, > OPT_cpp = 402, > OPT_cpp_ = 403, > OPT_d = 404, > OPT_dumpbase = 405, > OPT_dumpdir = 406, > OPT_dumpmachine = 407, > OPT_dumpspecs = 408, > OPT_dumpversion = 409, > OPT_e = 410, > > OPT_export_dynamic = 412, > OPT_extdirs = 413, > > OPT_fPIC = 415, > OPT_fPIE = 416, > OPT_fRTS_ = 417, > OPT_fabi_version_ = 418, > OPT_faccess_control = 419, > OPT_faggressive_function_elimination = 420, > OPT_falign_commons = 421, > OPT_falign_functions = 422, > OPT_falign_functions_ = 423, > OPT_falign_jumps = 424, > OPT_falign_jumps_ = 425, > OPT_falign_labels = 426, > OPT_falign_labels_ = 427, > OPT_falign_loops = 428, > OPT_falign_loops_ = 429, > OPT_fall_intrinsics = 430, > > OPT_fallow_leading_underscore = 432, > OPT_fallow_parameterless_variadic_functions = 433, > > > > > > OPT_fasm = 439, > OPT_fassert = 440, > OPT_fassociative_math = 441, > OPT_fassume_compiled = 442, > OPT_fassume_compiled_ = 443, > OPT_fasynchronous_unwind_tables = 444, > OPT_fauto_inc_dec = 445, > OPT_fautomatic = 446, > OPT_faux_classpath = 447, > OPT_fbackslash = 448, > OPT_fbacktrace = 449, > OPT_fblas_matmul_limit_ = 450, > OPT_fbootclasspath_ = 451, > OPT_fbootstrap_classes = 452, > OPT_fbounds_check = 453, > OPT_fbranch_count_reg = 454, > OPT_fbranch_probabilities = 455, > OPT_fbranch_target_load_optimize = 456, > OPT_fbranch_target_load_optimize2 = 457, > OPT_fbtr_bb_exclusive = 458, > OPT_fbuilding_libgcc = 459, > OPT_fbuiltin = 460, > OPT_fbuiltin_ = 461, > OPT_fcall_saved_ = 462, > OPT_fcall_used_ = 463, > OPT_fcaller_saves = 464, > OPT_fcheck_array_temporaries = 465, > OPT_fcheck_data_deps = 466, > OPT_fcheck_new = 467, > OPT_fcheck_references = 468, > OPT_fcheck_ = 469, > OPT_fclasspath_ = 470, > OPT_fcoarray_ = 471, > OPT_fcombine_stack_adjustments = 472, > OPT_fcommon = 473, > OPT_fcompare_debug = 474, > OPT_fcompare_debug_second = 475, > OPT_fcompare_debug_ = 476, > OPT_fcompare_elim = 477, > OPT_fcompile_resource_ = 478, > OPT_fcond_mismatch = 479, > OPT_fconserve_space = 480, > OPT_fconserve_stack = 481, > OPT_fconstant_string_class_ = 482, > OPT_fconstexpr_depth_ = 483, > OPT_fconvert_big_endian = 484, > OPT_fconvert_little_endian = 485, > OPT_fconvert_native = 486, > OPT_fconvert_swap = 487, > OPT_fcprop_registers = 488, > OPT_fcray_pointer = 489, > OPT_fcrossjumping = 490, > OPT_fcse_follow_jumps = 491, > > OPT_fcx_fortran_rules = 493, > OPT_fcx_limited_range = 494, > OPT_fd_lines_as_code = 495, > OPT_fd_lines_as_comments = 496, > OPT_fdata_sections = 497, > OPT_fdbg_cnt_list = 498, > OPT_fdbg_cnt_ = 499, > OPT_fdce = 500, > OPT_fdebug_cpp = 501, > OPT_fdebug_prefix_map_ = 502, > OPT_fdebug_types_section = 503, > OPT_fdeduce_init_list = 504, > OPT_fdefault_double_8 = 505, > > OPT_fdefault_integer_8 = 507, > OPT_fdefault_real_8 = 508, > OPT_fdefer_pop = 509, > OPT_fdelayed_branch = 510, > OPT_fdelete_null_pointer_checks = 511, > OPT_fdevirtualize = 512, > OPT_fdiagnostics_show_location_ = 513, > OPT_fdiagnostics_show_option = 514, > OPT_fdirectives_only = 515, > OPT_fdisable_ = 516, > OPT_fdisable_assertions = 517, > OPT_fdisable_assertions_ = 518, > OPT_fdollar_ok = 519, > OPT_fdollars_in_identifiers = 520, > OPT_fdse = 521, > OPT_fdump_ = 522, > > OPT_fdump_final_insns = 524, > OPT_fdump_final_insns_ = 525, > OPT_fdump_fortran_optimized = 526, > OPT_fdump_fortran_original = 527, > OPT_fdump_go_spec_ = 528, > OPT_fdump_noaddr = 529, > OPT_fdump_parse_tree = 530, > OPT_fdump_passes = 531, > OPT_fdump_unnumbered = 532, > OPT_fdump_unnumbered_links = 533, > OPT_fdwarf2_cfi_asm = 534, > OPT_fearly_inlining = 535, > OPT_felide_constructors = 536, > OPT_feliminate_dwarf2_dups = 537, > OPT_feliminate_unused_debug_symbols = 538, > OPT_feliminate_unused_debug_types = 539, > OPT_femit_class_debug_always = 540, > OPT_femit_class_file = 541, > OPT_femit_class_files = 542, > OPT_femit_struct_debug_baseonly = 543, > OPT_femit_struct_debug_detailed_ = 544, > OPT_femit_struct_debug_reduced = 545, > OPT_fenable_ = 546, > OPT_fenable_assertions = 547, > OPT_fenable_assertions_ = 548, > OPT_fencoding_ = 549, > OPT_fenforce_eh_specs = 550, > > OPT_fexceptions = 552, > OPT_fexcess_precision_ = 553, > OPT_fexec_charset_ = 554, > OPT_fexpensive_optimizations = 555, > OPT_fextdirs_ = 556, > OPT_fextended_identifiers = 557, > OPT_fexternal_blas = 558, > > OPT_ff2c = 560, > OPT_ffast_math = 561, > OPT_ffat_lto_objects = 562, > OPT_ffilelist_file = 563, > OPT_ffinite_math_only = 564, > OPT_ffixed_ = 565, > OPT_ffixed_form = 566, > OPT_ffixed_line_length_ = 567, > OPT_ffixed_line_length_none = 568, > OPT_ffloat_store = 569, > OPT_ffor_scope = 570, > > OPT_fforce_classes_archive_check = 572, > OPT_fforward_propagate = 573, > OPT_ffp_contract_ = 574, > OPT_ffpe_trap_ = 575, > OPT_ffree_form = 576, > OPT_ffree_line_length_ = 577, > OPT_ffree_line_length_none = 578, > OPT_ffreestanding = 579, > OPT_ffriend_injection = 580, > OPT_ffrontend_optimize = 581, > OPT_ffunction_cse = 582, > OPT_ffunction_sections = 583, > OPT_fgcse = 584, > OPT_fgcse_after_reload = 585, > OPT_fgcse_las = 586, > OPT_fgcse_lm = 587, > OPT_fgcse_sm = 588, > OPT_fgnu_keywords = 589, > OPT_fgnu_runtime = 590, > OPT_fgnu_tm = 591, > OPT_fgnu89_inline = 592, > OPT_fgo_check_divide_overflow = 593, > OPT_fgo_check_divide_zero = 594, > OPT_fgo_dump_ = 595, > OPT_fgo_optimize_ = 596, > OPT_fgo_pkgpath_ = 597, > OPT_fgo_prefix_ = 598, > OPT_fgraphite = 599, > OPT_fgraphite_identity = 600, > OPT_fguess_branch_probability = 601, > > > OPT_fhash_synchronization = 604, > > > > OPT_fhosted = 608, > > OPT_fident = 610, > OPT_fif_conversion = 611, > OPT_fif_conversion2 = 612, > OPT_fimplement_inlines = 613, > OPT_fimplicit_inline_templates = 614, > OPT_fimplicit_none = 615, > OPT_fimplicit_templates = 616, > OPT_findirect_classes = 617, > OPT_findirect_dispatch = 618, > OPT_findirect_inlining = 619, > OPT_finhibit_size_directive = 620, > OPT_finit_character_ = 621, > OPT_finit_integer_ = 622, > OPT_finit_local_zero = 623, > OPT_finit_logical_ = 624, > OPT_finit_real_ = 625, > OPT_finline = 626, > OPT_finline_atomics = 627, > OPT_finline_functions = 628, > OPT_finline_functions_called_once = 629, > > OPT_finline_limit_ = 631, > OPT_finline_small_functions = 632, > OPT_finput_charset_ = 633, > OPT_finstrument_functions = 634, > OPT_finstrument_functions_exclude_file_list_ = 635, > OPT_finstrument_functions_exclude_function_list_ = 636, > OPT_finteger_4_integer_8 = 637, > OPT_fintrinsic_modules_path = 638, > OPT_fipa_cp = 639, > OPT_fipa_cp_clone = 640, > OPT_fipa_matrix_reorg = 641, > OPT_fipa_profile = 642, > OPT_fipa_pta = 643, > OPT_fipa_pure_const = 644, > OPT_fipa_reference = 645, > OPT_fipa_sra = 646, > > OPT_fira_algorithm_ = 648, > OPT_fira_loop_pressure = 649, > OPT_fira_region_ = 650, > OPT_fira_share_save_slots = 651, > OPT_fira_share_spill_slots = 652, > OPT_fira_verbose_ = 653, > OPT_fivopts = 654, > OPT_fjni = 655, > OPT_fjump_tables = 656, > OPT_fkeep_inline_dllexport = 657, > OPT_fkeep_inline_functions = 658, > OPT_fkeep_static_consts = 659, > > OPT_flax_vector_conversions = 661, > OPT_fleading_underscore = 662, > OPT_floop_block = 663, > OPT_floop_flatten = 664, > OPT_floop_interchange = 665, > > OPT_floop_parallelize_all = 667, > OPT_floop_strip_mine = 668, > OPT_flto = 669, > OPT_flto_compression_level_ = 670, > OPT_flto_partition_1to1 = 671, > OPT_flto_partition_balanced = 672, > OPT_flto_partition_none = 673, > OPT_flto_report = 674, > OPT_flto_ = 675, > OPT_fltrans = 676, > OPT_fltrans_output_list_ = 677, > OPT_fmain_ = 678, > OPT_fmath_errno = 679, > OPT_fmax_array_constructor_ = 680, > OPT_fmax_errors_ = 681, > OPT_fmax_identifier_length_ = 682, > OPT_fmax_stack_var_size_ = 683, > OPT_fmax_subrecord_length_ = 684, > OPT_fmem_report = 685, > OPT_fmerge_all_constants = 686, > OPT_fmerge_constants = 687, > OPT_fmerge_debug_strings = 688, > OPT_fmessage_length_ = 689, > OPT_fmodule_private = 690, > OPT_fmodulo_sched = 691, > OPT_fmodulo_sched_allow_regmoves = 692, > OPT_fmove_loop_invariants = 693, > OPT_fms_extensions = 694, > OPT_fmudflap = 695, > OPT_fmudflapir = 696, > OPT_fmudflapth = 697, > > > OPT_fnext_runtime = 700, > OPT_fnil_receivers = 701, > OPT_fnon_call_exceptions = 702, > OPT_fnonansi_builtins = 703, > > OPT_fnothrow_opt = 705, > OPT_fobjc_abi_version_ = 706, > OPT_fobjc_call_cxx_cdtors = 707, > OPT_fobjc_direct_dispatch = 708, > OPT_fobjc_exceptions = 709, > OPT_fobjc_gc = 710, > OPT_fobjc_nilcheck = 711, > OPT_fobjc_sjlj_exceptions = 712, > OPT_fobjc_std_objc1 = 713, > OPT_fomit_frame_pointer = 714, > OPT_fopenmp = 715, > OPT_foperator_names = 716, > OPT_foptimize_register_move = 717, > OPT_foptimize_sibling_calls = 718, > OPT_foptimize_static_class_initialization = 719, > OPT_foptimize_strlen = 720, > > OPT_foutput_class_dir_ = 722, > OPT_fpack_derived = 723, > OPT_fpack_struct = 724, > OPT_fpack_struct_ = 725, > OPT_fpartial_inlining = 726, > OPT_fpcc_struct_return = 727, > OPT_fpch_deps = 728, > OPT_fpch_preprocess = 729, > OPT_fpeel_loops = 730, > OPT_fpeephole = 731, > OPT_fpeephole2 = 732, > OPT_fpermissive = 733, > OPT_fpic = 734, > OPT_fpie = 735, > OPT_fplan9_extensions = 736, > OPT_fplugin_arg_ = 737, > OPT_fplugin_ = 738, > OPT_fpost_ipa_mem_report = 739, > OPT_fpre_ipa_mem_report = 740, > OPT_fpredictive_commoning = 741, > OPT_fprefetch_loop_arrays = 742, > OPT_fpreprocessed = 743, > OPT_fpretty_templates = 744, > OPT_fprofile = 745, > OPT_fprofile_arcs = 746, > OPT_fprofile_correction = 747, > OPT_fprofile_dir_ = 748, > OPT_fprofile_generate = 749, > OPT_fprofile_generate_ = 750, > OPT_fprofile_use = 751, > OPT_fprofile_use_ = 752, > OPT_fprofile_values = 753, > OPT_fprotect_parens = 754, > OPT_frandom_seed = 755, > OPT_frandom_seed_ = 756, > OPT_frange_check = 757, > OPT_freal_4_real_10 = 758, > OPT_freal_4_real_16 = 759, > OPT_freal_4_real_8 = 760, > OPT_freal_8_real_10 = 761, > OPT_freal_8_real_16 = 762, > OPT_freal_8_real_4 = 763, > OPT_frealloc_lhs = 764, > OPT_freciprocal_math = 765, > OPT_frecord_gcc_switches = 766, > OPT_frecord_marker_4 = 767, > OPT_frecord_marker_8 = 768, > OPT_frecursive = 769, > OPT_freduced_reflection = 770, > OPT_free = 771, > OPT_freg_struct_return = 772, > OPT_fregmove = 773, > OPT_frename_registers = 774, > OPT_freorder_blocks = 775, > OPT_freorder_blocks_and_partition = 776, > OPT_freorder_functions = 777, > OPT_frepack_arrays = 778, > OPT_freplace_objc_classes = 779, > OPT_frepo = 780, > OPT_frequire_return_statement = 781, > OPT_frerun_cse_after_loop = 782, > > OPT_freschedule_modulo_scheduled_loops = 784, > OPT_fresolution_ = 785, > OPT_frounding_math = 786, > OPT_frtti = 787, > OPT_fsaw_java_file = 788, > OPT_fsched_critical_path_heuristic = 789, > OPT_fsched_dep_count_heuristic = 790, > OPT_fsched_group_heuristic = 791, > OPT_fsched_interblock = 792, > OPT_fsched_last_insn_heuristic = 793, > OPT_fsched_pressure = 794, > OPT_fsched_rank_heuristic = 795, > OPT_fsched_spec = 796, > OPT_fsched_spec_insn_heuristic = 797, > OPT_fsched_spec_load = 798, > OPT_fsched_spec_load_dangerous = 799, > OPT_fsched_stalled_insns = 800, > OPT_fsched_stalled_insns_dep = 801, > OPT_fsched_stalled_insns_dep_ = 802, > OPT_fsched_stalled_insns_ = 803, > OPT_fsched_verbose_ = 804, > OPT_fsched2_use_superblocks = 805, > > OPT_fschedule_insns = 807, > OPT_fschedule_insns2 = 808, > OPT_fsecond_underscore = 809, > OPT_fsection_anchors = 810, > > OPT_fsel_sched_pipelining = 812, > OPT_fsel_sched_pipelining_outer_loops = 813, > OPT_fsel_sched_reschedule_pipelined = 814, > OPT_fselective_scheduling = 815, > OPT_fselective_scheduling2 = 816, > OPT_fshort_double = 817, > OPT_fshort_enums = 818, > OPT_fshort_wchar = 819, > OPT_fshow_column = 820, > OPT_fshrink_wrap = 821, > OPT_fsign_zero = 822, > OPT_fsignaling_nans = 823, > OPT_fsigned_bitfields = 824, > OPT_fsigned_char = 825, > OPT_fsigned_zeros = 826, > OPT_fsingle_precision_constant = 827, > OPT_fsource_filename_ = 828, > OPT_fsource_ = 829, > OPT_fsplit_ivs_in_unroller = 830, > OPT_fsplit_stack = 831, > OPT_fsplit_wide_types = 832, > > OPT_fstack_arrays = 834, > > OPT_fstack_check_ = 836, > OPT_fstack_limit = 837, > OPT_fstack_limit_register_ = 838, > OPT_fstack_limit_symbol_ = 839, > OPT_fstack_protector = 840, > OPT_fstack_protector_all = 841, > OPT_fstack_usage = 842, > OPT_fstats = 843, > OPT_fstore_check = 844, > > OPT_fstrict_aliasing = 846, > OPT_fstrict_enums = 847, > OPT_fstrict_overflow = 848, > > OPT_fstrict_volatile_bitfields = 850, > OPT_fsyntax_only = 851, > OPT_ftabstop_ = 852, > > OPT_ftarget_ = 854, > > OPT_ftemplate_depth_ = 856, > OPT_ftest_coverage = 857, > > OPT_fthread_jumps = 859, > OPT_fthreadsafe_statics = 860, > OPT_ftime_report = 861, > OPT_ftls_model_ = 862, > OPT_ftoplevel_reorder = 863, > OPT_ftracer = 864, > OPT_ftrack_macro_expansion = 865, > OPT_ftrack_macro_expansion_ = 866, > OPT_ftrapping_math = 867, > OPT_ftrapv = 868, > OPT_ftree_bit_ccp = 869, > OPT_ftree_builtin_call_dce = 870, > OPT_ftree_ccp = 871, > OPT_ftree_ch = 872, > OPT_ftree_copy_prop = 873, > OPT_ftree_copyrename = 874, > OPT_ftree_cselim = 875, > OPT_ftree_dce = 876, > OPT_ftree_dominator_opts = 877, > OPT_ftree_dse = 878, > OPT_ftree_forwprop = 879, > OPT_ftree_fre = 880, > OPT_ftree_loop_distribute_patterns = 881, > OPT_ftree_loop_distribution = 882, > OPT_ftree_loop_if_convert = 883, > OPT_ftree_loop_if_convert_stores = 884, > OPT_ftree_loop_im = 885, > OPT_ftree_loop_ivcanon = 886, > > OPT_ftree_loop_optimize = 888, > OPT_ftree_lrs = 889, > OPT_ftree_parallelize_loops_ = 890, > OPT_ftree_phiprop = 891, > OPT_ftree_pre = 892, > OPT_ftree_pta = 893, > OPT_ftree_reassoc = 894, > > OPT_ftree_scev_cprop = 896, > OPT_ftree_sink = 897, > OPT_ftree_slp_vectorize = 898, > OPT_ftree_sra = 899, > > > OPT_ftree_switch_conversion = 902, > OPT_ftree_tail_merge = 903, > OPT_ftree_ter = 904, > OPT_ftree_vect_loop_version = 905, > OPT_ftree_vectorize = 906, > OPT_ftree_vectorizer_verbose_ = 907, > OPT_ftree_vrp = 908, > OPT_funderscoring = 909, > OPT_funit_at_a_time = 910, > OPT_funroll_all_loops = 911, > OPT_funroll_loops = 912, > OPT_funsafe_loop_optimizations = 913, > OPT_funsafe_math_optimizations = 914, > OPT_funsigned_bitfields = 915, > OPT_funsigned_char = 916, > OPT_funswitch_loops = 917, > OPT_funwind_tables = 918, > OPT_fuse_atomic_builtins = 919, > OPT_fuse_boehm_gc = 920, > OPT_fuse_cxa_atexit = 921, > OPT_fuse_cxa_get_exception_ptr = 922, > OPT_fuse_divide_subroutine = 923, > OPT_fuse_linker_plugin = 924, > OPT_fvar_tracking = 925, > OPT_fvar_tracking_assignments = 926, > OPT_fvar_tracking_assignments_toggle = 927, > OPT_fvar_tracking_uninit = 928, > OPT_fvariable_expansion_in_unroller = 929, > OPT_fvect_cost_model = 930, > OPT_fverbose_asm = 931, > > OPT_fvisibility_inlines_hidden = 933, > OPT_fvisibility_ms_compat = 934, > OPT_fvisibility_ = 935, > OPT_fvpt = 936, > > > OPT_fweak = 939, > OPT_fweb = 940, > OPT_fwhole_file = 941, > OPT_fwhole_program = 942, > OPT_fwide_exec_charset_ = 943, > OPT_fworking_directory = 944, > OPT_fwpa = 945, > OPT_fwrapv = 946, > > > OPT_fzero_initialized_in_bss = 949, > OPT_fzero_link = 950, > OPT_g = 951, > OPT_gant = 952, > OPT_gcoff = 953, > OPT_gdwarf_ = 954, > OPT_gen_decls = 955, > OPT_ggdb = 956, > OPT_gnat = 957, > OPT_gnatO = 958, > OPT_gno_record_gcc_switches = 959, > OPT_gno_strict_dwarf = 960, > OPT_grecord_gcc_switches = 961, > OPT_gstabs = 962, > OPT_gstabs_ = 963, > OPT_gstrict_dwarf = 964, > OPT_gtoggle = 965, > OPT_gvms = 966, > OPT_gxcoff = 967, > OPT_gxcoff_ = 968, > OPT_h = 969, > OPT_idirafter = 970, > OPT_imacros = 971, > OPT_imultilib = 972, > OPT_include = 973, > OPT_iplugindir_ = 974, > OPT_iprefix = 975, > OPT_iquote = 976, > OPT_isysroot = 977, > OPT_isystem = 978, > OPT_iwithprefix = 979, > OPT_iwithprefixbefore = 980, > OPT_k8 = 981, > OPT_l = 982, > OPT_lang_asm = 983, > OPT_m32 = 984, > OPT_m64 = 985, > OPT_mabi_altivec = 986, > OPT_mabi_d32 = 987, > OPT_mabi_d64 = 988, > OPT_mabi_ibmlongdouble = 989, > OPT_mabi_ieeelongdouble = 990, > OPT_mabi_no_altivec = 991, > OPT_mabi_no_spe = 992, > OPT_mabi_spe = 993, > OPT_mads = 994, > OPT_maix_struct_return = 995, > OPT_malign_ = 996, > OPT_malign_branch_targets = 997, > OPT_mallow_df_permute = 998, > OPT_mallow_movmisalign = 999, > OPT_maltivec = 1000, > OPT_malways_hint = 1001, > OPT_mandroid = 1002, > OPT_mavoid_indexed_addresses = 1003, > OPT_mbig = 1004, > OPT_mbig_endian = 1005, > OPT_mbionic = 1006, > OPT_mbit_align = 1007, > OPT_mbit_word = 1008, > OPT_mblock_move_inline_limit_ = 1009, > OPT_mbss_plt = 1010, > OPT_mcall_ = 1011, > OPT_mcmodel_ = 1012, > OPT_mcmpb = 1013, > OPT_mcpu_ = 1014, > OPT_mdebug_ = 1015, > OPT_mdlmzb = 1016, > OPT_mdouble_float = 1017, > OPT_meabi = 1018, > OPT_memb = 1019, > OPT_mfloat_gprs_ = 1020, > OPT_mfp_in_toc = 1021, > OPT_mfprnd = 1022, > OPT_mfpu_ = 1023, > OPT_mfriz = 1024, > OPT_mfull_toc = 1025, > > OPT_mgen_cell_microcode = 1027, > OPT_mglibc = 1028, > OPT_mhard_dfp = 1029, > OPT_mhard_float = 1030, > OPT_minsert_sched_nops_ = 1031, > OPT_misel = 1032, > > > OPT_mlittle = 1035, > OPT_mlittle_endian = 1036, > OPT_mlong_double_ = 1037, > OPT_mlongcall = 1038, > OPT_mmfcrf = 1039, > OPT_mmfpgpr = 1040, > OPT_mminimal_toc = 1041, > OPT_mmulhw = 1042, > OPT_mmultiple = 1043, > OPT_mmvme = 1044, > OPT_mnew_mnemonics = 1045, > OPT_mnewlib = 1046, > OPT_mno_fp_in_toc = 1047, > OPT_mno_power = 1048, > OPT_mno_powerpc = 1049, > OPT_mno_sum_in_toc = 1050, > OPT_mno_toc = 1051, > OPT_mno_traceback = 1052, > OPT_mno_update = 1053, > OPT_mold_mnemonics = 1054, > OPT_mpaired = 1055, > OPT_mpointers_to_nested_functions = 1056, > OPT_mpopcntb = 1057, > OPT_mpopcntd = 1058, > OPT_mpower = 1059, > OPT_mpower2 = 1060, > OPT_mpowerpc = 1061, > OPT_mpowerpc_gfxopt = 1062, > OPT_mpowerpc_gpopt = 1063, > OPT_mpowerpc64 = 1064, > OPT_mprioritize_restricted_insns_ = 1065, > OPT_mprofile_kernel = 1066, > OPT_mprototype = 1067, > OPT_mrecip = 1068, > OPT_mrecip_precision = 1069, > OPT_mrecip_ = 1070, > OPT_mregnames = 1071, > OPT_mrelocatable = 1072, > OPT_mrelocatable_lib = 1073, > OPT_msave_toc_indirect = 1074, > OPT_msched_costly_dep_ = 1075, > OPT_msched_epilog = 1076, > OPT_msched_groups = 1077, > OPT_msched_prolog = 1078, > OPT_msdata = 1079, > OPT_msdata_ = 1080, > OPT_msecure_plt = 1081, > OPT_mshlib = 1082, > OPT_msim = 1083, > OPT_msimple_fpu = 1084, > OPT_msingle_float = 1085, > OPT_msingle_pic_base = 1086, > OPT_msoft_float = 1087, > OPT_mspe = 1088, > > > OPT_mstrict_align = 1091, > OPT_mstring = 1092, > OPT_msum_in_toc = 1093, > OPT_msvr4_struct_return = 1094, > OPT_mtls_markers = 1095, > OPT_mtls_size_ = 1096, > OPT_mtoc = 1097, > OPT_mtraceback_ = 1098, > OPT_mtune_ = 1099, > OPT_muclibc = 1100, > OPT_mupdate = 1101, > OPT_mveclibabi_ = 1102, > OPT_mvectorize_builtins = 1103, > OPT_mvrsave = 1104, > > > OPT_mvsx = 1107, > OPT_mvsx_align_128 = 1108, > OPT_mvsx_scalar_double = 1109, > OPT_mvsx_scalar_memory = 1110, > OPT_mwarn_altivec_long = 1111, > OPT_mwarn_cell_microcode = 1112, > OPT_mxilinx_fpu = 1113, > OPT_mxl_compat = 1114, > OPT_myellowknife = 1115, > OPT_n = 1116, > OPT_no_canonical_prefixes = 1117, > OPT_no_integrated_cpp = 1118, > OPT_nocpp = 1119, > OPT_nodefaultlibs = 1120, > OPT_nostartfiles = 1121, > OPT_nostdinc = 1122, > OPT_nostdinc__ = 1123, > OPT_nostdlib = 1124, > OPT_o = 1125, > OPT_p = 1126, > OPT_pass_exit_codes = 1127, > OPT_pedantic = 1128, > OPT_pedantic_errors = 1129, > OPT_pg = 1130, > OPT_pie = 1131, > OPT_pipe = 1132, > OPT_posix = 1133, > OPT_print_file_name_ = 1134, > OPT_print_libgcc_file_name = 1135, > OPT_print_multi_directory = 1136, > OPT_print_multi_lib = 1137, > OPT_print_multi_os_directory = 1138, > OPT_print_objc_runtime_info = 1139, > OPT_print_prog_name_ = 1140, > OPT_print_search_dirs = 1141, > OPT_print_sysroot = 1142, > OPT_print_sysroot_headers_suffix = 1143, > OPT_profile = 1144, > OPT_pthread = 1145, > OPT_quiet = 1146, > OPT_r = 1147, > OPT_rdynamic = 1148, > OPT_remap = 1149, > OPT_s = 1150, > OPT_s_bc_abi = 1151, > OPT_save_temps = 1152, > OPT_save_temps_ = 1153, > OPT_shared = 1154, > OPT_shared_libgcc = 1155, > > OPT_specs_ = 1157, > OPT_static = 1158, > OPT_static_libgcc = 1159, > OPT_static_libgcj = 1160, > OPT_static_libgfortran = 1161, > OPT_static_libgo = 1162, > OPT_static_libstdc__ = 1163, > > > OPT_std_c__11 = 1166, > OPT_std_c__98 = 1167, > OPT_std_c11 = 1168, > > > OPT_std_c90 = 1171, > OPT_std_c99 = 1172, > > OPT_std_f2003 = 1174, > OPT_std_f2008 = 1175, > OPT_std_f2008ts = 1176, > OPT_std_f95 = 1177, > OPT_std_gnu = 1178, > > > OPT_std_gnu__11 = 1181, > OPT_std_gnu__98 = 1182, > OPT_std_gnu11 = 1183, > > > OPT_std_gnu90 = 1186, > OPT_std_gnu99 = 1187, > > > OPT_std_iso9899_199409 = 1190, > > > > OPT_std_legacy = 1194, > OPT_symbolic = 1195, > OPT_t = 1196, > OPT_time = 1197, > OPT_time_ = 1198, > OPT_tno_android_cc = 1199, > OPT_tno_android_ld = 1200, > OPT_traditional = 1201, > OPT_traditional_cpp = 1202, > OPT_trigraphs = 1203, > OPT_u = 1204, > OPT_undef = 1205, > OPT_v = 1206, > OPT_version = 1207, > OPT_w = 1208, > OPT_wrapper = 1209, > OPT_x = 1210, > OPT_z = 1211, > N_OPTS, > OPT_SPECIAL_unknown, > OPT_SPECIAL_ignore, > OPT_SPECIAL_program_name, > OPT_SPECIAL_input_file >}; ># 20 "./tm.h" 2 ># 1 "./insn-constants.h" 1 ># 52 "./insn-constants.h" >enum unspec { > UNSPEC_FRSP = 0, > UNSPEC_PROBE_STACK = 1, > UNSPEC_TIE = 2, > UNSPEC_TOCPTR = 3, > UNSPEC_TOC = 4, > UNSPEC_MOVSI_GOT = 5, > UNSPEC_MV_CR_OV = 6, > UNSPEC_FCTIWZ = 7, > UNSPEC_FRIM = 8, > UNSPEC_FRIN = 9, > UNSPEC_FRIP = 10, > UNSPEC_FRIZ = 11, > UNSPEC_LD_MPIC = 12, > UNSPEC_MPIC_CORRECT = 13, > UNSPEC_TLSGD = 14, > UNSPEC_TLSLD = 15, > UNSPEC_MOVESI_FROM_CR = 16, > UNSPEC_MOVESI_TO_CR = 17, > UNSPEC_TLSDTPREL = 18, > UNSPEC_TLSDTPRELHA = 19, > UNSPEC_TLSDTPRELLO = 20, > UNSPEC_TLSGOTDTPREL = 21, > UNSPEC_TLSTPREL = 22, > UNSPEC_TLSTPRELHA = 23, > UNSPEC_TLSTPRELLO = 24, > UNSPEC_TLSGOTTPREL = 25, > UNSPEC_TLSTLS = 26, > UNSPEC_FIX_TRUNC_TF = 27, > UNSPEC_MV_CR_GT = 28, > UNSPEC_STFIWX = 29, > UNSPEC_POPCNTB = 30, > UNSPEC_FRES = 31, > UNSPEC_SP_SET = 32, > UNSPEC_SP_TEST = 33, > UNSPEC_SYNC = 34, > UNSPEC_LWSYNC = 35, > UNSPEC_SYNC_OP = 36, > UNSPEC_ATOMIC = 37, > UNSPEC_CMPXCHG = 38, > UNSPEC_XCHG = 39, > UNSPEC_AND = 40, > UNSPEC_DLMZB = 41, > UNSPEC_DLMZB_CR = 42, > UNSPEC_DLMZB_STRLEN = 43, > UNSPEC_RSQRT = 44, > UNSPEC_TOCREL = 45, > UNSPEC_MACHOPIC_OFFSET = 46, > UNSPEC_BPERM = 47, > UNSPEC_COPYSIGN = 48, > UNSPEC_PARITY = 49, > UNSPEC_FCTIW = 50, > UNSPEC_FCTID = 51, > UNSPEC_LFIWAX = 52, > UNSPEC_LFIWZX = 53, > UNSPEC_FCTIWUZ = 54, > UNSPEC_PREDICATE = 55, > UNSPEC_REDUC = 56, > UNSPEC_VSX_CONCAT = 57, > UNSPEC_VSX_CVDPSXWS = 58, > UNSPEC_VSX_CVDPUXWS = 59, > UNSPEC_VSX_CVSPDP = 60, > UNSPEC_VSX_CVSXWDP = 61, > UNSPEC_VSX_CVUXWDP = 62, > UNSPEC_VSX_CVSXDSP = 63, > UNSPEC_VSX_CVUXDSP = 64, > UNSPEC_VSX_CVSPSXDS = 65, > UNSPEC_VSX_CVSPUXDS = 66, > UNSPEC_VSX_TDIV = 67, > UNSPEC_VSX_TSQRT = 68, > UNSPEC_VSX_SET = 69, > UNSPEC_VSX_ROUND_I = 70, > UNSPEC_VSX_ROUND_IC = 71, > UNSPEC_VSX_SLDWI = 72, > UNSPEC_VCMPBFP = 73, > UNSPEC_VMSUMU = 74, > UNSPEC_VMSUMM = 75, > UNSPEC_VMSUMSHM = 76, > UNSPEC_VMSUMUHS = 77, > UNSPEC_VMSUMSHS = 78, > UNSPEC_VMHADDSHS = 79, > UNSPEC_VMHRADDSHS = 80, > UNSPEC_VMLADDUHM = 81, > UNSPEC_VADDCUW = 82, > UNSPEC_VADDU = 83, > UNSPEC_VADDS = 84, > UNSPEC_VAVGU = 85, > UNSPEC_VAVGS = 86, > UNSPEC_VMULEUB = 87, > UNSPEC_VMULESB = 88, > UNSPEC_VMULEUH = 89, > UNSPEC_VMULESH = 90, > UNSPEC_VMULOUB = 91, > UNSPEC_VMULOSB = 92, > UNSPEC_VMULOUH = 93, > UNSPEC_VMULOSH = 94, > UNSPEC_VPKUHUM = 95, > UNSPEC_VPKUWUM = 96, > UNSPEC_VPKPX = 97, > UNSPEC_VPKSHSS = 98, > UNSPEC_VPKSWSS = 99, > UNSPEC_VPKUHUS = 100, > UNSPEC_VPKSHUS = 101, > UNSPEC_VPKUWUS = 102, > UNSPEC_VPKSWUS = 103, > UNSPEC_VSLV4SI = 104, > UNSPEC_VSLO = 105, > UNSPEC_VSR = 106, > UNSPEC_VSRO = 107, > UNSPEC_VSUBCUW = 108, > UNSPEC_VSUBU = 109, > UNSPEC_VSUBS = 110, > UNSPEC_VSUM4UBS = 111, > UNSPEC_VSUM4S = 112, > UNSPEC_VSUM2SWS = 113, > UNSPEC_VSUMSWS = 114, > UNSPEC_VPERM = 115, > UNSPEC_VPERM_UNS = 116, > UNSPEC_VRFIN = 117, > UNSPEC_VCFUX = 118, > UNSPEC_VCFSX = 119, > UNSPEC_VCTUXS = 120, > UNSPEC_VCTSXS = 121, > UNSPEC_VLOGEFP = 122, > UNSPEC_VEXPTEFP = 123, > UNSPEC_VLSDOI = 124, > UNSPEC_VUPKHSB = 125, > UNSPEC_VUPKHPX = 126, > UNSPEC_VUPKHSH = 127, > UNSPEC_VUPKLSB = 128, > UNSPEC_VUPKLPX = 129, > UNSPEC_VUPKLSH = 130, > UNSPEC_DST = 131, > UNSPEC_DSTT = 132, > UNSPEC_DSTST = 133, > UNSPEC_DSTSTT = 134, > UNSPEC_LVSL = 135, > UNSPEC_LVSR = 136, > UNSPEC_LVE = 137, > UNSPEC_STVX = 138, > UNSPEC_STVXL = 139, > UNSPEC_STVE = 140, > UNSPEC_SET_VSCR = 141, > UNSPEC_GET_VRSAVE = 142, > UNSPEC_LVX = 143, > UNSPEC_REDUC_PLUS = 144, > UNSPEC_VECSH = 145, > UNSPEC_EXTEVEN_V4SI = 146, > UNSPEC_EXTEVEN_V8HI = 147, > UNSPEC_EXTEVEN_V16QI = 148, > UNSPEC_EXTEVEN_V4SF = 149, > UNSPEC_EXTODD_V4SI = 150, > UNSPEC_EXTODD_V8HI = 151, > UNSPEC_EXTODD_V16QI = 152, > UNSPEC_EXTODD_V4SF = 153, > UNSPEC_INTERHI_V4SI = 154, > UNSPEC_INTERHI_V8HI = 155, > UNSPEC_INTERHI_V16QI = 156, > UNSPEC_INTERLO_V4SI = 157, > UNSPEC_INTERLO_V8HI = 158, > UNSPEC_INTERLO_V16QI = 159, > UNSPEC_LVLX = 160, > UNSPEC_LVLXL = 161, > UNSPEC_LVRX = 162, > UNSPEC_LVRXL = 163, > UNSPEC_STVLX = 164, > UNSPEC_STVLXL = 165, > UNSPEC_STVRX = 166, > UNSPEC_STVRXL = 167, > UNSPEC_VMULWHUB = 168, > UNSPEC_VMULWLUB = 169, > UNSPEC_VMULWHSB = 170, > UNSPEC_VMULWLSB = 171, > UNSPEC_VMULWHUH = 172, > UNSPEC_VMULWLUH = 173, > UNSPEC_VMULWHSH = 174, > UNSPEC_VMULWLSH = 175, > UNSPEC_VUPKHUB = 176, > UNSPEC_VUPKHUH = 177, > UNSPEC_VUPKLUB = 178, > UNSPEC_VUPKLUH = 179, > UNSPEC_VPERMSI = 180, > UNSPEC_VPERMHI = 181, > UNSPEC_INTERHI = 182, > UNSPEC_INTERLO = 183, > UNSPEC_VUPKHS_V4SF = 184, > UNSPEC_VUPKLS_V4SF = 185, > UNSPEC_VUPKHU_V4SF = 186, > UNSPEC_VUPKLU_V4SF = 187, > UNSPEC_MOVSD_LOAD = 188, > UNSPEC_MOVSD_STORE = 189, > UNSPEC_INTERHI_V2SF = 190, > UNSPEC_INTERLO_V2SF = 191, > UNSPEC_EXTEVEN_V2SF = 192, > UNSPEC_EXTODD_V2SF = 193 >}; > >extern const char *const unspec_strings[]; > >enum unspecv { > UNSPECV_BLOCK = 0, > UNSPECV_LL = 1, > UNSPECV_SC = 2, > UNSPECV_PROBE_STACK_RANGE = 3, > UNSPECV_EH_RR = 4, > UNSPECV_ISYNC = 5, > UNSPECV_SET_VRSAVE = 6, > UNSPECV_MTVSCR = 7, > UNSPECV_MFVSCR = 8, > UNSPECV_DSSALL = 9, > UNSPECV_DSS = 10 >}; > >extern const char *const unspecv_strings[]; ># 21 "./tm.h" 2 ># 1 "../../gcc/config/rs6000/secureplt.h" 1 ># 22 "./tm.h" 2 ># 1 "../../gcc/config/rs6000/biarch64.h" 1 ># 23 "./tm.h" 2 ># 1 "../../gcc/config/rs6000/rs6000.h" 1 ># 208 "../../gcc/config/rs6000/rs6000.h" >extern const char *host_detect_local_cpu (int argc, const char **argv); ># 393 "../../gcc/config/rs6000/rs6000.h" >extern enum rs6000_vector rs6000_vector_unit[]; ># 411 "../../gcc/config/rs6000/rs6000.h" >extern enum rs6000_vector rs6000_vector_mem[]; ># 429 "../../gcc/config/rs6000/rs6000.h" >extern int rs6000_vector_align[]; ># 531 "../../gcc/config/rs6000/rs6000.h" >extern unsigned char rs6000_recip_bits[]; ># 688 "../../gcc/config/rs6000/rs6000.h" >extern unsigned rs6000_pointer_size; ># 1185 "../../gcc/config/rs6000/rs6000.h" >enum reg_class >{ > NO_REGS, > BASE_REGS, > GENERAL_REGS, > FLOAT_REGS, > ALTIVEC_REGS, > VSX_REGS, > VRSAVE_REGS, > VSCR_REGS, > SPE_ACC_REGS, > SPEFSCR_REGS, > NON_SPECIAL_REGS, > MQ_REGS, > LINK_REGS, > CTR_REGS, > LINK_OR_CTR_REGS, > SPECIAL_REGS, > SPEC_OR_GEN_REGS, > CR0_REGS, > CR_REGS, > NON_FLOAT_REGS, > CA_REGS, > ALL_REGS, > LIM_REG_CLASSES >}; ># 1277 "../../gcc/config/rs6000/rs6000.h" >extern enum reg_class rs6000_regno_regclass[114]; ># 1290 "../../gcc/config/rs6000/rs6000.h" >enum r6000_reg_class_enum { > RS6000_CONSTRAINT_d, > RS6000_CONSTRAINT_f, > RS6000_CONSTRAINT_v, > RS6000_CONSTRAINT_wa, > RS6000_CONSTRAINT_wd, > RS6000_CONSTRAINT_wf, > RS6000_CONSTRAINT_ws, > RS6000_CONSTRAINT_MAX >}; > >extern enum reg_class rs6000_constraints[RS6000_CONSTRAINT_MAX]; ># 1557 "../../gcc/config/rs6000/rs6000.h" >typedef struct rs6000_args >{ > int words; > int fregno; > int vregno; > int nargs_prototype; > int prototype; > int stdarg; > int call_cookie; > int sysv_gregno; > int intoffset; > int use_stack; > int floats_in_gpr; > > int named; > int escapes; >} CUMULATIVE_ARGS; ># 1872 "../../gcc/config/rs6000/rs6000.h" >extern unsigned rs6000_pmode; ># 1933 "../../gcc/config/rs6000/rs6000.h" >extern int toc_initialized; ># 2057 "../../gcc/config/rs6000/rs6000.h" >extern char rs6000_reg_names[][8]; ># 2295 "../../gcc/config/rs6000/rs6000.h" >extern int frame_pointer_needed; ># 2375 "../../gcc/config/rs6000/rs6000.h" >enum rs6000_builtins >{ ># 1 "../../gcc/config/rs6000/rs6000-builtin.def" 1 ># 404 "../../gcc/config/rs6000/rs6000-builtin.def" >RS6000_BUILTIN_NONE, > > >ALTIVEC_BUILTIN_VMADDFP, >ALTIVEC_BUILTIN_VMHADDSHS, >ALTIVEC_BUILTIN_VMHRADDSHS, >ALTIVEC_BUILTIN_VMLADDUHM, >ALTIVEC_BUILTIN_VMSUMUBM, >ALTIVEC_BUILTIN_VMSUMMBM, >ALTIVEC_BUILTIN_VMSUMUHM, >ALTIVEC_BUILTIN_VMSUMSHM, >ALTIVEC_BUILTIN_VMSUMUHS, >ALTIVEC_BUILTIN_VMSUMSHS, >ALTIVEC_BUILTIN_VNMSUBFP, >ALTIVEC_BUILTIN_VPERM_2DF, >ALTIVEC_BUILTIN_VPERM_2DI, >ALTIVEC_BUILTIN_VPERM_4SF, >ALTIVEC_BUILTIN_VPERM_4SI, >ALTIVEC_BUILTIN_VPERM_8HI, >ALTIVEC_BUILTIN_VPERM_16QI, >ALTIVEC_BUILTIN_VPERM_2DI_UNS, >ALTIVEC_BUILTIN_VPERM_4SI_UNS, >ALTIVEC_BUILTIN_VPERM_8HI_UNS, >ALTIVEC_BUILTIN_VPERM_16QI_UNS, >ALTIVEC_BUILTIN_VSEL_4SF, >ALTIVEC_BUILTIN_VSEL_4SI, >ALTIVEC_BUILTIN_VSEL_8HI, >ALTIVEC_BUILTIN_VSEL_16QI, >ALTIVEC_BUILTIN_VSEL_2DF, >ALTIVEC_BUILTIN_VSEL_2DI, >ALTIVEC_BUILTIN_VSEL_4SI_UNS, >ALTIVEC_BUILTIN_VSEL_8HI_UNS, >ALTIVEC_BUILTIN_VSEL_16QI_UNS, >ALTIVEC_BUILTIN_VSEL_2DI_UNS, >ALTIVEC_BUILTIN_VSLDOI_16QI, >ALTIVEC_BUILTIN_VSLDOI_8HI, >ALTIVEC_BUILTIN_VSLDOI_4SI, >ALTIVEC_BUILTIN_VSLDOI_4SF, > > >ALTIVEC_BUILTIN_DST, >ALTIVEC_BUILTIN_DSTT, >ALTIVEC_BUILTIN_DSTST, >ALTIVEC_BUILTIN_DSTSTT, > > >ALTIVEC_BUILTIN_VADDUBM, >ALTIVEC_BUILTIN_VADDUHM, >ALTIVEC_BUILTIN_VADDUWM, >ALTIVEC_BUILTIN_VADDFP, >ALTIVEC_BUILTIN_VADDCUW, >ALTIVEC_BUILTIN_VADDUBS, >ALTIVEC_BUILTIN_VADDSBS, >ALTIVEC_BUILTIN_VADDUHS, >ALTIVEC_BUILTIN_VADDSHS, >ALTIVEC_BUILTIN_VADDUWS, >ALTIVEC_BUILTIN_VADDSWS, >ALTIVEC_BUILTIN_VAND, >ALTIVEC_BUILTIN_VANDC, >ALTIVEC_BUILTIN_VAVGUB, >ALTIVEC_BUILTIN_VAVGSB, >ALTIVEC_BUILTIN_VAVGUH, >ALTIVEC_BUILTIN_VAVGSH, >ALTIVEC_BUILTIN_VAVGUW, >ALTIVEC_BUILTIN_VAVGSW, >ALTIVEC_BUILTIN_VCFUX, >ALTIVEC_BUILTIN_VCFSX, >ALTIVEC_BUILTIN_VCMPBFP, >ALTIVEC_BUILTIN_VCMPEQUB, >ALTIVEC_BUILTIN_VCMPEQUH, >ALTIVEC_BUILTIN_VCMPEQUW, >ALTIVEC_BUILTIN_VCMPEQFP, >ALTIVEC_BUILTIN_VCMPGEFP, >ALTIVEC_BUILTIN_VCMPGTUB, >ALTIVEC_BUILTIN_VCMPGTSB, >ALTIVEC_BUILTIN_VCMPGTUH, >ALTIVEC_BUILTIN_VCMPGTSH, >ALTIVEC_BUILTIN_VCMPGTUW, >ALTIVEC_BUILTIN_VCMPGTSW, >ALTIVEC_BUILTIN_VCMPGTFP, >ALTIVEC_BUILTIN_VCTSXS, >ALTIVEC_BUILTIN_VCTUXS, >ALTIVEC_BUILTIN_VMAXUB, >ALTIVEC_BUILTIN_VMAXSB, >ALTIVEC_BUILTIN_VMAXUH, >ALTIVEC_BUILTIN_VMAXSH, >ALTIVEC_BUILTIN_VMAXUW, >ALTIVEC_BUILTIN_VMAXSW, >ALTIVEC_BUILTIN_VMAXFP, >ALTIVEC_BUILTIN_VMRGHB, >ALTIVEC_BUILTIN_VMRGHH, >ALTIVEC_BUILTIN_VMRGHW, >ALTIVEC_BUILTIN_VMRGLB, >ALTIVEC_BUILTIN_VMRGLH, >ALTIVEC_BUILTIN_VMRGLW, >ALTIVEC_BUILTIN_VMINUB, >ALTIVEC_BUILTIN_VMINSB, >ALTIVEC_BUILTIN_VMINUH, >ALTIVEC_BUILTIN_VMINSH, >ALTIVEC_BUILTIN_VMINUW, >ALTIVEC_BUILTIN_VMINSW, >ALTIVEC_BUILTIN_VMINFP, >ALTIVEC_BUILTIN_VMULEUB, >ALTIVEC_BUILTIN_VMULEUB_UNS, >ALTIVEC_BUILTIN_VMULESB, >ALTIVEC_BUILTIN_VMULEUH, >ALTIVEC_BUILTIN_VMULEUH_UNS, >ALTIVEC_BUILTIN_VMULESH, >ALTIVEC_BUILTIN_VMULOUB, >ALTIVEC_BUILTIN_VMULOUB_UNS, >ALTIVEC_BUILTIN_VMULOSB, >ALTIVEC_BUILTIN_VMULOUH, >ALTIVEC_BUILTIN_VMULOUH_UNS, >ALTIVEC_BUILTIN_VMULOSH, >ALTIVEC_BUILTIN_VNOR, >ALTIVEC_BUILTIN_VOR, >ALTIVEC_BUILTIN_VPKUHUM, >ALTIVEC_BUILTIN_VPKUWUM, >ALTIVEC_BUILTIN_VPKPX, >ALTIVEC_BUILTIN_VPKSHSS, >ALTIVEC_BUILTIN_VPKSWSS, >ALTIVEC_BUILTIN_VPKUHUS, >ALTIVEC_BUILTIN_VPKSHUS, >ALTIVEC_BUILTIN_VPKUWUS, >ALTIVEC_BUILTIN_VPKSWUS, >ALTIVEC_BUILTIN_VRECIPFP, >ALTIVEC_BUILTIN_VRLB, >ALTIVEC_BUILTIN_VRLH, >ALTIVEC_BUILTIN_VRLW, >ALTIVEC_BUILTIN_VSLB, >ALTIVEC_BUILTIN_VSLH, >ALTIVEC_BUILTIN_VSLW, >ALTIVEC_BUILTIN_VSL, >ALTIVEC_BUILTIN_VSLO, >ALTIVEC_BUILTIN_VSPLTB, >ALTIVEC_BUILTIN_VSPLTH, >ALTIVEC_BUILTIN_VSPLTW, >ALTIVEC_BUILTIN_VSRB, >ALTIVEC_BUILTIN_VSRH, >ALTIVEC_BUILTIN_VSRW, >ALTIVEC_BUILTIN_VSRAB, >ALTIVEC_BUILTIN_VSRAH, >ALTIVEC_BUILTIN_VSRAW, >ALTIVEC_BUILTIN_VSR, >ALTIVEC_BUILTIN_VSRO, >ALTIVEC_BUILTIN_VSUBUBM, >ALTIVEC_BUILTIN_VSUBUHM, >ALTIVEC_BUILTIN_VSUBUWM, >ALTIVEC_BUILTIN_VSUBFP, >ALTIVEC_BUILTIN_VSUBCUW, >ALTIVEC_BUILTIN_VSUBUBS, >ALTIVEC_BUILTIN_VSUBSBS, >ALTIVEC_BUILTIN_VSUBUHS, >ALTIVEC_BUILTIN_VSUBSHS, >ALTIVEC_BUILTIN_VSUBUWS, >ALTIVEC_BUILTIN_VSUBSWS, >ALTIVEC_BUILTIN_VSUM4UBS, >ALTIVEC_BUILTIN_VSUM4SBS, >ALTIVEC_BUILTIN_VSUM4SHS, >ALTIVEC_BUILTIN_VSUM2SWS, >ALTIVEC_BUILTIN_VSUMSWS, >ALTIVEC_BUILTIN_VXOR, >ALTIVEC_BUILTIN_COPYSIGN_V4SF, > > >ALTIVEC_BUILTIN_ABS_V4SI, >ALTIVEC_BUILTIN_ABS_V8HI, >ALTIVEC_BUILTIN_ABS_V4SF, >ALTIVEC_BUILTIN_ABS_V16QI, >ALTIVEC_BUILTIN_ABSS_V4SI, >ALTIVEC_BUILTIN_ABSS_V8HI, >ALTIVEC_BUILTIN_ABSS_V16QI, > > >ALTIVEC_BUILTIN_VEXPTEFP, >ALTIVEC_BUILTIN_VLOGEFP, >ALTIVEC_BUILTIN_VREFP, >ALTIVEC_BUILTIN_VRFIM, >ALTIVEC_BUILTIN_VRFIN, >ALTIVEC_BUILTIN_VRFIP, >ALTIVEC_BUILTIN_VRFIZ, >ALTIVEC_BUILTIN_VRSQRTFP, >ALTIVEC_BUILTIN_VRSQRTEFP, >ALTIVEC_BUILTIN_VSPLTISB, >ALTIVEC_BUILTIN_VSPLTISH, >ALTIVEC_BUILTIN_VSPLTISW, >ALTIVEC_BUILTIN_VUPKHSB, >ALTIVEC_BUILTIN_VUPKHPX, >ALTIVEC_BUILTIN_VUPKHSH, >ALTIVEC_BUILTIN_VUPKLSB, >ALTIVEC_BUILTIN_VUPKLPX, >ALTIVEC_BUILTIN_VUPKLSH, > >ALTIVEC_BUILTIN_FLOAT_V4SI_V4SF, >ALTIVEC_BUILTIN_UNSFLOAT_V4SI_V4SF, >ALTIVEC_BUILTIN_FIX_V4SF_V4SI, >ALTIVEC_BUILTIN_FIXUNS_V4SF_V4SI, > > >ALTIVEC_BUILTIN_VCMPBFP_P, >ALTIVEC_BUILTIN_VCMPEQFP_P, >ALTIVEC_BUILTIN_VCMPGEFP_P, >ALTIVEC_BUILTIN_VCMPGTFP_P, >ALTIVEC_BUILTIN_VCMPEQUW_P, >ALTIVEC_BUILTIN_VCMPGTSW_P, >ALTIVEC_BUILTIN_VCMPGTUW_P, >ALTIVEC_BUILTIN_VCMPEQUH_P, >ALTIVEC_BUILTIN_VCMPGTSH_P, >ALTIVEC_BUILTIN_VCMPGTUH_P, >ALTIVEC_BUILTIN_VCMPEQUB_P, >ALTIVEC_BUILTIN_VCMPGTSB_P, >ALTIVEC_BUILTIN_VCMPGTUB_P, > > >ALTIVEC_BUILTIN_ST_INTERNAL_4si, >ALTIVEC_BUILTIN_LD_INTERNAL_4si, >ALTIVEC_BUILTIN_ST_INTERNAL_8hi, >ALTIVEC_BUILTIN_LD_INTERNAL_8hi, >ALTIVEC_BUILTIN_ST_INTERNAL_16qi, >ALTIVEC_BUILTIN_LD_INTERNAL_16qi, >ALTIVEC_BUILTIN_ST_INTERNAL_4sf, >ALTIVEC_BUILTIN_LD_INTERNAL_4sf, >ALTIVEC_BUILTIN_ST_INTERNAL_2df, >ALTIVEC_BUILTIN_LD_INTERNAL_2df, >ALTIVEC_BUILTIN_ST_INTERNAL_2di, >ALTIVEC_BUILTIN_LD_INTERNAL_2di, >ALTIVEC_BUILTIN_MTVSCR, >ALTIVEC_BUILTIN_MFVSCR, >ALTIVEC_BUILTIN_DSSALL, >ALTIVEC_BUILTIN_DSS, >ALTIVEC_BUILTIN_LVSL, >ALTIVEC_BUILTIN_LVSR, >ALTIVEC_BUILTIN_LVEBX, >ALTIVEC_BUILTIN_LVEHX, >ALTIVEC_BUILTIN_LVEWX, >ALTIVEC_BUILTIN_LVXL, >ALTIVEC_BUILTIN_LVX, >ALTIVEC_BUILTIN_STVX, >ALTIVEC_BUILTIN_LVLX, >ALTIVEC_BUILTIN_LVLXL, >ALTIVEC_BUILTIN_LVRX, >ALTIVEC_BUILTIN_LVRXL, >ALTIVEC_BUILTIN_STVEBX, >ALTIVEC_BUILTIN_STVEHX, >ALTIVEC_BUILTIN_STVEWX, >ALTIVEC_BUILTIN_STVXL, >ALTIVEC_BUILTIN_STVLX, >ALTIVEC_BUILTIN_STVLXL, >ALTIVEC_BUILTIN_STVRX, >ALTIVEC_BUILTIN_STVRXL, >ALTIVEC_BUILTIN_MASK_FOR_LOAD, >ALTIVEC_BUILTIN_MASK_FOR_STORE, >ALTIVEC_BUILTIN_VEC_INIT_V4SI, >ALTIVEC_BUILTIN_VEC_INIT_V8HI, >ALTIVEC_BUILTIN_VEC_INIT_V16QI, >ALTIVEC_BUILTIN_VEC_INIT_V4SF, >ALTIVEC_BUILTIN_VEC_SET_V4SI, >ALTIVEC_BUILTIN_VEC_SET_V8HI, >ALTIVEC_BUILTIN_VEC_SET_V16QI, >ALTIVEC_BUILTIN_VEC_SET_V4SF, >ALTIVEC_BUILTIN_VEC_EXT_V4SI, >ALTIVEC_BUILTIN_VEC_EXT_V8HI, >ALTIVEC_BUILTIN_VEC_EXT_V16QI, >ALTIVEC_BUILTIN_VEC_EXT_V4SF, > > > > > > > >ALTIVEC_BUILTIN_VEC_MADD, >ALTIVEC_BUILTIN_VEC_MADDS, >ALTIVEC_BUILTIN_VEC_MLADD, >ALTIVEC_BUILTIN_VEC_MRADDS, >ALTIVEC_BUILTIN_VEC_MSUM, >ALTIVEC_BUILTIN_VEC_MSUMS, >ALTIVEC_BUILTIN_VEC_NMSUB, >ALTIVEC_BUILTIN_VEC_PERM, >ALTIVEC_BUILTIN_VEC_SEL, >ALTIVEC_BUILTIN_VEC_VMSUMMBM, >ALTIVEC_BUILTIN_VEC_VMSUMSHM, >ALTIVEC_BUILTIN_VEC_VMSUMSHS, >ALTIVEC_BUILTIN_VEC_VMSUMUBM, >ALTIVEC_BUILTIN_VEC_VMSUMUHM, >ALTIVEC_BUILTIN_VEC_VMSUMUHS, > > >ALTIVEC_BUILTIN_VEC_DST, >ALTIVEC_BUILTIN_VEC_DSTT, >ALTIVEC_BUILTIN_VEC_DSTST, >ALTIVEC_BUILTIN_VEC_DSTSTT, > > >ALTIVEC_BUILTIN_VEC_ADD, >ALTIVEC_BUILTIN_VEC_ADDC, >ALTIVEC_BUILTIN_VEC_ADDS, >ALTIVEC_BUILTIN_VEC_AND, >ALTIVEC_BUILTIN_VEC_ANDC, >ALTIVEC_BUILTIN_VEC_AVG, >ALTIVEC_BUILTIN_VEC_CMPB, >ALTIVEC_BUILTIN_VEC_CMPEQ, >ALTIVEC_BUILTIN_VEC_CMPGE, >ALTIVEC_BUILTIN_VEC_CMPGT, >ALTIVEC_BUILTIN_VEC_CMPLE, >ALTIVEC_BUILTIN_VEC_CMPLT, >ALTIVEC_BUILTIN_VEC_COPYSIGN, >ALTIVEC_BUILTIN_VEC_MAX, >ALTIVEC_BUILTIN_VEC_MERGEH, >ALTIVEC_BUILTIN_VEC_MERGEL, >ALTIVEC_BUILTIN_VEC_MIN, >ALTIVEC_BUILTIN_VEC_MULE, >ALTIVEC_BUILTIN_VEC_MULO, >ALTIVEC_BUILTIN_VEC_NOR, >ALTIVEC_BUILTIN_VEC_OR, >ALTIVEC_BUILTIN_VEC_PACK, >ALTIVEC_BUILTIN_VEC_PACKPX, >ALTIVEC_BUILTIN_VEC_PACKS, >ALTIVEC_BUILTIN_VEC_PACKSU, >ALTIVEC_BUILTIN_VEC_RECIP, >ALTIVEC_BUILTIN_VEC_RL, >ALTIVEC_BUILTIN_VEC_SL, >ALTIVEC_BUILTIN_VEC_SLL, >ALTIVEC_BUILTIN_VEC_SLO, >ALTIVEC_BUILTIN_VEC_SR, >ALTIVEC_BUILTIN_VEC_SRA, >ALTIVEC_BUILTIN_VEC_SRL, >ALTIVEC_BUILTIN_VEC_SRO, >ALTIVEC_BUILTIN_VEC_SUB, >ALTIVEC_BUILTIN_VEC_SUBC, >ALTIVEC_BUILTIN_VEC_SUBS, >ALTIVEC_BUILTIN_VEC_SUM2S, >ALTIVEC_BUILTIN_VEC_SUM4S, >ALTIVEC_BUILTIN_VEC_SUMS, >ALTIVEC_BUILTIN_VEC_VADDFP, >ALTIVEC_BUILTIN_VEC_VADDSBS, >ALTIVEC_BUILTIN_VEC_VADDSHS, >ALTIVEC_BUILTIN_VEC_VADDSWS, >ALTIVEC_BUILTIN_VEC_VADDUBM, >ALTIVEC_BUILTIN_VEC_VADDUBS, >ALTIVEC_BUILTIN_VEC_VADDUHM, >ALTIVEC_BUILTIN_VEC_VADDUHS, >ALTIVEC_BUILTIN_VEC_VADDUWM, >ALTIVEC_BUILTIN_VEC_VADDUWS, >ALTIVEC_BUILTIN_VEC_VAVGSB, >ALTIVEC_BUILTIN_VEC_VAVGSH, >ALTIVEC_BUILTIN_VEC_VAVGSW, >ALTIVEC_BUILTIN_VEC_VAVGUB, >ALTIVEC_BUILTIN_VEC_VAVGUH, >ALTIVEC_BUILTIN_VEC_VAVGUW, >ALTIVEC_BUILTIN_VEC_VCMPEQFP, >ALTIVEC_BUILTIN_VEC_VCMPEQUB, >ALTIVEC_BUILTIN_VEC_VCMPEQUH, >ALTIVEC_BUILTIN_VEC_VCMPEQUW, >ALTIVEC_BUILTIN_VEC_VCMPGTFP, >ALTIVEC_BUILTIN_VEC_VCMPGTSB, >ALTIVEC_BUILTIN_VEC_VCMPGTSH, >ALTIVEC_BUILTIN_VEC_VCMPGTSW, >ALTIVEC_BUILTIN_VEC_VCMPGTUB, >ALTIVEC_BUILTIN_VEC_VCMPGTUH, >ALTIVEC_BUILTIN_VEC_VCMPGTUW, >ALTIVEC_BUILTIN_VEC_VMAXFP, >ALTIVEC_BUILTIN_VEC_VMAXSB, >ALTIVEC_BUILTIN_VEC_VMAXSH, >ALTIVEC_BUILTIN_VEC_VMAXSW, >ALTIVEC_BUILTIN_VEC_VMAXUB, >ALTIVEC_BUILTIN_VEC_VMAXUH, >ALTIVEC_BUILTIN_VEC_VMAXUW, >ALTIVEC_BUILTIN_VEC_VMINFP, >ALTIVEC_BUILTIN_VEC_VMINSB, >ALTIVEC_BUILTIN_VEC_VMINSH, >ALTIVEC_BUILTIN_VEC_VMINSW, >ALTIVEC_BUILTIN_VEC_VMINUB, >ALTIVEC_BUILTIN_VEC_VMINUH, >ALTIVEC_BUILTIN_VEC_VMINUW, >ALTIVEC_BUILTIN_VEC_VMRGHB, >ALTIVEC_BUILTIN_VEC_VMRGHH, >ALTIVEC_BUILTIN_VEC_VMRGHW, >ALTIVEC_BUILTIN_VEC_VMRGLB, >ALTIVEC_BUILTIN_VEC_VMRGLH, >ALTIVEC_BUILTIN_VEC_VMRGLW, >ALTIVEC_BUILTIN_VEC_VMULESB, >ALTIVEC_BUILTIN_VEC_VMULESH, >ALTIVEC_BUILTIN_VEC_VMULEUB, >ALTIVEC_BUILTIN_VEC_VMULEUH, >ALTIVEC_BUILTIN_VEC_VMULOSB, >ALTIVEC_BUILTIN_VEC_VMULOSH, >ALTIVEC_BUILTIN_VEC_VMULOUB, >ALTIVEC_BUILTIN_VEC_VMULOUH, >ALTIVEC_BUILTIN_VEC_VPKSHSS, >ALTIVEC_BUILTIN_VEC_VPKSHUS, >ALTIVEC_BUILTIN_VEC_VPKSWSS, >ALTIVEC_BUILTIN_VEC_VPKSWUS, >ALTIVEC_BUILTIN_VEC_VPKUHUM, >ALTIVEC_BUILTIN_VEC_VPKUHUS, >ALTIVEC_BUILTIN_VEC_VPKUWUM, >ALTIVEC_BUILTIN_VEC_VPKUWUS, >ALTIVEC_BUILTIN_VEC_VRLB, >ALTIVEC_BUILTIN_VEC_VRLH, >ALTIVEC_BUILTIN_VEC_VRLW, >ALTIVEC_BUILTIN_VEC_VSLB, >ALTIVEC_BUILTIN_VEC_VSLH, >ALTIVEC_BUILTIN_VEC_VSLW, >ALTIVEC_BUILTIN_VEC_VSRAB, >ALTIVEC_BUILTIN_VEC_VSRAH, >ALTIVEC_BUILTIN_VEC_VSRAW, >ALTIVEC_BUILTIN_VEC_VSRB, >ALTIVEC_BUILTIN_VEC_VSRH, >ALTIVEC_BUILTIN_VEC_VSRW, >ALTIVEC_BUILTIN_VEC_VSUBFP, >ALTIVEC_BUILTIN_VEC_VSUBSBS, >ALTIVEC_BUILTIN_VEC_VSUBSHS, >ALTIVEC_BUILTIN_VEC_VSUBSWS, >ALTIVEC_BUILTIN_VEC_VSUBUBM, >ALTIVEC_BUILTIN_VEC_VSUBUBS, >ALTIVEC_BUILTIN_VEC_VSUBUHM, >ALTIVEC_BUILTIN_VEC_VSUBUHS, >ALTIVEC_BUILTIN_VEC_VSUBUWM, >ALTIVEC_BUILTIN_VEC_VSUBUWS, >ALTIVEC_BUILTIN_VEC_VSUM4SBS, >ALTIVEC_BUILTIN_VEC_VSUM4SHS, >ALTIVEC_BUILTIN_VEC_VSUM4UBS, >ALTIVEC_BUILTIN_VEC_XOR, > > >ALTIVEC_BUILTIN_VEC_ABS, >ALTIVEC_BUILTIN_VEC_ABSS, >ALTIVEC_BUILTIN_VEC_CEIL, >ALTIVEC_BUILTIN_VEC_EXPTE, >ALTIVEC_BUILTIN_VEC_FLOOR, >ALTIVEC_BUILTIN_VEC_LOGE, >ALTIVEC_BUILTIN_VEC_MTVSCR, >ALTIVEC_BUILTIN_VEC_NEARBYINT, >ALTIVEC_BUILTIN_VEC_RE, >ALTIVEC_BUILTIN_VEC_RINT, >ALTIVEC_BUILTIN_VEC_ROUND, >ALTIVEC_BUILTIN_VEC_RSQRT, >ALTIVEC_BUILTIN_VEC_RSQRTE, >ALTIVEC_BUILTIN_VEC_SQRT, >ALTIVEC_BUILTIN_VEC_TRUNC, >ALTIVEC_BUILTIN_VEC_UNPACKH, >ALTIVEC_BUILTIN_VEC_UNPACKL, >ALTIVEC_BUILTIN_VEC_VUPKHPX, >ALTIVEC_BUILTIN_VEC_VUPKHSB, >ALTIVEC_BUILTIN_VEC_VUPKHSH, >ALTIVEC_BUILTIN_VEC_VUPKLPX, >ALTIVEC_BUILTIN_VEC_VUPKLSB, >ALTIVEC_BUILTIN_VEC_VUPKLSH, > > >ALTIVEC_BUILTIN_VEC_VCMPEQ_P, >ALTIVEC_BUILTIN_VEC_VCMPGT_P, >ALTIVEC_BUILTIN_VEC_VCMPGE_P, > > >ALTIVEC_BUILTIN_VEC_CTF, >ALTIVEC_BUILTIN_VEC_CTS, >ALTIVEC_BUILTIN_VEC_CTU, >ALTIVEC_BUILTIN_VEC_EXTRACT, >ALTIVEC_BUILTIN_VEC_INSERT, >ALTIVEC_BUILTIN_VEC_LD, >ALTIVEC_BUILTIN_VEC_LDE, >ALTIVEC_BUILTIN_VEC_LDL, >ALTIVEC_BUILTIN_VEC_LVEBX, >ALTIVEC_BUILTIN_VEC_LVEHX, >ALTIVEC_BUILTIN_VEC_LVEWX, >ALTIVEC_BUILTIN_VEC_LVLX, >ALTIVEC_BUILTIN_VEC_LVLXL, >ALTIVEC_BUILTIN_VEC_LVRX, >ALTIVEC_BUILTIN_VEC_LVRXL, >ALTIVEC_BUILTIN_VEC_LVSL, >ALTIVEC_BUILTIN_VEC_LVSR, >ALTIVEC_BUILTIN_VEC_PROMOTE, >ALTIVEC_BUILTIN_VEC_SLD, >ALTIVEC_BUILTIN_VEC_SPLAT, >ALTIVEC_BUILTIN_VEC_SPLATS, >ALTIVEC_BUILTIN_VEC_ST, >ALTIVEC_BUILTIN_VEC_STE, >ALTIVEC_BUILTIN_VEC_STEP, >ALTIVEC_BUILTIN_VEC_STL, >ALTIVEC_BUILTIN_VEC_STVEBX, >ALTIVEC_BUILTIN_VEC_STVEHX, >ALTIVEC_BUILTIN_VEC_STVEWX, >ALTIVEC_BUILTIN_VEC_STVLX, >ALTIVEC_BUILTIN_VEC_STVLXL, >ALTIVEC_BUILTIN_VEC_STVRX, >ALTIVEC_BUILTIN_VEC_STVRXL, >ALTIVEC_BUILTIN_VEC_VCFSX, >ALTIVEC_BUILTIN_VEC_VCFUX, >ALTIVEC_BUILTIN_VEC_VSPLTB, >ALTIVEC_BUILTIN_VEC_VSPLTH, >ALTIVEC_BUILTIN_VEC_VSPLTW, > > >VSX_BUILTIN_XVMADDSP, >VSX_BUILTIN_XVMSUBSP, >VSX_BUILTIN_XVNMADDSP, >VSX_BUILTIN_XVNMSUBSP, > >VSX_BUILTIN_XVMADDDP, >VSX_BUILTIN_XVMSUBDP, >VSX_BUILTIN_XVNMADDDP, >VSX_BUILTIN_XVNMSUBDP, > >VSX_BUILTIN_XXSEL_2DI, >VSX_BUILTIN_XXSEL_2DF, >VSX_BUILTIN_XXSEL_4SF, >VSX_BUILTIN_XXSEL_4SI, >VSX_BUILTIN_XXSEL_8HI, >VSX_BUILTIN_XXSEL_16QI, >VSX_BUILTIN_XXSEL_2DI_UNS, >VSX_BUILTIN_XXSEL_4SI_UNS, >VSX_BUILTIN_XXSEL_8HI_UNS, >VSX_BUILTIN_XXSEL_16QI_UNS, > >VSX_BUILTIN_VPERM_2DI, >VSX_BUILTIN_VPERM_2DF, >VSX_BUILTIN_VPERM_4SF, >VSX_BUILTIN_VPERM_4SI, >VSX_BUILTIN_VPERM_8HI, >VSX_BUILTIN_VPERM_16QI, >VSX_BUILTIN_VPERM_2DI_UNS, >VSX_BUILTIN_VPERM_4SI_UNS, >VSX_BUILTIN_VPERM_8HI_UNS, >VSX_BUILTIN_VPERM_16QI_UNS, > >VSX_BUILTIN_XXPERMDI_2DF, >VSX_BUILTIN_XXPERMDI_2DI, >VSX_BUILTIN_XXPERMDI_4SF, >VSX_BUILTIN_XXPERMDI_4SI, >VSX_BUILTIN_XXPERMDI_8HI, >VSX_BUILTIN_XXPERMDI_16QI, >VSX_BUILTIN_SET_2DF, >VSX_BUILTIN_SET_2DI, >VSX_BUILTIN_XXSLDWI_2DI, >VSX_BUILTIN_XXSLDWI_2DF, >VSX_BUILTIN_XXSLDWI_4SF, >VSX_BUILTIN_XXSLDWI_4SI, >VSX_BUILTIN_XXSLDWI_8HI, >VSX_BUILTIN_XXSLDWI_16QI, > > >VSX_BUILTIN_XVADDDP, >VSX_BUILTIN_XVSUBDP, >VSX_BUILTIN_XVMULDP, >VSX_BUILTIN_XVDIVDP, >VSX_BUILTIN_RECIP_V2DF, >VSX_BUILTIN_XVMINDP, >VSX_BUILTIN_XVMAXDP, >VSX_BUILTIN_XVTDIVDP_FE, >VSX_BUILTIN_XVTDIVDP_FG, >VSX_BUILTIN_XVCMPEQDP, >VSX_BUILTIN_XVCMPGTDP, >VSX_BUILTIN_XVCMPGEDP, > >VSX_BUILTIN_XVADDSP, >VSX_BUILTIN_XVSUBSP, >VSX_BUILTIN_XVMULSP, >VSX_BUILTIN_XVDIVSP, >VSX_BUILTIN_RECIP_V4SF, >VSX_BUILTIN_XVMINSP, >VSX_BUILTIN_XVMAXSP, >VSX_BUILTIN_XVTDIVSP_FE, >VSX_BUILTIN_XVTDIVSP_FG, >VSX_BUILTIN_XVCMPEQSP, >VSX_BUILTIN_XVCMPGTSP, >VSX_BUILTIN_XVCMPGESP, > >VSX_BUILTIN_XSMINDP, >VSX_BUILTIN_XSMAXDP, >VSX_BUILTIN_XSTDIVDP_FE, >VSX_BUILTIN_XSTDIVDP_FG, >VSX_BUILTIN_CPSGNDP, >VSX_BUILTIN_CPSGNSP, > >VSX_BUILTIN_CONCAT_2DF, >VSX_BUILTIN_CONCAT_2DI, >VSX_BUILTIN_SPLAT_2DF, >VSX_BUILTIN_SPLAT_2DI, >VSX_BUILTIN_XXMRGHW_4SF, >VSX_BUILTIN_XXMRGHW_4SI, >VSX_BUILTIN_XXMRGLW_4SF, >VSX_BUILTIN_XXMRGLW_4SI, >VSX_BUILTIN_VEC_MERGEL_V2DF, >VSX_BUILTIN_VEC_MERGEL_V2DI, >VSX_BUILTIN_VEC_MERGEH_V2DF, >VSX_BUILTIN_VEC_MERGEH_V2DI, > > >VSX_BUILTIN_XVABSDP, >VSX_BUILTIN_XVNABSDP, >VSX_BUILTIN_XVABSSP, >VSX_BUILTIN_XVNABSSP, > > >VSX_BUILTIN_XVNEGDP, >VSX_BUILTIN_XVSQRTDP, >VSX_BUILTIN_RSQRT_2DF, >VSX_BUILTIN_XVRSQRTEDP, >VSX_BUILTIN_XVTSQRTDP_FE, >VSX_BUILTIN_XVTSQRTDP_FG, >VSX_BUILTIN_XVREDP, > >VSX_BUILTIN_XVNEGSP, >VSX_BUILTIN_XVSQRTSP, >VSX_BUILTIN_RSQRT_4SF, >VSX_BUILTIN_XVRSQRTESP, >VSX_BUILTIN_XVTSQRTSP_FE, >VSX_BUILTIN_XVTSQRTSP_FG, >VSX_BUILTIN_XVRESP, > >VSX_BUILTIN_XSCVDPSP, >VSX_BUILTIN_XSCVSPDP, >VSX_BUILTIN_XVCVDPSP, >VSX_BUILTIN_XVCVSPDP, >VSX_BUILTIN_XSTSQRTDP_FE, >VSX_BUILTIN_XSTSQRTDP_FG, > >VSX_BUILTIN_XVCVDPSXDS, >VSX_BUILTIN_XVCVDPUXDS, >VSX_BUILTIN_XVCVDPUXDS_UNS, >VSX_BUILTIN_XVCVSXDDP, >VSX_BUILTIN_XVCVUXDDP, >VSX_BUILTIN_XVCVUXDDP_UNS, > >VSX_BUILTIN_XVCVSPSXWS, >VSX_BUILTIN_XVCVSPUXWS, >VSX_BUILTIN_XVCVSXWSP, >VSX_BUILTIN_XVCVUXWSP, > >VSX_BUILTIN_XVCVDPSXWS, >VSX_BUILTIN_XVCVDPUXWS, >VSX_BUILTIN_XVCVSXWDP, >VSX_BUILTIN_XVCVUXWDP, >VSX_BUILTIN_XVRDPI, >VSX_BUILTIN_XVRDPIC, >VSX_BUILTIN_XVRDPIM, >VSX_BUILTIN_XVRDPIP, >VSX_BUILTIN_XVRDPIZ, > >VSX_BUILTIN_XVCVSPSXDS, >VSX_BUILTIN_XVCVSPUXDS, >VSX_BUILTIN_XVCVSXDSP, >VSX_BUILTIN_XVCVUXDSP, >VSX_BUILTIN_XVRSPI, >VSX_BUILTIN_XVRSPIC, >VSX_BUILTIN_XVRSPIM, >VSX_BUILTIN_XVRSPIP, >VSX_BUILTIN_XVRSPIZ, > >VSX_BUILTIN_XSRDPI, >VSX_BUILTIN_XSRDPIC, >VSX_BUILTIN_XSRDPIM, >VSX_BUILTIN_XSRDPIP, >VSX_BUILTIN_XSRDPIZ, > > >VSX_BUILTIN_XVCMPEQSP_P, >VSX_BUILTIN_XVCMPGESP_P, >VSX_BUILTIN_XVCMPGTSP_P, >VSX_BUILTIN_XVCMPEQDP_P, >VSX_BUILTIN_XVCMPGEDP_P, >VSX_BUILTIN_XVCMPGTDP_P, > > >VSX_BUILTIN_LXSDX, >VSX_BUILTIN_LXVD2X_V2DF, >VSX_BUILTIN_LXVD2X_V2DI, >VSX_BUILTIN_LXVDSX, >VSX_BUILTIN_LXVW4X_V4SF, >VSX_BUILTIN_LXVW4X_V4SI, >VSX_BUILTIN_LXVW4X_V8HI, >VSX_BUILTIN_LXVW4X_V16QI, >VSX_BUILTIN_STXSDX, >VSX_BUILTIN_STXVD2X_V2DF, >VSX_BUILTIN_STXVD2X_V2DI, >VSX_BUILTIN_STXVW4X_V4SF, >VSX_BUILTIN_STXVW4X_V4SI, >VSX_BUILTIN_STXVW4X_V8HI, >VSX_BUILTIN_STXVW4X_V16QI, >VSX_BUILTIN_XSABSDP, >VSX_BUILTIN_XSADDDP, >VSX_BUILTIN_XSCMPODP, >VSX_BUILTIN_XSCMPUDP, >VSX_BUILTIN_XSCVDPSXDS, >VSX_BUILTIN_XSCVDPSXWS, >VSX_BUILTIN_XSCVDPUXDS, >VSX_BUILTIN_XSCVDPUXWS, >VSX_BUILTIN_XSCVSXDDP, >VSX_BUILTIN_XSCVUXDDP, >VSX_BUILTIN_XSDIVDP, >VSX_BUILTIN_XSMADDADP, >VSX_BUILTIN_XSMADDMDP, >VSX_BUILTIN_XSMOVDP, >VSX_BUILTIN_XSMSUBADP, >VSX_BUILTIN_XSMSUBMDP, >VSX_BUILTIN_XSMULDP, >VSX_BUILTIN_XSNABSDP, >VSX_BUILTIN_XSNEGDP, >VSX_BUILTIN_XSNMADDADP, >VSX_BUILTIN_XSNMADDMDP, >VSX_BUILTIN_XSNMSUBADP, >VSX_BUILTIN_XSNMSUBMDP, >VSX_BUILTIN_XSSUBDP, >VSX_BUILTIN_VEC_INIT_V2DF, >VSX_BUILTIN_VEC_INIT_V2DI, >VSX_BUILTIN_VEC_SET_V2DF, >VSX_BUILTIN_VEC_SET_V2DI, >VSX_BUILTIN_VEC_EXT_V2DF, >VSX_BUILTIN_VEC_EXT_V2DI, > > > > > >VSX_BUILTIN_VEC_MSUB, >VSX_BUILTIN_VEC_NMADD, >VSX_BUILTIN_VEC_XXPERMDI, >VSX_BUILTIN_VEC_XXSLDWI, > > >VSX_BUILTIN_VEC_MUL, >VSX_BUILTIN_VEC_DIV, >VSX_BUILTIN_VEC_XXMRGHW, >VSX_BUILTIN_VEC_XXMRGLW, >VSX_BUILTIN_VEC_XXSPLTD, >VSX_BUILTIN_VEC_XXSPLTW, > > >VSX_BUILTIN_VEC_LD, >VSX_BUILTIN_VEC_ST, > > >PAIRED_BUILTIN_MSUB, >PAIRED_BUILTIN_MADD, >PAIRED_BUILTIN_MADDS0, >PAIRED_BUILTIN_MADDS1, >PAIRED_BUILTIN_NMSUB, >PAIRED_BUILTIN_NMADD, >PAIRED_BUILTIN_SUM0, >PAIRED_BUILTIN_SUM1, >PAIRED_BUILTIN_SELV2SF4, > > >PAIRED_BUILTIN_DIVV2SF3, >PAIRED_BUILTIN_ADDV2SF3, >PAIRED_BUILTIN_SUBV2SF3, >PAIRED_BUILTIN_MULV2SF3, >PAIRED_BUILTIN_MULS0, >PAIRED_BUILTIN_MULS1, >PAIRED_BUILTIN_MERGE00, >PAIRED_BUILTIN_MERGE01, >PAIRED_BUILTIN_MERGE10, >PAIRED_BUILTIN_MERGE11, > > >PAIRED_BUILTIN_ABSV2SF2, >PAIRED_BUILTIN_NABSV2SF2, >PAIRED_BUILTIN_NEGV2SF2, >PAIRED_BUILTIN_SQRTV2SF2, >PAIRED_BUILTIN_RESV2SF, > > >PAIRED_BUILTIN_STX, >PAIRED_BUILTIN_LX, > > >PAIRED_BUILTIN_CMPU0, >PAIRED_BUILTIN_CMPU1, > > > >SPE_BUILTIN_EVADDW, >SPE_BUILTIN_EVAND, >SPE_BUILTIN_EVANDC, >SPE_BUILTIN_EVDIVWS, >SPE_BUILTIN_EVDIVWU, >SPE_BUILTIN_EVEQV, >SPE_BUILTIN_EVFSADD, >SPE_BUILTIN_EVFSDIV, >SPE_BUILTIN_EVFSMUL, >SPE_BUILTIN_EVFSSUB, >SPE_BUILTIN_EVMERGEHI, >SPE_BUILTIN_EVMERGEHILO, >SPE_BUILTIN_EVMERGELO, >SPE_BUILTIN_EVMERGELOHI, >SPE_BUILTIN_EVMHEGSMFAA, >SPE_BUILTIN_EVMHEGSMFAN, >SPE_BUILTIN_EVMHEGSMIAA, >SPE_BUILTIN_EVMHEGSMIAN, >SPE_BUILTIN_EVMHEGUMIAA, >SPE_BUILTIN_EVMHEGUMIAN, >SPE_BUILTIN_EVMHESMF, >SPE_BUILTIN_EVMHESMFA, >SPE_BUILTIN_EVMHESMFAAW, >SPE_BUILTIN_EVMHESMFANW, >SPE_BUILTIN_EVMHESMI, >SPE_BUILTIN_EVMHESMIA, >SPE_BUILTIN_EVMHESMIAAW, >SPE_BUILTIN_EVMHESMIANW, >SPE_BUILTIN_EVMHESSF, >SPE_BUILTIN_EVMHESSFA, >SPE_BUILTIN_EVMHESSFAAW, >SPE_BUILTIN_EVMHESSFANW, >SPE_BUILTIN_EVMHESSIAAW, >SPE_BUILTIN_EVMHESSIANW, >SPE_BUILTIN_EVMHEUMI, >SPE_BUILTIN_EVMHEUMIA, >SPE_BUILTIN_EVMHEUMIAAW, >SPE_BUILTIN_EVMHEUMIANW, >SPE_BUILTIN_EVMHEUSIAAW, >SPE_BUILTIN_EVMHEUSIANW, >SPE_BUILTIN_EVMHOGSMFAA, >SPE_BUILTIN_EVMHOGSMFAN, >SPE_BUILTIN_EVMHOGSMIAA, >SPE_BUILTIN_EVMHOGSMIAN, >SPE_BUILTIN_EVMHOGUMIAA, >SPE_BUILTIN_EVMHOGUMIAN, >SPE_BUILTIN_EVMHOSMF, >SPE_BUILTIN_EVMHOSMFA, >SPE_BUILTIN_EVMHOSMFAAW, >SPE_BUILTIN_EVMHOSMFANW, >SPE_BUILTIN_EVMHOSMI, >SPE_BUILTIN_EVMHOSMIA, >SPE_BUILTIN_EVMHOSMIAAW, >SPE_BUILTIN_EVMHOSMIANW, >SPE_BUILTIN_EVMHOSSF, >SPE_BUILTIN_EVMHOSSFA, >SPE_BUILTIN_EVMHOSSFAAW, >SPE_BUILTIN_EVMHOSSFANW, >SPE_BUILTIN_EVMHOSSIAAW, >SPE_BUILTIN_EVMHOSSIANW, >SPE_BUILTIN_EVMHOUMI, >SPE_BUILTIN_EVMHOUMIA, >SPE_BUILTIN_EVMHOUMIAAW, >SPE_BUILTIN_EVMHOUMIANW, >SPE_BUILTIN_EVMHOUSIAAW, >SPE_BUILTIN_EVMHOUSIANW, >SPE_BUILTIN_EVMWHSMF, >SPE_BUILTIN_EVMWHSMFA, >SPE_BUILTIN_EVMWHSMI, >SPE_BUILTIN_EVMWHSMIA, >SPE_BUILTIN_EVMWHSSF, >SPE_BUILTIN_EVMWHSSFA, >SPE_BUILTIN_EVMWHUMI, >SPE_BUILTIN_EVMWHUMIA, >SPE_BUILTIN_EVMWLSMIAAW, >SPE_BUILTIN_EVMWLSMIANW, >SPE_BUILTIN_EVMWLSSIAAW, >SPE_BUILTIN_EVMWLSSIANW, >SPE_BUILTIN_EVMWLUMI, >SPE_BUILTIN_EVMWLUMIA, >SPE_BUILTIN_EVMWLUMIAAW, >SPE_BUILTIN_EVMWLUMIANW, >SPE_BUILTIN_EVMWLUSIAAW, >SPE_BUILTIN_EVMWLUSIANW, >SPE_BUILTIN_EVMWSMF, >SPE_BUILTIN_EVMWSMFA, >SPE_BUILTIN_EVMWSMFAA, >SPE_BUILTIN_EVMWSMFAN, >SPE_BUILTIN_EVMWSMI, >SPE_BUILTIN_EVMWSMIA, >SPE_BUILTIN_EVMWSMIAA, >SPE_BUILTIN_EVMWSMIAN, >SPE_BUILTIN_EVMWSSF, >SPE_BUILTIN_EVMWSSFA, >SPE_BUILTIN_EVMWSSFAA, >SPE_BUILTIN_EVMWSSFAN, >SPE_BUILTIN_EVMWUMI, >SPE_BUILTIN_EVMWUMIA, >SPE_BUILTIN_EVMWUMIAA, >SPE_BUILTIN_EVMWUMIAN, >SPE_BUILTIN_EVNAND, >SPE_BUILTIN_EVNOR, >SPE_BUILTIN_EVOR, >SPE_BUILTIN_EVORC, >SPE_BUILTIN_EVRLW, >SPE_BUILTIN_EVSLW, >SPE_BUILTIN_EVSRWS, >SPE_BUILTIN_EVSRWU, >SPE_BUILTIN_EVSUBFW, > > >SPE_BUILTIN_EVADDIW, > >SPE_BUILTIN_EVRLWI, >SPE_BUILTIN_EVSLWI, >SPE_BUILTIN_EVSRWIS, >SPE_BUILTIN_EVSRWIU, >SPE_BUILTIN_EVSUBIFW, >SPE_BUILTIN_EVMWHSSFAA, >SPE_BUILTIN_EVMWHSSMAA, >SPE_BUILTIN_EVMWHSMFAA, >SPE_BUILTIN_EVMWHSMIAA, >SPE_BUILTIN_EVMWHUSIAA, >SPE_BUILTIN_EVMWHUMIAA, >SPE_BUILTIN_EVMWHSSFAN, >SPE_BUILTIN_EVMWHSSIAN, >SPE_BUILTIN_EVMWHSMFAN, >SPE_BUILTIN_EVMWHSMIAN, >SPE_BUILTIN_EVMWHUSIAN, >SPE_BUILTIN_EVMWHUMIAN, >SPE_BUILTIN_EVMWHGSSFAA, >SPE_BUILTIN_EVMWHGSMFAA, >SPE_BUILTIN_EVMWHGSMIAA, >SPE_BUILTIN_EVMWHGUMIAA, >SPE_BUILTIN_EVMWHGSSFAN, >SPE_BUILTIN_EVMWHGSMFAN, >SPE_BUILTIN_EVMWHGSMIAN, >SPE_BUILTIN_EVMWHGUMIAN, >SPE_BUILTIN_BRINC, >SPE_BUILTIN_EVXOR, > > >SPE_BUILTIN_EVCMPEQ, >SPE_BUILTIN_EVCMPGTS, >SPE_BUILTIN_EVCMPGTU, >SPE_BUILTIN_EVCMPLTS, >SPE_BUILTIN_EVCMPLTU, >SPE_BUILTIN_EVFSCMPEQ, >SPE_BUILTIN_EVFSCMPGT, >SPE_BUILTIN_EVFSCMPLT, >SPE_BUILTIN_EVFSTSTEQ, >SPE_BUILTIN_EVFSTSTGT, >SPE_BUILTIN_EVFSTSTLT, > > >SPE_BUILTIN_EVSEL_CMPGTS, >SPE_BUILTIN_EVSEL_CMPGTU, >SPE_BUILTIN_EVSEL_CMPLTS, >SPE_BUILTIN_EVSEL_CMPLTU, >SPE_BUILTIN_EVSEL_CMPEQ, >SPE_BUILTIN_EVSEL_FSCMPGT, >SPE_BUILTIN_EVSEL_FSCMPLT, >SPE_BUILTIN_EVSEL_FSCMPEQ, >SPE_BUILTIN_EVSEL_FSTSTGT, >SPE_BUILTIN_EVSEL_FSTSTLT, >SPE_BUILTIN_EVSEL_FSTSTEQ, > >SPE_BUILTIN_EVABS, >SPE_BUILTIN_EVADDSMIAAW, >SPE_BUILTIN_EVADDSSIAAW, >SPE_BUILTIN_EVADDUMIAAW, >SPE_BUILTIN_EVADDUSIAAW, >SPE_BUILTIN_EVCNTLSW, >SPE_BUILTIN_EVCNTLZW, >SPE_BUILTIN_EVEXTSB, >SPE_BUILTIN_EVEXTSH, >SPE_BUILTIN_EVFSABS, >SPE_BUILTIN_EVFSCFSF, >SPE_BUILTIN_EVFSCFSI, >SPE_BUILTIN_EVFSCFUF, >SPE_BUILTIN_EVFSCFUI, >SPE_BUILTIN_EVFSCTSF, >SPE_BUILTIN_EVFSCTSI, >SPE_BUILTIN_EVFSCTSIZ, >SPE_BUILTIN_EVFSCTUF, >SPE_BUILTIN_EVFSCTUI, >SPE_BUILTIN_EVFSCTUIZ, >SPE_BUILTIN_EVFSNABS, >SPE_BUILTIN_EVFSNEG, >SPE_BUILTIN_EVMRA, >SPE_BUILTIN_EVNEG, >SPE_BUILTIN_EVRNDW, >SPE_BUILTIN_EVSUBFSMIAAW, >SPE_BUILTIN_EVSUBFSSIAAW, >SPE_BUILTIN_EVSUBFUMIAAW, >SPE_BUILTIN_EVSUBFUSIAAW, > > >SPE_BUILTIN_EVLDD, >SPE_BUILTIN_EVLDDX, >SPE_BUILTIN_EVLDH, >SPE_BUILTIN_EVLDHX, >SPE_BUILTIN_EVLDW, >SPE_BUILTIN_EVLDWX, >SPE_BUILTIN_EVLHHESPLAT, >SPE_BUILTIN_EVLHHESPLATX, >SPE_BUILTIN_EVLHHOSSPLAT, >SPE_BUILTIN_EVLHHOSSPLATX, >SPE_BUILTIN_EVLHHOUSPLAT, >SPE_BUILTIN_EVLHHOUSPLATX, >SPE_BUILTIN_EVLWHE, >SPE_BUILTIN_EVLWHEX, >SPE_BUILTIN_EVLWHOS, >SPE_BUILTIN_EVLWHOSX, >SPE_BUILTIN_EVLWHOU, >SPE_BUILTIN_EVLWHOUX, >SPE_BUILTIN_EVLWHSPLAT, >SPE_BUILTIN_EVLWHSPLATX, >SPE_BUILTIN_EVLWWSPLAT, >SPE_BUILTIN_EVLWWSPLATX, >SPE_BUILTIN_EVSPLATFI, >SPE_BUILTIN_EVSPLATI, >SPE_BUILTIN_EVSTDD, >SPE_BUILTIN_EVSTDDX, >SPE_BUILTIN_EVSTDH, >SPE_BUILTIN_EVSTDHX, >SPE_BUILTIN_EVSTDW, >SPE_BUILTIN_EVSTDWX, >SPE_BUILTIN_EVSTWHE, >SPE_BUILTIN_EVSTWHEX, >SPE_BUILTIN_EVSTWHO, >SPE_BUILTIN_EVSTWHOX, >SPE_BUILTIN_EVSTWWE, >SPE_BUILTIN_EVSTWWEX, >SPE_BUILTIN_EVSTWWO, >SPE_BUILTIN_EVSTWWOX, >SPE_BUILTIN_MFSPEFSCR, >SPE_BUILTIN_MTSPEFSCR, > > > >POWER7_BUILTIN_BPERMD, > > > >RS6000_BUILTIN_RECIP, > > >RS6000_BUILTIN_RECIPF, > > >RS6000_BUILTIN_RSQRT, > > >RS6000_BUILTIN_RSQRTF, > > >RS6000_BUILTIN_BSWAP_HI, > > > >RS6000_BUILTIN_CFSTRING, ># 2378 "../../gcc/config/rs6000/rs6000.h" 2 > > RS6000_BUILTIN_COUNT >}; ># 2393 "../../gcc/config/rs6000/rs6000.h" >enum rs6000_builtin_type_index >{ > RS6000_BTI_NOT_OPAQUE, > RS6000_BTI_opaque_V2SI, > RS6000_BTI_opaque_V2SF, > RS6000_BTI_opaque_p_V2SI, > RS6000_BTI_opaque_V4SI, > RS6000_BTI_V16QI, > RS6000_BTI_V2SI, > RS6000_BTI_V2SF, > RS6000_BTI_V2DI, > RS6000_BTI_V2DF, > RS6000_BTI_V4HI, > RS6000_BTI_V4SI, > RS6000_BTI_V4SF, > RS6000_BTI_V8HI, > RS6000_BTI_unsigned_V16QI, > RS6000_BTI_unsigned_V8HI, > RS6000_BTI_unsigned_V4SI, > RS6000_BTI_unsigned_V2DI, > RS6000_BTI_bool_char, > RS6000_BTI_bool_short, > RS6000_BTI_bool_int, > RS6000_BTI_bool_long, > RS6000_BTI_pixel, > RS6000_BTI_bool_V16QI, > RS6000_BTI_bool_V8HI, > RS6000_BTI_bool_V4SI, > RS6000_BTI_bool_V2DI, > RS6000_BTI_pixel_V8HI, > RS6000_BTI_long, > RS6000_BTI_unsigned_long, > RS6000_BTI_long_long, > RS6000_BTI_unsigned_long_long, > RS6000_BTI_INTQI, > RS6000_BTI_UINTQI, > RS6000_BTI_INTHI, > RS6000_BTI_UINTHI, > RS6000_BTI_INTSI, > RS6000_BTI_UINTSI, > RS6000_BTI_INTDI, > RS6000_BTI_UINTDI, > RS6000_BTI_float, > RS6000_BTI_double, > RS6000_BTI_void, > RS6000_BTI_MAX >}; ># 2486 "../../gcc/config/rs6000/rs6000.h" >extern tree rs6000_builtin_types[RS6000_BTI_MAX]; >extern tree rs6000_builtin_decls[RS6000_BUILTIN_COUNT]; ># 24 "./tm.h" 2 ># 1 "../../gcc/config/linux-android.h" 1 ># 25 "./tm.h" 2 ># 1 "../../gcc/config/dbxelf.h" 1 ># 26 "./tm.h" 2 ># 1 "../../gcc/config/elfos.h" 1 ># 27 "./tm.h" 2 ># 1 "../../gcc/config/freebsd-spec.h" 1 ># 28 "./tm.h" 2 ># 1 "../../gcc/config/rs6000/sysv4.h" 1 ># 486 "../../gcc/config/rs6000/sysv4.h" >extern int fixuplabelno; ># 29 "./tm.h" 2 ># 1 "../../gcc/config/rs6000/linux64.h" 1 ># 59 "../../gcc/config/rs6000/linux64.h" >extern int dot_symbols; ># 30 "./tm.h" 2 ># 1 "../../gcc/config/glibc-stdint.h" 1 ># 31 "./tm.h" 2 ># 1 "../../gcc/config/rs6000/option-defaults.h" 1 ># 32 "./tm.h" 2 ># 1 "../../gcc/config/initfini-array.h" 1 ># 33 "./tm.h" 2 > > ># 1 "./insn-flags.h" 1 ># 1282 "./insn-flags.h" >static __inline__ rtx gen_adddi3_high (rtx, rtx, rtx); >static __inline__ rtx >gen_adddi3_high(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_movdf_low_si (rtx, rtx, rtx); >static __inline__ rtx >gen_movdf_low_si(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_movdf_low_di (rtx, rtx, rtx); >static __inline__ rtx >gen_movdf_low_di(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_movdf_low_st_si (rtx, rtx, rtx); >static __inline__ rtx >gen_movdf_low_st_si(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_movdf_low_st_di (rtx, rtx, rtx); >static __inline__ rtx >gen_movdf_low_st_di(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_movsf_low_si (rtx, rtx, rtx); >static __inline__ rtx >gen_movsf_low_si(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_movsf_low_di (rtx, rtx, rtx); >static __inline__ rtx >gen_movsf_low_di(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_movsf_low_st_si (rtx, rtx, rtx); >static __inline__ rtx >gen_movsf_low_st_si(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_movsf_low_st_di (rtx, rtx, rtx); >static __inline__ rtx >gen_movsf_low_st_di(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_movdi_low (rtx, rtx, rtx); >static __inline__ rtx >gen_movdi_low(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_movsi_low_st (rtx, rtx, rtx); >static __inline__ rtx >gen_movsi_low_st(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_movdi_low_st (rtx, rtx, rtx); >static __inline__ rtx >gen_movdi_low_st(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_macho_high_si (rtx, rtx); >static __inline__ rtx >gen_macho_high_si(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_macho_high_di (rtx, rtx); >static __inline__ rtx >gen_macho_high_di(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_macho_low_si (rtx, rtx, rtx); >static __inline__ rtx >gen_macho_low_si(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_macho_low_di (rtx, rtx, rtx); >static __inline__ rtx >gen_macho_low_di(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_load_macho_picbase_si (rtx); >extern rtx gen_load_macho_picbase_di (rtx); >extern rtx gen_macho_correct_pic_si (rtx, rtx, rtx, rtx); >extern rtx gen_macho_correct_pic_di (rtx, rtx, rtx, rtx); >extern rtx gen_extendqidi2 (rtx, rtx); >extern rtx gen_extendqisi2_ppc (rtx, rtx); >extern rtx gen_extendqihi2_ppc (rtx, rtx); >extern rtx gen_dlmzb (rtx, rtx, rtx, rtx); >static __inline__ rtx gen_addsi3_high (rtx, rtx, rtx); >static __inline__ rtx >gen_addsi3_high(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_one_cmplsi2 (rtx, rtx); >extern rtx gen_one_cmpldi2 (rtx, rtx); >extern rtx gen_abssi2_isel (rtx, rtx); >extern rtx gen_absdi2_isel (rtx, rtx); >extern rtx gen_nabssi2_isel (rtx, rtx); >extern rtx gen_nabsdi2_isel (rtx, rtx); >extern rtx gen_abssi2_nopower (rtx, rtx); >extern rtx gen_clzsi2 (rtx, rtx); >extern rtx gen_clzdi2 (rtx, rtx); >extern rtx gen_popcntbsi2 (rtx, rtx); >extern rtx gen_popcntbdi2 (rtx, rtx); >extern rtx gen_popcntdsi2 (rtx, rtx); >extern rtx gen_popcntddi2 (rtx, rtx); >extern rtx gen_paritysi2_cmpb (rtx, rtx); >extern rtx gen_paritydi2_cmpb (rtx, rtx); >extern rtx gen_bswaphi2_internal (rtx, rtx); >extern rtx gen_bswapdi2_32bit (rtx, rtx); >static __inline__ rtx gen_mulsi3_mq (rtx, rtx, rtx); >static __inline__ rtx >gen_mulsi3_mq(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_mulsi3_no_mq (rtx, rtx, rtx); >static __inline__ rtx gen_udivsi3_mq (rtx, rtx, rtx); >static __inline__ rtx >gen_udivsi3_mq(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_divsi3_mq (rtx, rtx, rtx); >static __inline__ rtx >gen_divsi3_mq(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_mulh_call (void); >extern rtx gen_mull_call (void); >extern rtx gen_divss_call (void); >extern rtx gen_divus_call (void); >extern rtx gen_quoss_call (void); >extern rtx gen_quous_call (void); >extern rtx gen_andsi3_mc (rtx, rtx, rtx); >extern rtx gen_andsi3_nomc (rtx, rtx, rtx); >extern rtx gen_andsi3_internal0_nomc (rtx, rtx, rtx); >extern rtx gen_insvsi (rtx, rtx, rtx, rtx); >extern rtx gen_insvdi (rtx, rtx, rtx, rtx); >extern rtx gen_extzvsi (rtx, rtx, rtx, rtx); >extern rtx gen_extzvdi (rtx, rtx, rtx, rtx); >extern rtx gen_rotlsi3 (rtx, rtx, rtx); >static __inline__ rtx gen_ashlsi3_power (rtx, rtx, rtx); >static __inline__ rtx >gen_ashlsi3_power(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_ashlsi3_no_power (rtx, rtx, rtx); >extern rtx gen_rlwinm (rtx, rtx, rtx, rtx); >static __inline__ rtx gen_lshrsi3_power (rtx, rtx, rtx); >static __inline__ rtx >gen_lshrsi3_power(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_lshrsi3_no_power (rtx, rtx, rtx); >static __inline__ rtx gen_ashrsi3_power (rtx, rtx, rtx); >static __inline__ rtx >gen_ashrsi3_power(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_ashrsi3_no_power (rtx, rtx, rtx); >extern rtx gen_aux_truncdfsf2 (rtx, rtx); >extern rtx gen_fres (rtx, rtx); >extern rtx gen_copysignsf3_fcpsgn (rtx, rtx, rtx); >extern rtx gen_copysigndf3_fcpsgn (rtx, rtx, rtx); >extern rtx gen_isel_signed_si (rtx, rtx, rtx, rtx, rtx); >extern rtx gen_isel_signed_di (rtx, rtx, rtx, rtx, rtx); >extern rtx gen_isel_unsigned_si (rtx, rtx, rtx, rtx, rtx); >extern rtx gen_isel_unsigned_di (rtx, rtx, rtx, rtx, rtx); >extern rtx gen_lfiwax (rtx, rtx); >extern rtx gen_floatsisf2_lfiwax (rtx, rtx); >extern rtx gen_floatsidf2_lfiwax (rtx, rtx); >extern rtx gen_floatsisf2_lfiwax_mem (rtx, rtx); >extern rtx gen_floatsidf2_lfiwax_mem (rtx, rtx); >extern rtx gen_lfiwzx (rtx, rtx); >extern rtx gen_floatunssisf2_lfiwzx (rtx, rtx); >extern rtx gen_floatunssidf2_lfiwzx (rtx, rtx); >extern rtx gen_floatunssisf2_lfiwzx_mem (rtx, rtx); >extern rtx gen_floatunssidf2_lfiwzx_mem (rtx, rtx); >extern rtx gen_fix_truncsfsi2_stfiwx (rtx, rtx); >extern rtx gen_fix_truncdfsi2_stfiwx (rtx, rtx); >extern rtx gen_fix_truncsfsi2_internal (rtx, rtx, rtx, rtx); >extern rtx gen_fix_truncdfsi2_internal (rtx, rtx, rtx, rtx); >extern rtx gen_fixuns_truncsfsi2_stfiwx (rtx, rtx); >extern rtx gen_fixuns_truncdfsi2_stfiwx (rtx, rtx); >extern rtx gen_fctiwz_sf (rtx, rtx); >extern rtx gen_fctiwz_df (rtx, rtx); >extern rtx gen_fctiwuz_sf (rtx, rtx); >extern rtx gen_fctiwuz_df (rtx, rtx); >extern rtx gen_lrintsfdi2 (rtx, rtx); >extern rtx gen_lrintdfdi2 (rtx, rtx); >extern rtx gen_roundsf2 (rtx, rtx); >extern rtx gen_rounddf2 (rtx, rtx); >extern rtx gen_stfiwx (rtx, rtx); >extern rtx gen_floatdisf2_fcfids (rtx, rtx); >extern rtx gen_floatdisf2_internal1 (rtx, rtx); >extern rtx gen_floatunsdisf2_fcfidus (rtx, rtx); >static __inline__ rtx gen_mulsidi3_mq (rtx, rtx, rtx); >static __inline__ rtx >gen_mulsidi3_mq(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_umulsidi3_mq (rtx, rtx, rtx); >static __inline__ rtx >gen_umulsidi3_mq(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_smulsi3_highpart_mq (rtx, rtx, rtx); >static __inline__ rtx >gen_smulsi3_highpart_mq(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_umulsi3_highpart_mq (rtx, rtx, rtx); >static __inline__ rtx >gen_umulsi3_highpart_mq(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_ashldi3_power (rtx, rtx, rtx); >static __inline__ rtx >gen_ashldi3_power(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_lshrdi3_power (rtx, rtx, rtx); >static __inline__ rtx >gen_lshrdi3_power(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_ashrdi3_power (rtx, rtx, rtx); >static __inline__ rtx >gen_ashrdi3_power(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_ashrdi3_no_power (rtx, rtx, rtx); >extern rtx gen_absdi2_internal (rtx, rtx); >extern rtx gen_muldi3 (rtx, rtx, rtx); >extern rtx gen_smuldi3_highpart (rtx, rtx, rtx); >extern rtx gen_umuldi3_highpart (rtx, rtx, rtx); >extern rtx gen_rotldi3 (rtx, rtx, rtx); >extern rtx gen_ashldi3_internal5 (rtx, rtx, rtx, rtx); >extern rtx gen_ashldi3_internal8 (rtx, rtx, rtx, rtx); >extern rtx gen_anddi3_mc (rtx, rtx, rtx); >extern rtx gen_anddi3_nomc (rtx, rtx, rtx); >static __inline__ rtx gen_movsi_low (rtx, rtx, rtx); >static __inline__ rtx >gen_movsi_low(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_trunctfdf2_internal1 (rtx, rtx); >extern rtx gen_trunctfdf2_internal2 (rtx, rtx); >extern rtx gen_trunctfsf2_fprs (rtx, rtx); >extern rtx gen_fix_trunc_helper (rtx, rtx, rtx); >extern rtx gen_negtf2_internal (rtx, rtx); >extern rtx gen_movdi_si_update (rtx, rtx, rtx, rtx); >extern rtx gen_movdi_di_update (rtx, rtx, rtx, rtx); >extern rtx gen_movdi_si_update_stack (rtx, rtx, rtx, rtx); >extern rtx gen_movdi_di_update_stack (rtx, rtx, rtx, rtx); >extern rtx gen_movsi_update (rtx, rtx, rtx, rtx); >extern rtx gen_movsi_update_stack (rtx, rtx, rtx, rtx); >extern rtx gen_tls_gd_aix32 (rtx, rtx, rtx, rtx, rtx); >extern rtx gen_tls_gd_aix64 (rtx, rtx, rtx, rtx, rtx); >extern rtx gen_tls_gd_sysvsi (rtx, rtx, rtx, rtx, rtx); >extern rtx gen_tls_gd_sysvdi (rtx, rtx, rtx, rtx, rtx); >extern rtx gen_tls_ld_aix32 (rtx, rtx, rtx, rtx); >extern rtx gen_tls_ld_aix64 (rtx, rtx, rtx, rtx); >extern rtx gen_tls_ld_sysvsi (rtx, rtx, rtx, rtx); >extern rtx gen_tls_ld_sysvdi (rtx, rtx, rtx, rtx); >extern rtx gen_tls_dtprel_32 (rtx, rtx, rtx); >extern rtx gen_tls_dtprel_64 (rtx, rtx, rtx); >extern rtx gen_tls_dtprel_ha_32 (rtx, rtx, rtx); >extern rtx gen_tls_dtprel_ha_64 (rtx, rtx, rtx); >extern rtx gen_tls_dtprel_lo_32 (rtx, rtx, rtx); >extern rtx gen_tls_dtprel_lo_64 (rtx, rtx, rtx); >extern rtx gen_tls_got_dtprel_32 (rtx, rtx, rtx); >extern rtx gen_tls_got_dtprel_64 (rtx, rtx, rtx); >extern rtx gen_tls_tprel_32 (rtx, rtx, rtx); >extern rtx gen_tls_tprel_64 (rtx, rtx, rtx); >extern rtx gen_tls_tprel_ha_32 (rtx, rtx, rtx); >extern rtx gen_tls_tprel_ha_64 (rtx, rtx, rtx); >extern rtx gen_tls_tprel_lo_32 (rtx, rtx, rtx); >extern rtx gen_tls_tprel_lo_64 (rtx, rtx, rtx); >extern rtx gen_tls_got_tprel_32 (rtx, rtx, rtx); >extern rtx gen_tls_got_tprel_64 (rtx, rtx, rtx); >extern rtx gen_tls_tls_32 (rtx, rtx, rtx); >extern rtx gen_tls_tls_64 (rtx, rtx, rtx); >extern rtx gen_load_toc_aix_si (rtx); >extern rtx gen_load_toc_aix_di (rtx); >extern rtx gen_load_toc_v4_pic_si (void); >extern rtx gen_load_toc_v4_PIC_1_normal (rtx); >static __inline__ rtx gen_load_toc_v4_PIC_1_476 (rtx); >static __inline__ rtx >gen_load_toc_v4_PIC_1_476(rtx a __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_load_toc_v4_PIC_1b_normal (rtx, rtx); >static __inline__ rtx gen_load_toc_v4_PIC_1b_476 (rtx, rtx); >static __inline__ rtx >gen_load_toc_v4_PIC_1b_476(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_load_toc_v4_PIC_2 (rtx, rtx, rtx, rtx); >extern rtx gen_load_toc_v4_PIC_3b (rtx, rtx, rtx, rtx); >extern rtx gen_load_toc_v4_PIC_3c (rtx, rtx, rtx, rtx); >extern rtx gen_elf_high (rtx, rtx); >extern rtx gen_elf_low (rtx, rtx, rtx); >extern rtx gen_largetoc_high (rtx, rtx, rtx); >extern rtx gen_largetoc_low (rtx, rtx, rtx); >extern rtx gen_call_indirect_aix32bit (rtx, rtx, rtx, rtx); >extern rtx gen_call_indirect_aix64bit (rtx, rtx, rtx, rtx); >extern rtx gen_call_indirect_aix32bit_nor11 (rtx, rtx, rtx, rtx); >extern rtx gen_call_indirect_aix64bit_nor11 (rtx, rtx, rtx, rtx); >extern rtx gen_call_value_indirect_aix32bit (rtx, rtx, rtx, rtx, rtx); >extern rtx gen_call_value_indirect_aix64bit (rtx, rtx, rtx, rtx, rtx); >extern rtx gen_call_value_indirect_aix32bit_nor11 (rtx, rtx, rtx, rtx, rtx); >extern rtx gen_call_value_indirect_aix64bit_nor11 (rtx, rtx, rtx, rtx, rtx); >extern rtx gen_blockage (void); >extern rtx gen_probe_stack (rtx); >extern rtx gen_probe_stack_rangesi (rtx, rtx, rtx); >extern rtx gen_probe_stack_rangedi (rtx, rtx, rtx); >extern rtx gen_stack_protect_setsi (rtx, rtx); >extern rtx gen_stack_protect_setdi (rtx, rtx); >extern rtx gen_stack_protect_testsi (rtx, rtx, rtx); >extern rtx gen_stack_protect_testdi (rtx, rtx, rtx); >static __inline__ rtx gen_move_from_CR_gt_bit (rtx, rtx); >static __inline__ rtx >gen_move_from_CR_gt_bit(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_move_from_CR_ov_bit (rtx, rtx); >extern rtx gen_jump (rtx); >extern rtx gen_return (void); >extern rtx gen_simple_return (void); >extern rtx gen_nop (void); >extern rtx gen_trap (void); >extern rtx gen_movesi_from_cr (rtx); >extern rtx gen_stack_tie (rtx); >extern rtx gen_frame_tie (rtx, rtx); >extern rtx gen_eh_set_lr_si (rtx); >extern rtx gen_eh_set_lr_di (rtx); >extern rtx gen_prefetch (rtx, rtx, rtx); >extern rtx gen_bpermd_si (rtx, rtx, rtx); >extern rtx gen_bpermd_di (rtx, rtx, rtx); >extern rtx gen_isync (void); >extern rtx gen_loadsync (rtx); >extern rtx gen_load_lockedsi (rtx, rtx); >extern rtx gen_load_lockeddi (rtx, rtx); >extern rtx gen_store_conditionalsi (rtx, rtx, rtx); >extern rtx gen_store_conditionaldi (rtx, rtx, rtx); >extern rtx gen_vsx_fredf2 (rtx, rtx); >extern rtx gen_vsx_frev4sf2 (rtx, rtx); >extern rtx gen_vsx_frev2df2 (rtx, rtx); >extern rtx gen_vsx_nabsdf2 (rtx, rtx); >extern rtx gen_vsx_nabsv4sf2 (rtx, rtx); >extern rtx gen_vsx_nabsv2df2 (rtx, rtx); >extern rtx gen_vsx_smaxdf3 (rtx, rtx, rtx); >extern rtx gen_vsx_smaxv4sf3 (rtx, rtx, rtx); >extern rtx gen_vsx_smaxv2df3 (rtx, rtx, rtx); >extern rtx gen_vsx_eqv4sf (rtx, rtx, rtx); >extern rtx gen_vsx_eqv2df (rtx, rtx, rtx); >extern rtx gen_vsx_gtv4sf (rtx, rtx, rtx); >extern rtx gen_vsx_gtv2df (rtx, rtx, rtx); >extern rtx gen_vsx_copysigndf3 (rtx, rtx, rtx); >extern rtx gen_vsx_copysignv4sf3 (rtx, rtx, rtx); >extern rtx gen_vsx_copysignv2df3 (rtx, rtx, rtx); >extern rtx gen_vsx_floatdidf2 (rtx, rtx); >extern rtx gen_vsx_floatv4siv4sf2 (rtx, rtx); >extern rtx gen_vsx_floatv2div2df2 (rtx, rtx); >extern rtx gen_vsx_floatunsdidf2 (rtx, rtx); >extern rtx gen_vsx_floatunsv4siv4sf2 (rtx, rtx); >extern rtx gen_vsx_floatunsv2div2df2 (rtx, rtx); >extern rtx gen_vsx_fix_truncdfdi2 (rtx, rtx); >extern rtx gen_vsx_fix_truncv4sfv4si2 (rtx, rtx); >extern rtx gen_vsx_fix_truncv2dfv2di2 (rtx, rtx); >extern rtx gen_vsx_fixuns_truncdfdi2 (rtx, rtx); >extern rtx gen_vsx_fixuns_truncv4sfv4si2 (rtx, rtx); >extern rtx gen_vsx_fixuns_truncv2dfv2di2 (rtx, rtx); >extern rtx gen_vsx_xsrdpi (rtx, rtx); >extern rtx gen_vsx_xvrspi (rtx, rtx); >extern rtx gen_vsx_xvrdpi (rtx, rtx); >extern rtx gen_vsx_xsrdpic (rtx, rtx); >extern rtx gen_vsx_xvrspic (rtx, rtx); >extern rtx gen_vsx_xvrdpic (rtx, rtx); >extern rtx gen_vsx_btruncdf2 (rtx, rtx); >extern rtx gen_vsx_btruncv4sf2 (rtx, rtx); >extern rtx gen_vsx_btruncv2df2 (rtx, rtx); >extern rtx gen_vsx_floordf2 (rtx, rtx); >extern rtx gen_vsx_floorv4sf2 (rtx, rtx); >extern rtx gen_vsx_floorv2df2 (rtx, rtx); >extern rtx gen_vsx_ceildf2 (rtx, rtx); >extern rtx gen_vsx_ceilv4sf2 (rtx, rtx); >extern rtx gen_vsx_ceilv2df2 (rtx, rtx); >extern rtx gen_vsx_xscvdpsp (rtx, rtx); >extern rtx gen_vsx_xvcvspdp (rtx, rtx); >extern rtx gen_vsx_xvcvdpsp (rtx, rtx); >extern rtx gen_vsx_xscvspdp (rtx, rtx); >extern rtx gen_vsx_xscvdpsp_scalar (rtx, rtx); >extern rtx gen_vsx_xscvspdp_scalar2 (rtx, rtx); >extern rtx gen_vsx_xvcvdpsxws (rtx, rtx); >extern rtx gen_vsx_xvcvdpuxws (rtx, rtx); >extern rtx gen_vsx_xvcvsxdsp (rtx, rtx); >extern rtx gen_vsx_xvcvuxdsp (rtx, rtx); >extern rtx gen_vsx_xvcvsxwdp (rtx, rtx); >extern rtx gen_vsx_xvcvuxwdp (rtx, rtx); >extern rtx gen_vsx_xvcvspsxds (rtx, rtx); >extern rtx gen_vsx_xvcvspuxds (rtx, rtx); >extern rtx gen_vsx_concat_v2df (rtx, rtx, rtx); >extern rtx gen_vsx_concat_v2di (rtx, rtx, rtx); >extern rtx gen_vsx_concat_v2sf (rtx, rtx, rtx); >extern rtx gen_vsx_set_v2df (rtx, rtx, rtx, rtx); >extern rtx gen_vsx_set_v2di (rtx, rtx, rtx, rtx); >extern rtx gen_vsx_extract_v2df (rtx, rtx, rtx); >extern rtx gen_vsx_extract_v2di (rtx, rtx, rtx); >extern rtx gen_vsx_extract_v4sf (rtx, rtx, rtx); >extern rtx gen_vsx_xxpermdi2_v2df_1 (rtx, rtx, rtx, rtx, rtx); >extern rtx gen_vsx_xxpermdi2_v2di_1 (rtx, rtx, rtx, rtx, rtx); >extern rtx gen_vsx_splat_v2df (rtx, rtx); >extern rtx gen_vsx_splat_v2di (rtx, rtx); >extern rtx gen_vsx_xxspltw_v4sf (rtx, rtx, rtx); >extern rtx gen_vsx_xxspltw_v4si (rtx, rtx, rtx); >extern rtx gen_vsx_xxmrghw_v4sf (rtx, rtx, rtx); >extern rtx gen_vsx_xxmrghw_v4si (rtx, rtx, rtx); >extern rtx gen_vsx_xxmrglw_v4sf (rtx, rtx, rtx); >extern rtx gen_vsx_xxmrglw_v4si (rtx, rtx, rtx); >extern rtx gen_vsx_xxsldwi_v16qi (rtx, rtx, rtx, rtx); >extern rtx gen_vsx_xxsldwi_v8hi (rtx, rtx, rtx, rtx); >extern rtx gen_vsx_xxsldwi_v4si (rtx, rtx, rtx, rtx); >extern rtx gen_vsx_xxsldwi_v2di (rtx, rtx, rtx, rtx); >extern rtx gen_vsx_xxsldwi_v4sf (rtx, rtx, rtx, rtx); >extern rtx gen_vsx_xxsldwi_v2df (rtx, rtx, rtx, rtx); >extern rtx gen_vsx_xxsldwi_ti (rtx, rtx, rtx, rtx); >extern rtx gen_get_vrsave_internal (rtx); >extern rtx gen_addv4si3 (rtx, rtx, rtx); >extern rtx gen_addv8hi3 (rtx, rtx, rtx); >extern rtx gen_addv16qi3 (rtx, rtx, rtx); >extern rtx gen_altivec_vaddcuw (rtx, rtx, rtx); >extern rtx gen_altivec_vadduws (rtx, rtx, rtx); >extern rtx gen_altivec_vadduhs (rtx, rtx, rtx); >extern rtx gen_altivec_vaddubs (rtx, rtx, rtx); >extern rtx gen_altivec_vaddsws (rtx, rtx, rtx); >extern rtx gen_altivec_vaddshs (rtx, rtx, rtx); >extern rtx gen_altivec_vaddsbs (rtx, rtx, rtx); >extern rtx gen_subv4si3 (rtx, rtx, rtx); >extern rtx gen_subv8hi3 (rtx, rtx, rtx); >extern rtx gen_subv16qi3 (rtx, rtx, rtx); >extern rtx gen_altivec_vsubcuw (rtx, rtx, rtx); >extern rtx gen_altivec_vsubuws (rtx, rtx, rtx); >extern rtx gen_altivec_vsubuhs (rtx, rtx, rtx); >extern rtx gen_altivec_vsububs (rtx, rtx, rtx); >extern rtx gen_altivec_vsubsws (rtx, rtx, rtx); >extern rtx gen_altivec_vsubshs (rtx, rtx, rtx); >extern rtx gen_altivec_vsubsbs (rtx, rtx, rtx); >extern rtx gen_altivec_vavguw (rtx, rtx, rtx); >extern rtx gen_altivec_vavguh (rtx, rtx, rtx); >extern rtx gen_altivec_vavgub (rtx, rtx, rtx); >extern rtx gen_altivec_vavgsw (rtx, rtx, rtx); >extern rtx gen_altivec_vavgsh (rtx, rtx, rtx); >extern rtx gen_altivec_vavgsb (rtx, rtx, rtx); >extern rtx gen_altivec_vcmpbfp (rtx, rtx, rtx); >extern rtx gen_altivec_vmsumuhm (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vmsumubm (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vmsummhm (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vmsummbm (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vmsumshm (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vmsumuhs (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vmsumshs (rtx, rtx, rtx, rtx); >extern rtx gen_umaxv4si3 (rtx, rtx, rtx); >extern rtx gen_umaxv8hi3 (rtx, rtx, rtx); >extern rtx gen_umaxv16qi3 (rtx, rtx, rtx); >extern rtx gen_smaxv4si3 (rtx, rtx, rtx); >extern rtx gen_smaxv8hi3 (rtx, rtx, rtx); >extern rtx gen_smaxv16qi3 (rtx, rtx, rtx); >extern rtx gen_uminv4si3 (rtx, rtx, rtx); >extern rtx gen_uminv8hi3 (rtx, rtx, rtx); >extern rtx gen_uminv16qi3 (rtx, rtx, rtx); >extern rtx gen_sminv4si3 (rtx, rtx, rtx); >extern rtx gen_sminv8hi3 (rtx, rtx, rtx); >extern rtx gen_sminv16qi3 (rtx, rtx, rtx); >extern rtx gen_altivec_vmhaddshs (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vmhraddshs (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vmladduhm (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vmrghb (rtx, rtx, rtx); >extern rtx gen_altivec_vmrghh (rtx, rtx, rtx); >extern rtx gen_altivec_vmrghw (rtx, rtx, rtx); >extern rtx gen_altivec_vmrglb (rtx, rtx, rtx); >extern rtx gen_altivec_vmrglh (rtx, rtx, rtx); >extern rtx gen_altivec_vmrglw (rtx, rtx, rtx); >extern rtx gen_altivec_vmuleub (rtx, rtx, rtx); >extern rtx gen_altivec_vmulesb (rtx, rtx, rtx); >extern rtx gen_altivec_vmuleuh (rtx, rtx, rtx); >extern rtx gen_altivec_vmulesh (rtx, rtx, rtx); >extern rtx gen_altivec_vmuloub (rtx, rtx, rtx); >extern rtx gen_altivec_vmulosb (rtx, rtx, rtx); >extern rtx gen_altivec_vmulouh (rtx, rtx, rtx); >extern rtx gen_altivec_vmulosh (rtx, rtx, rtx); >extern rtx gen_altivec_vpkuhum (rtx, rtx, rtx); >extern rtx gen_altivec_vpkuwum (rtx, rtx, rtx); >extern rtx gen_altivec_vpkpx (rtx, rtx, rtx); >extern rtx gen_altivec_vpkshss (rtx, rtx, rtx); >extern rtx gen_altivec_vpkswss (rtx, rtx, rtx); >extern rtx gen_altivec_vpkuhus (rtx, rtx, rtx); >extern rtx gen_altivec_vpkshus (rtx, rtx, rtx); >extern rtx gen_altivec_vpkuwus (rtx, rtx, rtx); >extern rtx gen_altivec_vpkswus (rtx, rtx, rtx); >extern rtx gen_altivec_vsl (rtx, rtx, rtx); >extern rtx gen_altivec_vslo (rtx, rtx, rtx); >extern rtx gen_altivec_vsr (rtx, rtx, rtx); >extern rtx gen_altivec_vsro (rtx, rtx, rtx); >extern rtx gen_altivec_vsum4ubs (rtx, rtx, rtx); >extern rtx gen_altivec_vsum4shs (rtx, rtx, rtx); >extern rtx gen_altivec_vsum4sbs (rtx, rtx, rtx); >extern rtx gen_altivec_vsum2sws (rtx, rtx, rtx); >extern rtx gen_altivec_vsumsws (rtx, rtx, rtx); >extern rtx gen_altivec_vspltb (rtx, rtx, rtx); >extern rtx gen_altivec_vsplth (rtx, rtx, rtx); >extern rtx gen_altivec_vspltw (rtx, rtx, rtx); >extern rtx gen_altivec_vspltsf (rtx, rtx, rtx); >extern rtx gen_altivec_vspltisw (rtx, rtx); >extern rtx gen_altivec_vspltish (rtx, rtx); >extern rtx gen_altivec_vspltisb (rtx, rtx); >extern rtx gen_altivec_vperm_v4si (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vperm_v8hi (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vperm_v16qi (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vperm_v4sf (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vperm_v2df (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vperm_v2di (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vperm_ti (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vperm_v4si_uns (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vperm_v8hi_uns (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vperm_v16qi_uns (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vperm_v4sf_uns (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vperm_v2df_uns (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vperm_v2di_uns (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vperm_ti_uns (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vrfip (rtx, rtx); >extern rtx gen_altivec_vrfin (rtx, rtx); >extern rtx gen_altivec_vcfux (rtx, rtx, rtx); >extern rtx gen_altivec_vcfsx (rtx, rtx, rtx); >extern rtx gen_altivec_vctuxs (rtx, rtx, rtx); >extern rtx gen_altivec_vctsxs (rtx, rtx, rtx); >extern rtx gen_altivec_vlogefp (rtx, rtx); >extern rtx gen_altivec_vexptefp (rtx, rtx); >extern rtx gen_altivec_vrefp (rtx, rtx); >extern rtx gen_altivec_vsldoi_v4si (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vsldoi_v8hi (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vsldoi_v16qi (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vsldoi_v4sf (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vsldoi_v2df (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vsldoi_v2di (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vsldoi_ti (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_vupkhsb (rtx, rtx); >extern rtx gen_altivec_vupkhpx (rtx, rtx); >extern rtx gen_altivec_vupkhsh (rtx, rtx); >extern rtx gen_altivec_vupklsb (rtx, rtx); >extern rtx gen_altivec_vupklpx (rtx, rtx); >extern rtx gen_altivec_vupklsh (rtx, rtx); >extern rtx gen_altivec_vcmpbfp_p (rtx, rtx, rtx); >extern rtx gen_altivec_mtvscr (rtx); >extern rtx gen_altivec_mfvscr (rtx); >extern rtx gen_altivec_dssall (void); >extern rtx gen_altivec_dss (rtx); >extern rtx gen_altivec_dst (rtx, rtx, rtx); >extern rtx gen_altivec_dstt (rtx, rtx, rtx); >extern rtx gen_altivec_dstst (rtx, rtx, rtx); >extern rtx gen_altivec_dststt (rtx, rtx, rtx); >extern rtx gen_altivec_lvsl (rtx, rtx); >extern rtx gen_altivec_lvsr (rtx, rtx); >extern rtx gen_altivec_lvewx (rtx, rtx); >extern rtx gen_altivec_lvehx (rtx, rtx); >extern rtx gen_altivec_lvebx (rtx, rtx); >extern rtx gen_altivec_lvxl (rtx, rtx); >extern rtx gen_altivec_lvx_v4si (rtx, rtx); >extern rtx gen_altivec_lvx_v8hi (rtx, rtx); >extern rtx gen_altivec_lvx_v16qi (rtx, rtx); >extern rtx gen_altivec_lvx_v4sf (rtx, rtx); >extern rtx gen_altivec_lvx_v2df (rtx, rtx); >extern rtx gen_altivec_lvx_v2di (rtx, rtx); >extern rtx gen_altivec_stvx_v4si (rtx, rtx); >extern rtx gen_altivec_stvx_v8hi (rtx, rtx); >extern rtx gen_altivec_stvx_v16qi (rtx, rtx); >extern rtx gen_altivec_stvx_v4sf (rtx, rtx); >extern rtx gen_altivec_stvx_v2df (rtx, rtx); >extern rtx gen_altivec_stvx_v2di (rtx, rtx); >extern rtx gen_altivec_stvxl (rtx, rtx); >extern rtx gen_altivec_stvewx (rtx, rtx); >extern rtx gen_altivec_stvehx (rtx, rtx); >extern rtx gen_altivec_stvebx (rtx, rtx); >extern rtx gen_altivec_vsumsws_nomode (rtx, rtx, rtx); >extern rtx gen_vperm_v8hiv4si (rtx, rtx, rtx, rtx); >extern rtx gen_vperm_v16qiv8hi (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_lvlx (rtx, rtx); >extern rtx gen_altivec_lvlxl (rtx, rtx); >extern rtx gen_altivec_lvrx (rtx, rtx); >extern rtx gen_altivec_lvrxl (rtx, rtx); >extern rtx gen_altivec_stvlx (rtx, rtx); >extern rtx gen_altivec_stvlxl (rtx, rtx); >extern rtx gen_altivec_stvrx (rtx, rtx); >extern rtx gen_altivec_stvrxl (rtx, rtx); >static __inline__ rtx gen_spe_fixuns_truncdfsi2 (rtx, rtx); >static __inline__ rtx >gen_spe_fixuns_truncdfsi2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_extendsfdf2 (rtx, rtx); >static __inline__ rtx >gen_spe_extendsfdf2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_fixuns_truncsfsi2 (rtx, rtx); >static __inline__ rtx >gen_spe_fixuns_truncsfsi2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_fix_truncsfsi2 (rtx, rtx); >static __inline__ rtx >gen_spe_fix_truncsfsi2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_fix_truncdfsi2 (rtx, rtx); >static __inline__ rtx >gen_spe_fix_truncdfsi2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_floatunssisf2 (rtx, rtx); >static __inline__ rtx >gen_spe_floatunssisf2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_floatunssidf2 (rtx, rtx); >static __inline__ rtx >gen_spe_floatunssidf2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_floatsisf2 (rtx, rtx); >static __inline__ rtx >gen_spe_floatsisf2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_floatsidf2 (rtx, rtx); >static __inline__ rtx >gen_spe_floatsidf2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_absv2si2 (rtx, rtx); >static __inline__ rtx >gen_absv2si2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evandc (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evandc(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_andv2si3 (rtx, rtx, rtx); >static __inline__ rtx >gen_andv2si3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evcmpeq (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evcmpeq(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evcmpgts (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evcmpgts(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evcmpgtu (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evcmpgtu(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evcmplts (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evcmplts(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evcmpltu (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evcmpltu(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfscmpeq (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evfscmpeq(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfscmpgt (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evfscmpgt(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfscmplt (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evfscmplt(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfststeq (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evfststeq(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfststgt (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evfststgt(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfststlt (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evfststlt(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evcntlsw (rtx, rtx); >static __inline__ rtx >gen_spe_evcntlsw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evcntlzw (rtx, rtx); >static __inline__ rtx >gen_spe_evcntlzw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_eveqv (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_eveqv(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evextsb (rtx, rtx); >static __inline__ rtx >gen_spe_evextsb(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evextsh (rtx, rtx); >static __inline__ rtx >gen_spe_evextsh(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evlhhesplat (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evlhhesplat(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evlhhesplatx (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evlhhesplatx(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evlhhossplat (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evlhhossplat(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evlhhossplatx (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evlhhossplatx(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evlhhousplat (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evlhhousplat(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evlhhousplatx (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evlhhousplatx(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evlwhsplat (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evlwhsplat(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evlwhsplatx (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evlwhsplatx(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evlwwsplat (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evlwwsplat(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evlwwsplatx (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evlwwsplatx(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmergehi (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmergehi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmergehilo (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmergehilo(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmergelo (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmergelo(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmergelohi (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmergelohi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evnand (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evnand(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_negv2si2 (rtx, rtx); >static __inline__ rtx >gen_negv2si2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evnor (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evnor(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evorc (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evorc(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evor (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evor(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evrlwi (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evrlwi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evrlw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evrlw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evrndw (rtx, rtx); >static __inline__ rtx >gen_spe_evrndw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evsel (rtx, rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evsel(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evsel_fs (rtx, rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evsel_fs(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evslwi (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evslwi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evslw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evslw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evsrwis (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evsrwis(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evsrwiu (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evsrwiu(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evsrws (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evsrws(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evsrwu (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evsrwu(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_xorv2si3 (rtx, rtx, rtx); >static __inline__ rtx >gen_xorv2si3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_xorv4hi3 (rtx, rtx, rtx); >static __inline__ rtx >gen_xorv4hi3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_xorv1di3 (rtx, rtx, rtx); >static __inline__ rtx >gen_xorv1di3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfsabs (rtx, rtx); >static __inline__ rtx >gen_spe_evfsabs(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfsadd (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evfsadd(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfscfsf (rtx, rtx); >static __inline__ rtx >gen_spe_evfscfsf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfscfsi (rtx, rtx); >static __inline__ rtx >gen_spe_evfscfsi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfscfuf (rtx, rtx); >static __inline__ rtx >gen_spe_evfscfuf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfscfui (rtx, rtx); >static __inline__ rtx >gen_spe_evfscfui(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfsctsf (rtx, rtx); >static __inline__ rtx >gen_spe_evfsctsf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfsctsi (rtx, rtx); >static __inline__ rtx >gen_spe_evfsctsi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfsctsiz (rtx, rtx); >static __inline__ rtx >gen_spe_evfsctsiz(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfsctuf (rtx, rtx); >static __inline__ rtx >gen_spe_evfsctuf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfsctui (rtx, rtx); >static __inline__ rtx >gen_spe_evfsctui(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfsctuiz (rtx, rtx); >static __inline__ rtx >gen_spe_evfsctuiz(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfsdiv (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evfsdiv(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfsmul (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evfsmul(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfsnabs (rtx, rtx); >static __inline__ rtx >gen_spe_evfsnabs(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfsneg (rtx, rtx); >static __inline__ rtx >gen_spe_evfsneg(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evfssub (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evfssub(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evldd (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evldd(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evlddx (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evlddx(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evldh (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evldh(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evldhx (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evldhx(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evldw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evldw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evldwx (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evldwx(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evlwhe (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evlwhe(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evlwhex (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evlwhex(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evlwhos (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evlwhos(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evlwhosx (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evlwhosx(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evlwhou (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evlwhou(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evlwhoux (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evlwhoux(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_brinc (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_brinc(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhegsmfaa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhegsmfaa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhegsmfan (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhegsmfan(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhegsmiaa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhegsmiaa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhegsmian (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhegsmian(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhegumiaa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhegumiaa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhegumian (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhegumian(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhesmfaaw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhesmfaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhesmfanw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhesmfanw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhesmfa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhesmfa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhesmf (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhesmf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhesmiaaw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhesmiaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhesmianw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhesmianw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhesmia (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhesmia(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhesmi (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhesmi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhessfaaw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhessfaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhessfanw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhessfanw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhessfa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhessfa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhessf (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhessf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhessiaaw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhessiaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhessianw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhessianw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmheumiaaw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmheumiaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmheumianw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmheumianw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmheumia (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmheumia(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmheumi (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmheumi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmheusiaaw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmheusiaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmheusianw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmheusianw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhogsmfaa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhogsmfaa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhogsmfan (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhogsmfan(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhogsmiaa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhogsmiaa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhogsmian (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhogsmian(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhogumiaa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhogumiaa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhogumian (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhogumian(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhosmfaaw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhosmfaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhosmfanw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhosmfanw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhosmfa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhosmfa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhosmf (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhosmf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhosmiaaw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhosmiaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhosmianw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhosmianw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhosmia (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhosmia(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhosmi (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhosmi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhossfaaw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhossfaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhossfanw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhossfanw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhossfa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhossfa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhossf (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhossf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhossiaaw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhossiaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhossianw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhossianw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhoumiaaw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhoumiaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhoumianw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhoumianw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhoumia (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhoumia(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhoumi (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhoumi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhousiaaw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhousiaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmhousianw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmhousianw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmmlssfa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmmlssfa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmmlssf (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmmlssf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhsmfa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhsmfa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhsmf (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhsmf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhsmia (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhsmia(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhsmi (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhsmi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhssfa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhssfa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhusian (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhusian(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhssf (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhssf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhumia (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhumia(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhumi (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhumi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwlsmiaaw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwlsmiaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwlsmianw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwlsmianw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwlssiaaw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwlssiaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwlssianw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwlssianw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwlumiaaw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwlumiaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwlumianw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwlumianw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwlumia (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwlumia(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwlumi (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwlumi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwlusiaaw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwlusiaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwlusianw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwlusianw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwsmfaa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwsmfaa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwsmfan (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwsmfan(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwsmfa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwsmfa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwsmf (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwsmf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwsmiaa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwsmiaa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwsmian (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwsmian(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwsmia (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwsmia(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwsmi (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwsmi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwssfaa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwssfaa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwssfan (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwssfan(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwssfa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwssfa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwssf (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwssf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwumiaa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwumiaa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwumian (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwumian(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwumia (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwumia(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwumi (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwumi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_addv2si3 (rtx, rtx, rtx); >static __inline__ rtx >gen_addv2si3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evaddusiaaw (rtx, rtx); >static __inline__ rtx >gen_spe_evaddusiaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evaddumiaaw (rtx, rtx); >static __inline__ rtx >gen_spe_evaddumiaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evaddssiaaw (rtx, rtx); >static __inline__ rtx >gen_spe_evaddssiaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evaddsmiaaw (rtx, rtx); >static __inline__ rtx >gen_spe_evaddsmiaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evaddiw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evaddiw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evsubifw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evsubifw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_subv2si3 (rtx, rtx, rtx); >static __inline__ rtx >gen_subv2si3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evsubfusiaaw (rtx, rtx); >static __inline__ rtx >gen_spe_evsubfusiaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evsubfumiaaw (rtx, rtx); >static __inline__ rtx >gen_spe_evsubfumiaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evsubfssiaaw (rtx, rtx); >static __inline__ rtx >gen_spe_evsubfssiaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evsubfsmiaaw (rtx, rtx); >static __inline__ rtx >gen_spe_evsubfsmiaaw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmra (rtx, rtx); >static __inline__ rtx >gen_spe_evmra(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_divv2si3 (rtx, rtx, rtx); >static __inline__ rtx >gen_divv2si3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evdivwu (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evdivwu(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evsplatfi (rtx, rtx); >static __inline__ rtx >gen_spe_evsplatfi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evsplati (rtx, rtx); >static __inline__ rtx >gen_spe_evsplati(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evstdd (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evstdd(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evstddx (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evstddx(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evstdh (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evstdh(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evstdhx (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evstdhx(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evstdw (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evstdw(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evstdwx (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evstdwx(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evstwhe (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evstwhe(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evstwhex (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evstwhex(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evstwho (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evstwho(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evstwhox (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evstwhox(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evstwwe (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evstwwe(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evstwwex (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evstwwex(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evstwwo (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evstwwo(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evstwwox (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evstwwox(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_truncdfsf2 (rtx, rtx); >static __inline__ rtx >gen_spe_truncdfsf2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_absdf2 (rtx, rtx); >static __inline__ rtx >gen_spe_absdf2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_nabsdf2 (rtx, rtx); >static __inline__ rtx >gen_spe_nabsdf2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_negdf2 (rtx, rtx); >static __inline__ rtx >gen_spe_negdf2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_adddf3 (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_adddf3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_subdf3 (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_subdf3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_muldf3 (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_muldf3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_divdf3 (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_divdf3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_trunctfdf2_internal1 (rtx, rtx); >static __inline__ rtx >gen_spe_trunctfdf2_internal1(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_trunctfsf2 (rtx, rtx); >static __inline__ rtx >gen_spe_trunctfsf2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_extenddftf2 (rtx, rtx); >static __inline__ rtx >gen_spe_extenddftf2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_fix_trunctfsi2_internal (rtx, rtx, rtx, rtx, rtx); >static __inline__ rtx >gen_spe_fix_trunctfsi2_internal(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__)), rtx e __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_negtf2_internal (rtx, rtx); >static __inline__ rtx >gen_spe_negtf2_internal(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhssfaa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhssfaa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhssmaa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhssmaa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhsmfaa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhsmfaa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhsmiaa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhsmiaa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhusiaa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhusiaa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhumiaa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhumiaa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhssfan (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhssfan(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhssian (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhssian(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhsmfan (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhsmfan(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhsmian (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhsmian(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhumian (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhumian(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhgssfaa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhgssfaa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhgsmfaa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhgsmfaa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhgsmiaa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhgsmiaa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhgumiaa (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhgumiaa(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhgssfan (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhgssfan(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhgsmfan (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhgsmfan(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhgsmian (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhgsmian(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_evmwhgumian (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_evmwhgumian(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_mtspefscr (rtx); >static __inline__ rtx >gen_spe_mtspefscr(rtx a __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_mfspefscr (rtx); >static __inline__ rtx >gen_spe_mfspefscr(rtx a __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_e500_flip_gt_bit (rtx, rtx); >static __inline__ rtx >gen_e500_flip_gt_bit(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_cmpsfeq_gpr (rtx, rtx, rtx); >static __inline__ rtx >gen_cmpsfeq_gpr(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_tstsfeq_gpr (rtx, rtx, rtx); >static __inline__ rtx >gen_tstsfeq_gpr(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_cmpsfgt_gpr (rtx, rtx, rtx); >static __inline__ rtx >gen_cmpsfgt_gpr(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_tstsfgt_gpr (rtx, rtx, rtx); >static __inline__ rtx >gen_tstsfgt_gpr(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_cmpsflt_gpr (rtx, rtx, rtx); >static __inline__ rtx >gen_cmpsflt_gpr(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_tstsflt_gpr (rtx, rtx, rtx); >static __inline__ rtx >gen_tstsflt_gpr(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_cmpdfeq_gpr (rtx, rtx, rtx); >static __inline__ rtx >gen_cmpdfeq_gpr(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_tstdfeq_gpr (rtx, rtx, rtx); >static __inline__ rtx >gen_tstdfeq_gpr(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_cmpdfgt_gpr (rtx, rtx, rtx); >static __inline__ rtx >gen_cmpdfgt_gpr(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_tstdfgt_gpr (rtx, rtx, rtx); >static __inline__ rtx >gen_tstdfgt_gpr(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_cmpdflt_gpr (rtx, rtx, rtx); >static __inline__ rtx >gen_cmpdflt_gpr(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_tstdflt_gpr (rtx, rtx, rtx); >static __inline__ rtx >gen_tstdflt_gpr(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_cmptfeq_gpr (rtx, rtx, rtx); >static __inline__ rtx >gen_cmptfeq_gpr(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_tsttfeq_gpr (rtx, rtx, rtx); >static __inline__ rtx >gen_tsttfeq_gpr(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_cmptfgt_gpr (rtx, rtx, rtx); >static __inline__ rtx >gen_cmptfgt_gpr(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_tsttfgt_gpr (rtx, rtx, rtx); >static __inline__ rtx >gen_tsttfgt_gpr(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_cmptflt_gpr (rtx, rtx, rtx); >static __inline__ rtx >gen_cmptflt_gpr(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_tsttflt_gpr (rtx, rtx, rtx); >static __inline__ rtx >gen_tsttflt_gpr(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_e500_cr_ior_compare (rtx, rtx, rtx); >static __inline__ rtx >gen_e500_cr_ior_compare(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_movsd_hardfloat (rtx, rtx); >extern rtx gen_movsd_softfloat (rtx, rtx); >extern rtx gen_movsd_store (rtx, rtx); >extern rtx gen_movsd_load (rtx, rtx); >extern rtx gen_extendsddd2 (rtx, rtx); >extern rtx gen_truncddsd2 (rtx, rtx); >extern rtx gen_extendddtd2 (rtx, rtx); >extern rtx gen_trunctddd2 (rtx, rtx); >extern rtx gen_adddd3 (rtx, rtx, rtx); >extern rtx gen_addtd3 (rtx, rtx, rtx); >extern rtx gen_subdd3 (rtx, rtx, rtx); >extern rtx gen_subtd3 (rtx, rtx, rtx); >extern rtx gen_muldd3 (rtx, rtx, rtx); >extern rtx gen_multd3 (rtx, rtx, rtx); >extern rtx gen_divdd3 (rtx, rtx, rtx); >extern rtx gen_divtd3 (rtx, rtx, rtx); >extern rtx gen_floatditd2 (rtx, rtx); >extern rtx gen_ftruncdd2 (rtx, rtx); >extern rtx gen_fixdddi2 (rtx, rtx); >extern rtx gen_ftrunctd2 (rtx, rtx); >extern rtx gen_fixtddi2 (rtx, rtx); >static __inline__ rtx gen_paired_negv2sf2 (rtx, rtx); >static __inline__ rtx >gen_paired_negv2sf2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_sqrtv2sf2 (rtx, rtx); >static __inline__ rtx >gen_sqrtv2sf2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_paired_absv2sf2 (rtx, rtx); >static __inline__ rtx >gen_paired_absv2sf2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_nabsv2sf2 (rtx, rtx); >static __inline__ rtx >gen_nabsv2sf2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_paired_addv2sf3 (rtx, rtx, rtx); >static __inline__ rtx >gen_paired_addv2sf3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_paired_subv2sf3 (rtx, rtx, rtx); >static __inline__ rtx >gen_paired_subv2sf3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_paired_mulv2sf3 (rtx, rtx, rtx); >static __inline__ rtx >gen_paired_mulv2sf3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_resv2sf2 (rtx, rtx); >static __inline__ rtx >gen_resv2sf2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_paired_divv2sf3 (rtx, rtx, rtx); >static __inline__ rtx >gen_paired_divv2sf3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_paired_madds0 (rtx, rtx, rtx, rtx); >static __inline__ rtx >gen_paired_madds0(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_paired_madds1 (rtx, rtx, rtx, rtx); >static __inline__ rtx >gen_paired_madds1(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_selv2sf4 (rtx, rtx, rtx, rtx, rtx); >static __inline__ rtx >gen_selv2sf4(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__)), rtx e __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_paired_stx (rtx, rtx); >static __inline__ rtx >gen_paired_stx(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_paired_lx (rtx, rtx); >static __inline__ rtx >gen_paired_lx(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_paired_cmpu0 (rtx, rtx, rtx); >static __inline__ rtx >gen_paired_cmpu0(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_paired_cmpu1 (rtx, rtx, rtx); >static __inline__ rtx >gen_paired_cmpu1(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_paired_merge00 (rtx, rtx, rtx); >static __inline__ rtx >gen_paired_merge00(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_paired_merge01 (rtx, rtx, rtx); >static __inline__ rtx >gen_paired_merge01(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_paired_merge10 (rtx, rtx, rtx); >static __inline__ rtx >gen_paired_merge10(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_paired_merge11 (rtx, rtx, rtx); >static __inline__ rtx >gen_paired_merge11(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_paired_sum0 (rtx, rtx, rtx, rtx); >static __inline__ rtx >gen_paired_sum0(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_paired_sum1 (rtx, rtx, rtx, rtx); >static __inline__ rtx >gen_paired_sum1(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_paired_muls0 (rtx, rtx, rtx); >static __inline__ rtx >gen_paired_muls0(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_paired_muls1 (rtx, rtx, rtx); >static __inline__ rtx >gen_paired_muls1(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_macho_high (rtx, rtx); >static __inline__ rtx >gen_macho_high(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_macho_low (rtx, rtx, rtx); >static __inline__ rtx >gen_macho_low(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_load_macho_picbase (rtx); >extern rtx gen_macho_correct_pic (rtx, rtx, rtx, rtx); >extern rtx gen_zero_extendqidi2 (rtx, rtx); >extern rtx gen_zero_extendhidi2 (rtx, rtx); >extern rtx gen_zero_extendsidi2 (rtx, rtx); >extern rtx gen_extendhidi2 (rtx, rtx); >extern rtx gen_extendsidi2 (rtx, rtx); >extern rtx gen_zero_extendqisi2 (rtx, rtx); >extern rtx gen_extendqisi2 (rtx, rtx); >static __inline__ rtx gen_extendqisi2_power (rtx, rtx); >static __inline__ rtx >gen_extendqisi2_power(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_extendqisi2_no_power (rtx, rtx); >extern rtx gen_zero_extendqihi2 (rtx, rtx); >extern rtx gen_extendqihi2 (rtx, rtx); >static __inline__ rtx gen_extendqihi2_power (rtx, rtx); >static __inline__ rtx >gen_extendqihi2_power(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_extendqihi2_no_power (rtx, rtx); >extern rtx gen_zero_extendhisi2 (rtx, rtx); >extern rtx gen_extendhisi2 (rtx, rtx); >extern rtx gen_strlensi (rtx, rtx, rtx, rtx); >extern rtx gen_addsi3 (rtx, rtx, rtx); >extern rtx gen_adddi3 (rtx, rtx, rtx); >extern rtx gen_subsi3 (rtx, rtx, rtx); >extern rtx gen_subdi3 (rtx, rtx, rtx); >extern rtx gen_sminsi3 (rtx, rtx, rtx); >extern rtx gen_smaxsi3 (rtx, rtx, rtx); >extern rtx gen_uminsi3 (rtx, rtx, rtx); >extern rtx gen_umaxsi3 (rtx, rtx, rtx); >extern rtx gen_abssi2 (rtx, rtx); >extern rtx gen_negsi2 (rtx, rtx); >extern rtx gen_negdi2 (rtx, rtx); >extern rtx gen_ctzsi2 (rtx, rtx); >extern rtx gen_ctzdi2 (rtx, rtx); >extern rtx gen_ffssi2 (rtx, rtx); >extern rtx gen_ffsdi2 (rtx, rtx); >extern rtx gen_popcountsi2 (rtx, rtx); >extern rtx gen_popcountdi2 (rtx, rtx); >extern rtx gen_paritysi2 (rtx, rtx); >extern rtx gen_paritydi2 (rtx, rtx); >extern rtx gen_bswaphi2 (rtx, rtx); >extern rtx gen_bswapsi2 (rtx, rtx); >extern rtx gen_bswapdi2 (rtx, rtx); >extern rtx gen_mulsi3 (rtx, rtx, rtx); >extern rtx gen_divmodsi4 (rtx, rtx, rtx, rtx); >extern rtx gen_udivsi3 (rtx, rtx, rtx); >extern rtx gen_udivdi3 (rtx, rtx, rtx); >extern rtx gen_divsi3 (rtx, rtx, rtx); >extern rtx gen_divdi3 (rtx, rtx, rtx); >extern rtx gen_modsi3 (rtx, rtx, rtx); >extern rtx gen_moddi3 (rtx, rtx, rtx); >static __inline__ rtx gen_udivmodsi4_normal (rtx, rtx, rtx, rtx); >static __inline__ rtx >gen_udivmodsi4_normal(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_udivmodsi4_tests (rtx, rtx, rtx, rtx, rtx); >static __inline__ rtx >gen_udivmodsi4_tests(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__)), rtx e __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_udivmodsi4 (rtx, rtx, rtx, rtx); >extern rtx gen_andsi3 (rtx, rtx, rtx); >extern rtx gen_iorsi3 (rtx, rtx, rtx); >extern rtx gen_xorsi3 (rtx, rtx, rtx); >extern rtx gen_insv (rtx, rtx, rtx, rtx); >extern rtx gen_extzv (rtx, rtx, rtx, rtx); >extern rtx gen_ashlsi3 (rtx, rtx, rtx); >extern rtx gen_lshrsi3 (rtx, rtx, rtx); >extern rtx gen_ashrsi3 (rtx, rtx, rtx); >extern rtx gen_recipsf3 (rtx, rtx, rtx); >extern rtx gen_recipdf3 (rtx, rtx, rtx); >extern rtx gen_recipv4sf3 (rtx, rtx, rtx); >extern rtx gen_recipv2df3 (rtx, rtx, rtx); >extern rtx gen_rsqrtsf2 (rtx, rtx); >extern rtx gen_rsqrtdf2 (rtx, rtx); >extern rtx gen_rsqrtv4sf2 (rtx, rtx); >extern rtx gen_rsqrtv2df2 (rtx, rtx); >extern rtx gen_extendsfdf2 (rtx, rtx); >extern rtx gen_truncdfsf2 (rtx, rtx); >extern rtx gen_negsf2 (rtx, rtx); >extern rtx gen_abssf2 (rtx, rtx); >extern rtx gen_addsf3 (rtx, rtx, rtx); >extern rtx gen_subsf3 (rtx, rtx, rtx); >extern rtx gen_mulsf3 (rtx, rtx, rtx); >extern rtx gen_divsf3 (rtx, rtx, rtx); >extern rtx gen_sqrtsf2 (rtx, rtx); >extern rtx gen_copysignsf3 (rtx, rtx, rtx); >extern rtx gen_copysigndf3 (rtx, rtx, rtx); >extern rtx gen_smaxsf3 (rtx, rtx, rtx); >extern rtx gen_sminsf3 (rtx, rtx, rtx); >extern rtx gen_movsicc (rtx, rtx, rtx, rtx); >extern rtx gen_movdicc (rtx, rtx, rtx, rtx); >extern rtx gen_movsfcc (rtx, rtx, rtx, rtx); >extern rtx gen_negdf2 (rtx, rtx); >extern rtx gen_absdf2 (rtx, rtx); >extern rtx gen_adddf3 (rtx, rtx, rtx); >extern rtx gen_subdf3 (rtx, rtx, rtx); >extern rtx gen_muldf3 (rtx, rtx, rtx); >extern rtx gen_divdf3 (rtx, rtx, rtx); >extern rtx gen_sqrtdf2 (rtx, rtx); >extern rtx gen_smaxdf3 (rtx, rtx, rtx); >extern rtx gen_smindf3 (rtx, rtx, rtx); >extern rtx gen_movdfcc (rtx, rtx, rtx, rtx); >extern rtx gen_floatsidf2 (rtx, rtx); >extern rtx gen_floatunssisf2 (rtx, rtx); >extern rtx gen_floatunssidf2 (rtx, rtx); >extern rtx gen_fix_truncsfsi2 (rtx, rtx); >extern rtx gen_fix_truncdfsi2 (rtx, rtx); >extern rtx gen_fix_truncsfdi2 (rtx, rtx); >extern rtx gen_fix_truncdfdi2 (rtx, rtx); >extern rtx gen_fixuns_truncsfsi2 (rtx, rtx); >extern rtx gen_fixuns_truncdfsi2 (rtx, rtx); >extern rtx gen_fixuns_truncsfdi2 (rtx, rtx); >extern rtx gen_fixuns_truncdfdi2 (rtx, rtx); >extern rtx gen_btruncsf2 (rtx, rtx); >extern rtx gen_btruncdf2 (rtx, rtx); >extern rtx gen_ceilsf2 (rtx, rtx); >extern rtx gen_ceildf2 (rtx, rtx); >extern rtx gen_floorsf2 (rtx, rtx); >extern rtx gen_floordf2 (rtx, rtx); >extern rtx gen_floatsisf2 (rtx, rtx); >extern rtx gen_floatdidf2 (rtx, rtx); >extern rtx gen_floatunsdidf2 (rtx, rtx); >extern rtx gen_floatdisf2 (rtx, rtx); >extern rtx gen_floatdisf2_internal2 (rtx, rtx, rtx); >extern rtx gen_floatunsdisf2 (rtx, rtx); >extern rtx gen_mulsidi3 (rtx, rtx, rtx); >extern rtx gen_umulsidi3 (rtx, rtx, rtx); >extern rtx gen_smulsi3_highpart (rtx, rtx, rtx); >extern rtx gen_umulsi3_highpart (rtx, rtx, rtx); >extern rtx gen_absdi2 (rtx, rtx); >extern rtx gen_ashldi3 (rtx, rtx, rtx); >extern rtx gen_lshrdi3 (rtx, rtx, rtx); >extern rtx gen_ashrdi3 (rtx, rtx, rtx); >extern rtx gen_anddi3 (rtx, rtx, rtx); >extern rtx gen_iordi3 (rtx, rtx, rtx); >extern rtx gen_xordi3 (rtx, rtx, rtx); >extern rtx gen_smindi3 (rtx, rtx, rtx); >extern rtx gen_smaxdi3 (rtx, rtx, rtx); >extern rtx gen_umindi3 (rtx, rtx, rtx); >extern rtx gen_umaxdi3 (rtx, rtx, rtx); >extern rtx gen_movsi_got (rtx, rtx); >extern rtx gen_movqi (rtx, rtx); >extern rtx gen_movhi (rtx, rtx); >extern rtx gen_movsi (rtx, rtx); >extern rtx gen_movdi (rtx, rtx); >extern rtx gen_movti (rtx, rtx); >extern rtx gen_movcc (rtx, rtx); >extern rtx gen_movsf (rtx, rtx); >extern rtx gen_movdf (rtx, rtx); >extern rtx gen_reload_di_store (rtx, rtx, rtx); >extern rtx gen_reload_di_load (rtx, rtx, rtx); >extern rtx gen_movtf (rtx, rtx); >extern rtx gen_extenddftf2 (rtx, rtx); >extern rtx gen_extenddftf2_fprs (rtx, rtx); >extern rtx gen_extendsftf2 (rtx, rtx); >extern rtx gen_trunctfdf2 (rtx, rtx); >extern rtx gen_trunctfsf2 (rtx, rtx); >extern rtx gen_floatsitf2 (rtx, rtx); >extern rtx gen_fix_trunctfsi2 (rtx, rtx); >extern rtx gen_fix_trunctfsi2_fprs (rtx, rtx); >extern rtx gen_negtf2 (rtx, rtx); >extern rtx gen_abstf2 (rtx, rtx); >extern rtx gen_abstf2_internal (rtx, rtx, rtx); >extern rtx gen_load_multiple (rtx, rtx, rtx); >extern rtx gen_store_multiple (rtx, rtx, rtx); >extern rtx gen_setmemsi (rtx, rtx, rtx, rtx); >extern rtx gen_movmemsi (rtx, rtx, rtx, rtx); >extern rtx gen_movmemsi_8reg (rtx, rtx, rtx, rtx); >extern rtx gen_movmemsi_6reg (rtx, rtx, rtx, rtx); >extern rtx gen_movmemsi_4reg (rtx, rtx, rtx, rtx); >extern rtx gen_movmemsi_2reg (rtx, rtx, rtx, rtx); >extern rtx gen_movmemsi_1reg (rtx, rtx, rtx, rtx); >extern rtx gen_allocate_stack (rtx, rtx); >extern rtx gen_save_stack_function (rtx, rtx); >extern rtx gen_restore_stack_function (rtx, rtx); >extern rtx gen_restore_stack_block (rtx, rtx); >extern rtx gen_save_stack_nonlocal (rtx, rtx); >extern rtx gen_restore_stack_nonlocal (rtx, rtx); >extern rtx gen_load_toc_v4_PIC_1 (rtx); >extern rtx gen_load_toc_v4_PIC_1b (rtx, rtx); >extern rtx gen_builtin_setjmp_receiver (rtx); > >extern rtx gen_call (rtx, rtx, rtx); > >extern rtx gen_call_value (rtx, rtx, rtx, rtx); >extern rtx gen_untyped_call (rtx, rtx, rtx); > >extern rtx gen_sibcall (rtx, rtx, rtx); > >extern rtx gen_sibcall_value (rtx, rtx, rtx, rtx); >extern rtx gen_sibcall_epilogue (void); >extern rtx gen_cbranchsi4 (rtx, rtx, rtx, rtx); >extern rtx gen_cbranchdi4 (rtx, rtx, rtx, rtx); >extern rtx gen_cbranchsf4 (rtx, rtx, rtx, rtx); >extern rtx gen_cbranchdf4 (rtx, rtx, rtx, rtx); >extern rtx gen_cbranchtf4 (rtx, rtx, rtx, rtx); >extern rtx gen_cbranchdd4 (rtx, rtx, rtx, rtx); >extern rtx gen_cbranchtd4 (rtx, rtx, rtx, rtx); >extern rtx gen_cstoresi4 (rtx, rtx, rtx, rtx); >extern rtx gen_cstoredi4 (rtx, rtx, rtx, rtx); >extern rtx gen_cstoresf4 (rtx, rtx, rtx, rtx); >extern rtx gen_cstoredf4 (rtx, rtx, rtx, rtx); >extern rtx gen_cstoretf4 (rtx, rtx, rtx, rtx); >extern rtx gen_cstoredd4 (rtx, rtx, rtx, rtx); >extern rtx gen_cstoretd4 (rtx, rtx, rtx, rtx); >extern rtx gen_stack_protect_set (rtx, rtx); >extern rtx gen_stack_protect_test (rtx, rtx, rtx); >extern rtx gen_indirect_jump (rtx); >extern rtx gen_tablejump (rtx, rtx); >extern rtx gen_tablejumpsi (rtx, rtx); >extern rtx gen_tablejumpdi (rtx, rtx); >extern rtx gen_doloop_end (rtx, rtx, rtx, rtx, rtx); >extern rtx gen_ctrsi (rtx, rtx); >extern rtx gen_ctrdi (rtx, rtx); >extern rtx gen_ctrapsi4 (rtx, rtx, rtx, rtx); >extern rtx gen_ctrapdi4 (rtx, rtx, rtx, rtx); >extern rtx gen_prologue (void); >extern rtx gen_epilogue (void); >extern rtx gen_movsi_to_cr_one (rtx, rtx); >extern rtx gen_eh_return (rtx); >extern rtx gen_fmasf4 (rtx, rtx, rtx, rtx); >extern rtx gen_fmadf4 (rtx, rtx, rtx, rtx); >static __inline__ rtx gen_fmav2sf4 (rtx, rtx, rtx, rtx); >static __inline__ rtx >gen_fmav2sf4(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_fmav4sf4 (rtx, rtx, rtx, rtx); >extern rtx gen_fmav2df4 (rtx, rtx, rtx, rtx); >extern rtx gen_fmssf4 (rtx, rtx, rtx, rtx); >extern rtx gen_fmsdf4 (rtx, rtx, rtx, rtx); >static __inline__ rtx gen_fmsv2sf4 (rtx, rtx, rtx, rtx); >static __inline__ rtx >gen_fmsv2sf4(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_fmsv4sf4 (rtx, rtx, rtx, rtx); >extern rtx gen_fmsv2df4 (rtx, rtx, rtx, rtx); >extern rtx gen_fnmasf4 (rtx, rtx, rtx, rtx); >extern rtx gen_fnmadf4 (rtx, rtx, rtx, rtx); >static __inline__ rtx gen_fnmav2sf4 (rtx, rtx, rtx, rtx); >static __inline__ rtx >gen_fnmav2sf4(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_fnmav4sf4 (rtx, rtx, rtx, rtx); >extern rtx gen_fnmav2df4 (rtx, rtx, rtx, rtx); >extern rtx gen_fnmssf4 (rtx, rtx, rtx, rtx); >extern rtx gen_fnmsdf4 (rtx, rtx, rtx, rtx); >static __inline__ rtx gen_fnmsv2sf4 (rtx, rtx, rtx, rtx); >static __inline__ rtx >gen_fnmsv2sf4(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_fnmsv4sf4 (rtx, rtx, rtx, rtx); >extern rtx gen_fnmsv2df4 (rtx, rtx, rtx, rtx); >extern rtx gen_nfmasf4 (rtx, rtx, rtx, rtx); >extern rtx gen_nfmadf4 (rtx, rtx, rtx, rtx); >static __inline__ rtx gen_nfmav2sf4 (rtx, rtx, rtx, rtx); >static __inline__ rtx >gen_nfmav2sf4(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_nfmav4sf4 (rtx, rtx, rtx, rtx); >extern rtx gen_nfmav2df4 (rtx, rtx, rtx, rtx); >extern rtx gen_nfmssf4 (rtx, rtx, rtx, rtx); >extern rtx gen_nfmsdf4 (rtx, rtx, rtx, rtx); >static __inline__ rtx gen_nfmsv2sf4 (rtx, rtx, rtx, rtx); >static __inline__ rtx >gen_nfmsv2sf4(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_nfmsv4sf4 (rtx, rtx, rtx, rtx); >extern rtx gen_nfmsv2df4 (rtx, rtx, rtx, rtx); >extern rtx gen_mem_thread_fence (rtx); >extern rtx gen_hwsync (void); >extern rtx gen_lwsync (void); >extern rtx gen_atomic_loadqi (rtx, rtx, rtx); >extern rtx gen_atomic_loadhi (rtx, rtx, rtx); >extern rtx gen_atomic_loadsi (rtx, rtx, rtx); >extern rtx gen_atomic_loaddi (rtx, rtx, rtx); >extern rtx gen_atomic_storeqi (rtx, rtx, rtx); >extern rtx gen_atomic_storehi (rtx, rtx, rtx); >extern rtx gen_atomic_storesi (rtx, rtx, rtx); >extern rtx gen_atomic_storedi (rtx, rtx, rtx); >extern rtx gen_atomic_compare_and_swapqi (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx); >extern rtx gen_atomic_compare_and_swaphi (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx); >extern rtx gen_atomic_compare_and_swapsi (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx); >extern rtx gen_atomic_compare_and_swapdi (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx); >extern rtx gen_atomic_exchangeqi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_exchangehi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_exchangesi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_exchangedi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_addqi (rtx, rtx, rtx); >extern rtx gen_atomic_subqi (rtx, rtx, rtx); >extern rtx gen_atomic_orqi (rtx, rtx, rtx); >extern rtx gen_atomic_xorqi (rtx, rtx, rtx); >extern rtx gen_atomic_andqi (rtx, rtx, rtx); >extern rtx gen_atomic_addhi (rtx, rtx, rtx); >extern rtx gen_atomic_subhi (rtx, rtx, rtx); >extern rtx gen_atomic_orhi (rtx, rtx, rtx); >extern rtx gen_atomic_xorhi (rtx, rtx, rtx); >extern rtx gen_atomic_andhi (rtx, rtx, rtx); >extern rtx gen_atomic_addsi (rtx, rtx, rtx); >extern rtx gen_atomic_subsi (rtx, rtx, rtx); >extern rtx gen_atomic_orsi (rtx, rtx, rtx); >extern rtx gen_atomic_xorsi (rtx, rtx, rtx); >extern rtx gen_atomic_andsi (rtx, rtx, rtx); >extern rtx gen_atomic_adddi (rtx, rtx, rtx); >extern rtx gen_atomic_subdi (rtx, rtx, rtx); >extern rtx gen_atomic_ordi (rtx, rtx, rtx); >extern rtx gen_atomic_xordi (rtx, rtx, rtx); >extern rtx gen_atomic_anddi (rtx, rtx, rtx); >extern rtx gen_atomic_nandqi (rtx, rtx, rtx); >extern rtx gen_atomic_nandhi (rtx, rtx, rtx); >extern rtx gen_atomic_nandsi (rtx, rtx, rtx); >extern rtx gen_atomic_nanddi (rtx, rtx, rtx); >extern rtx gen_atomic_fetch_addqi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_subqi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_orqi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_xorqi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_andqi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_addhi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_subhi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_orhi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_xorhi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_andhi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_addsi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_subsi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_orsi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_xorsi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_andsi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_adddi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_subdi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_ordi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_xordi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_anddi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_nandqi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_nandhi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_nandsi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_fetch_nanddi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_add_fetchqi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_sub_fetchqi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_or_fetchqi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_xor_fetchqi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_and_fetchqi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_add_fetchhi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_sub_fetchhi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_or_fetchhi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_xor_fetchhi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_and_fetchhi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_add_fetchsi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_sub_fetchsi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_or_fetchsi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_xor_fetchsi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_and_fetchsi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_add_fetchdi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_sub_fetchdi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_or_fetchdi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_xor_fetchdi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_and_fetchdi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_nand_fetchqi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_nand_fetchhi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_nand_fetchsi (rtx, rtx, rtx, rtx); >extern rtx gen_atomic_nand_fetchdi (rtx, rtx, rtx, rtx); >extern rtx gen_movv16qi (rtx, rtx); >extern rtx gen_movv8hi (rtx, rtx); >extern rtx gen_movv4si (rtx, rtx); >extern rtx gen_movv2di (rtx, rtx); >extern rtx gen_movv4sf (rtx, rtx); >extern rtx gen_movv2df (rtx, rtx); >extern rtx gen_vector_load_v16qi (rtx, rtx); >extern rtx gen_vector_load_v8hi (rtx, rtx); >extern rtx gen_vector_load_v4si (rtx, rtx); >extern rtx gen_vector_load_v2di (rtx, rtx); >extern rtx gen_vector_load_v4sf (rtx, rtx); >extern rtx gen_vector_load_v2df (rtx, rtx); >extern rtx gen_vector_store_v16qi (rtx, rtx); >extern rtx gen_vector_store_v8hi (rtx, rtx); >extern rtx gen_vector_store_v4si (rtx, rtx); >extern rtx gen_vector_store_v2di (rtx, rtx); >extern rtx gen_vector_store_v4sf (rtx, rtx); >extern rtx gen_vector_store_v2df (rtx, rtx); >extern rtx gen_vector_altivec_load_v16qi (rtx, rtx); >extern rtx gen_vector_altivec_load_v8hi (rtx, rtx); >extern rtx gen_vector_altivec_load_v4si (rtx, rtx); >extern rtx gen_vector_altivec_load_v2di (rtx, rtx); >extern rtx gen_vector_altivec_load_v4sf (rtx, rtx); >extern rtx gen_vector_altivec_load_v2df (rtx, rtx); >extern rtx gen_vector_altivec_store_v16qi (rtx, rtx); >extern rtx gen_vector_altivec_store_v8hi (rtx, rtx); >extern rtx gen_vector_altivec_store_v4si (rtx, rtx); >extern rtx gen_vector_altivec_store_v2di (rtx, rtx); >extern rtx gen_vector_altivec_store_v4sf (rtx, rtx); >extern rtx gen_vector_altivec_store_v2df (rtx, rtx); >extern rtx gen_reload_v16qi_si_store (rtx, rtx, rtx); >extern rtx gen_reload_v8hi_si_store (rtx, rtx, rtx); >extern rtx gen_reload_v4si_si_store (rtx, rtx, rtx); >extern rtx gen_reload_v2di_si_store (rtx, rtx, rtx); >extern rtx gen_reload_v4sf_si_store (rtx, rtx, rtx); >extern rtx gen_reload_v2df_si_store (rtx, rtx, rtx); >extern rtx gen_reload_df_si_store (rtx, rtx, rtx); >extern rtx gen_reload_ti_si_store (rtx, rtx, rtx); >extern rtx gen_reload_v16qi_di_store (rtx, rtx, rtx); >extern rtx gen_reload_v8hi_di_store (rtx, rtx, rtx); >extern rtx gen_reload_v4si_di_store (rtx, rtx, rtx); >extern rtx gen_reload_v2di_di_store (rtx, rtx, rtx); >extern rtx gen_reload_v4sf_di_store (rtx, rtx, rtx); >extern rtx gen_reload_v2df_di_store (rtx, rtx, rtx); >extern rtx gen_reload_df_di_store (rtx, rtx, rtx); >extern rtx gen_reload_ti_di_store (rtx, rtx, rtx); >extern rtx gen_reload_v16qi_si_load (rtx, rtx, rtx); >extern rtx gen_reload_v8hi_si_load (rtx, rtx, rtx); >extern rtx gen_reload_v4si_si_load (rtx, rtx, rtx); >extern rtx gen_reload_v2di_si_load (rtx, rtx, rtx); >extern rtx gen_reload_v4sf_si_load (rtx, rtx, rtx); >extern rtx gen_reload_v2df_si_load (rtx, rtx, rtx); >extern rtx gen_reload_df_si_load (rtx, rtx, rtx); >extern rtx gen_reload_ti_si_load (rtx, rtx, rtx); >extern rtx gen_reload_v16qi_di_load (rtx, rtx, rtx); >extern rtx gen_reload_v8hi_di_load (rtx, rtx, rtx); >extern rtx gen_reload_v4si_di_load (rtx, rtx, rtx); >extern rtx gen_reload_v2di_di_load (rtx, rtx, rtx); >extern rtx gen_reload_v4sf_di_load (rtx, rtx, rtx); >extern rtx gen_reload_v2df_di_load (rtx, rtx, rtx); >extern rtx gen_reload_df_di_load (rtx, rtx, rtx); >extern rtx gen_reload_ti_di_load (rtx, rtx, rtx); >extern rtx gen_addv4sf3 (rtx, rtx, rtx); >extern rtx gen_addv2df3 (rtx, rtx, rtx); >extern rtx gen_subv4sf3 (rtx, rtx, rtx); >extern rtx gen_subv2df3 (rtx, rtx, rtx); >extern rtx gen_mulv4sf3 (rtx, rtx, rtx); >extern rtx gen_mulv2df3 (rtx, rtx, rtx); >extern rtx gen_divv4sf3 (rtx, rtx, rtx); >extern rtx gen_divv2df3 (rtx, rtx, rtx); >extern rtx gen_negv4sf2 (rtx, rtx); >extern rtx gen_negv2df2 (rtx, rtx); >extern rtx gen_absv4sf2 (rtx, rtx); >extern rtx gen_absv2df2 (rtx, rtx); >extern rtx gen_sminv4sf3 (rtx, rtx, rtx); >extern rtx gen_sminv2df3 (rtx, rtx, rtx); >extern rtx gen_smaxv4sf3 (rtx, rtx, rtx); >extern rtx gen_smaxv2df3 (rtx, rtx, rtx); >extern rtx gen_sqrtv4sf2 (rtx, rtx); >extern rtx gen_sqrtv2df2 (rtx, rtx); >extern rtx gen_rsqrtev4sf2 (rtx, rtx); >extern rtx gen_rsqrtev2df2 (rtx, rtx); >extern rtx gen_rev4sf2 (rtx, rtx); >extern rtx gen_rev2df2 (rtx, rtx); >extern rtx gen_ftruncv4sf2 (rtx, rtx); >extern rtx gen_ftruncv2df2 (rtx, rtx); >extern rtx gen_vector_ceilv4sf2 (rtx, rtx); >extern rtx gen_vector_ceilv2df2 (rtx, rtx); >extern rtx gen_vector_floorv4sf2 (rtx, rtx); >extern rtx gen_vector_floorv2df2 (rtx, rtx); >extern rtx gen_vector_btruncv4sf2 (rtx, rtx); >extern rtx gen_vector_btruncv2df2 (rtx, rtx); >extern rtx gen_vector_copysignv4sf3 (rtx, rtx, rtx); >extern rtx gen_vector_copysignv2df3 (rtx, rtx, rtx); >extern rtx gen_vcondv4sfv4sf (rtx, rtx, rtx, rtx, rtx, rtx); >extern rtx gen_vcondv2dfv2df (rtx, rtx, rtx, rtx, rtx, rtx); >extern rtx gen_vcondv16qiv16qi (rtx, rtx, rtx, rtx, rtx, rtx); >extern rtx gen_vcondv8hiv8hi (rtx, rtx, rtx, rtx, rtx, rtx); >extern rtx gen_vcondv4siv4si (rtx, rtx, rtx, rtx, rtx, rtx); >extern rtx gen_vcondv4sfv4si (rtx, rtx, rtx, rtx, rtx, rtx); >extern rtx gen_vcondv4siv4sf (rtx, rtx, rtx, rtx, rtx, rtx); >extern rtx gen_vconduv16qiv16qi (rtx, rtx, rtx, rtx, rtx, rtx); >extern rtx gen_vconduv8hiv8hi (rtx, rtx, rtx, rtx, rtx, rtx); >extern rtx gen_vconduv4siv4si (rtx, rtx, rtx, rtx, rtx, rtx); >extern rtx gen_vconduv4sfv4si (rtx, rtx, rtx, rtx, rtx, rtx); >extern rtx gen_vector_eqv16qi (rtx, rtx, rtx); >extern rtx gen_vector_eqv8hi (rtx, rtx, rtx); >extern rtx gen_vector_eqv4si (rtx, rtx, rtx); >extern rtx gen_vector_eqv4sf (rtx, rtx, rtx); >extern rtx gen_vector_eqv2df (rtx, rtx, rtx); >extern rtx gen_vector_gtv16qi (rtx, rtx, rtx); >extern rtx gen_vector_gtv8hi (rtx, rtx, rtx); >extern rtx gen_vector_gtv4si (rtx, rtx, rtx); >extern rtx gen_vector_gtv4sf (rtx, rtx, rtx); >extern rtx gen_vector_gtv2df (rtx, rtx, rtx); >extern rtx gen_vector_gev16qi (rtx, rtx, rtx); >extern rtx gen_vector_gev8hi (rtx, rtx, rtx); >extern rtx gen_vector_gev4si (rtx, rtx, rtx); >extern rtx gen_vector_gev4sf (rtx, rtx, rtx); >extern rtx gen_vector_gev2df (rtx, rtx, rtx); >extern rtx gen_vector_gtuv16qi (rtx, rtx, rtx); >extern rtx gen_vector_gtuv8hi (rtx, rtx, rtx); >extern rtx gen_vector_gtuv4si (rtx, rtx, rtx); >extern rtx gen_vector_geuv16qi (rtx, rtx, rtx); >extern rtx gen_vector_geuv8hi (rtx, rtx, rtx); >extern rtx gen_vector_geuv4si (rtx, rtx, rtx); >extern rtx gen_vector_select_v16qi (rtx, rtx, rtx, rtx); >extern rtx gen_vector_select_v8hi (rtx, rtx, rtx, rtx); >extern rtx gen_vector_select_v4si (rtx, rtx, rtx, rtx); >extern rtx gen_vector_select_v2di (rtx, rtx, rtx, rtx); >extern rtx gen_vector_select_v4sf (rtx, rtx, rtx, rtx); >extern rtx gen_vector_select_v2df (rtx, rtx, rtx, rtx); >extern rtx gen_vector_select_ti (rtx, rtx, rtx, rtx); >extern rtx gen_vector_select_v16qi_uns (rtx, rtx, rtx, rtx); >extern rtx gen_vector_select_v8hi_uns (rtx, rtx, rtx, rtx); >extern rtx gen_vector_select_v4si_uns (rtx, rtx, rtx, rtx); >extern rtx gen_vector_select_v2di_uns (rtx, rtx, rtx, rtx); >extern rtx gen_vector_select_v4sf_uns (rtx, rtx, rtx, rtx); >extern rtx gen_vector_select_v2df_uns (rtx, rtx, rtx, rtx); >extern rtx gen_vector_select_ti_uns (rtx, rtx, rtx, rtx); >extern rtx gen_vector_eq_v16qi_p (rtx, rtx, rtx); >extern rtx gen_vector_eq_v8hi_p (rtx, rtx, rtx); >extern rtx gen_vector_eq_v4si_p (rtx, rtx, rtx); >extern rtx gen_vector_eq_v4sf_p (rtx, rtx, rtx); >extern rtx gen_vector_eq_v2df_p (rtx, rtx, rtx); >extern rtx gen_vector_gt_v16qi_p (rtx, rtx, rtx); >extern rtx gen_vector_gt_v8hi_p (rtx, rtx, rtx); >extern rtx gen_vector_gt_v4si_p (rtx, rtx, rtx); >extern rtx gen_vector_gt_v4sf_p (rtx, rtx, rtx); >extern rtx gen_vector_gt_v2df_p (rtx, rtx, rtx); >extern rtx gen_vector_ge_v4sf_p (rtx, rtx, rtx); >extern rtx gen_vector_ge_v2df_p (rtx, rtx, rtx); >extern rtx gen_vector_gtu_v16qi_p (rtx, rtx, rtx); >extern rtx gen_vector_gtu_v8hi_p (rtx, rtx, rtx); >extern rtx gen_vector_gtu_v4si_p (rtx, rtx, rtx); >extern rtx gen_cr6_test_for_zero (rtx); >extern rtx gen_cr6_test_for_zero_reverse (rtx); >extern rtx gen_cr6_test_for_lt (rtx); >extern rtx gen_cr6_test_for_lt_reverse (rtx); >extern rtx gen_xorv16qi3 (rtx, rtx, rtx); >extern rtx gen_xorv8hi3 (rtx, rtx, rtx); >extern rtx gen_xorv4si3 (rtx, rtx, rtx); >extern rtx gen_xorv2di3 (rtx, rtx, rtx); >extern rtx gen_xorv4sf3 (rtx, rtx, rtx); >extern rtx gen_xorv2df3 (rtx, rtx, rtx); >extern rtx gen_xorti3 (rtx, rtx, rtx); >extern rtx gen_iorv16qi3 (rtx, rtx, rtx); >extern rtx gen_iorv8hi3 (rtx, rtx, rtx); >extern rtx gen_iorv4si3 (rtx, rtx, rtx); >extern rtx gen_iorv2di3 (rtx, rtx, rtx); >extern rtx gen_iorv4sf3 (rtx, rtx, rtx); >extern rtx gen_iorv2df3 (rtx, rtx, rtx); >extern rtx gen_iorti3 (rtx, rtx, rtx); >extern rtx gen_andv16qi3 (rtx, rtx, rtx); >extern rtx gen_andv8hi3 (rtx, rtx, rtx); >extern rtx gen_andv4si3 (rtx, rtx, rtx); >extern rtx gen_andv2di3 (rtx, rtx, rtx); >extern rtx gen_andv4sf3 (rtx, rtx, rtx); >extern rtx gen_andv2df3 (rtx, rtx, rtx); >extern rtx gen_andti3 (rtx, rtx, rtx); >extern rtx gen_one_cmplv16qi2 (rtx, rtx); >extern rtx gen_one_cmplv8hi2 (rtx, rtx); >extern rtx gen_one_cmplv4si2 (rtx, rtx); >extern rtx gen_one_cmplv2di2 (rtx, rtx); >extern rtx gen_one_cmplv4sf2 (rtx, rtx); >extern rtx gen_one_cmplv2df2 (rtx, rtx); >extern rtx gen_one_cmplti2 (rtx, rtx); >extern rtx gen_norv16qi3 (rtx, rtx, rtx); >extern rtx gen_norv8hi3 (rtx, rtx, rtx); >extern rtx gen_norv4si3 (rtx, rtx, rtx); >extern rtx gen_norv2di3 (rtx, rtx, rtx); >extern rtx gen_norv4sf3 (rtx, rtx, rtx); >extern rtx gen_norv2df3 (rtx, rtx, rtx); >extern rtx gen_norti3 (rtx, rtx, rtx); >extern rtx gen_andcv16qi3 (rtx, rtx, rtx); >extern rtx gen_andcv8hi3 (rtx, rtx, rtx); >extern rtx gen_andcv4si3 (rtx, rtx, rtx); >extern rtx gen_andcv2di3 (rtx, rtx, rtx); >extern rtx gen_andcv4sf3 (rtx, rtx, rtx); >extern rtx gen_andcv2df3 (rtx, rtx, rtx); >extern rtx gen_andcti3 (rtx, rtx, rtx); >extern rtx gen_floatv4siv4sf2 (rtx, rtx); >extern rtx gen_floatv2div2df2 (rtx, rtx); >extern rtx gen_floatunsv4siv4sf2 (rtx, rtx); >extern rtx gen_floatunsv2div2df2 (rtx, rtx); >extern rtx gen_fix_truncv4sfv4si2 (rtx, rtx); >extern rtx gen_fix_truncv2dfv2di2 (rtx, rtx); >extern rtx gen_fixuns_truncv4sfv4si2 (rtx, rtx); >extern rtx gen_fixuns_truncv2dfv2di2 (rtx, rtx); >extern rtx gen_vec_initv16qi (rtx, rtx); >extern rtx gen_vec_initv8hi (rtx, rtx); >extern rtx gen_vec_initv4si (rtx, rtx); >extern rtx gen_vec_initv2di (rtx, rtx); >extern rtx gen_vec_initv4sf (rtx, rtx); >extern rtx gen_vec_initv2df (rtx, rtx); >extern rtx gen_vec_setv16qi (rtx, rtx, rtx); >extern rtx gen_vec_setv8hi (rtx, rtx, rtx); >extern rtx gen_vec_setv4si (rtx, rtx, rtx); >extern rtx gen_vec_setv2di (rtx, rtx, rtx); >extern rtx gen_vec_setv4sf (rtx, rtx, rtx); >extern rtx gen_vec_setv2df (rtx, rtx, rtx); >extern rtx gen_vec_extractv16qi (rtx, rtx, rtx); >extern rtx gen_vec_extractv8hi (rtx, rtx, rtx); >extern rtx gen_vec_extractv4si (rtx, rtx, rtx); >extern rtx gen_vec_extractv2di (rtx, rtx, rtx); >extern rtx gen_vec_extractv4sf (rtx, rtx, rtx); >extern rtx gen_vec_extractv2df (rtx, rtx, rtx); >extern rtx gen_vec_pack_trunc_v2df (rtx, rtx, rtx); >extern rtx gen_vec_pack_sfix_trunc_v2df (rtx, rtx, rtx); >extern rtx gen_vec_pack_ufix_trunc_v2df (rtx, rtx, rtx); >extern rtx gen_vec_unpacks_hi_v4sf (rtx, rtx); >extern rtx gen_vec_unpacks_lo_v4sf (rtx, rtx); >extern rtx gen_vec_unpacks_float_hi_v4si (rtx, rtx); >extern rtx gen_vec_unpacks_float_lo_v4si (rtx, rtx); >extern rtx gen_vec_unpacku_float_hi_v4si (rtx, rtx); >extern rtx gen_vec_unpacku_float_lo_v4si (rtx, rtx); >extern rtx gen_vec_realign_load_v16qi (rtx, rtx, rtx, rtx); >extern rtx gen_vec_realign_load_v8hi (rtx, rtx, rtx, rtx); >extern rtx gen_vec_realign_load_v4si (rtx, rtx, rtx, rtx); >extern rtx gen_vec_realign_load_v4sf (rtx, rtx, rtx, rtx); >extern rtx gen_movmisalignv4si (rtx, rtx); >extern rtx gen_movmisalignv4sf (rtx, rtx); >extern rtx gen_movmisalignv2di (rtx, rtx); >extern rtx gen_movmisalignv2df (rtx, rtx); >extern rtx gen_vec_shl_v16qi (rtx, rtx, rtx); >extern rtx gen_vec_shl_v8hi (rtx, rtx, rtx); >extern rtx gen_vec_shl_v4si (rtx, rtx, rtx); >extern rtx gen_vec_shl_v2di (rtx, rtx, rtx); >extern rtx gen_vec_shl_v4sf (rtx, rtx, rtx); >extern rtx gen_vec_shl_v2df (rtx, rtx, rtx); >extern rtx gen_vec_shl_ti (rtx, rtx, rtx); >extern rtx gen_vec_shr_v16qi (rtx, rtx, rtx); >extern rtx gen_vec_shr_v8hi (rtx, rtx, rtx); >extern rtx gen_vec_shr_v4si (rtx, rtx, rtx); >extern rtx gen_vec_shr_v2di (rtx, rtx, rtx); >extern rtx gen_vec_shr_v4sf (rtx, rtx, rtx); >extern rtx gen_vec_shr_v2df (rtx, rtx, rtx); >extern rtx gen_vec_shr_ti (rtx, rtx, rtx); >extern rtx gen_vrotlv16qi3 (rtx, rtx, rtx); >extern rtx gen_vrotlv8hi3 (rtx, rtx, rtx); >extern rtx gen_vrotlv4si3 (rtx, rtx, rtx); >extern rtx gen_vashlv16qi3 (rtx, rtx, rtx); >extern rtx gen_vashlv8hi3 (rtx, rtx, rtx); >extern rtx gen_vashlv4si3 (rtx, rtx, rtx); >extern rtx gen_vlshrv16qi3 (rtx, rtx, rtx); >extern rtx gen_vlshrv8hi3 (rtx, rtx, rtx); >extern rtx gen_vlshrv4si3 (rtx, rtx, rtx); >extern rtx gen_vashrv16qi3 (rtx, rtx, rtx); >extern rtx gen_vashrv8hi3 (rtx, rtx, rtx); >extern rtx gen_vashrv4si3 (rtx, rtx, rtx); >extern rtx gen_reduc_splus_v2df (rtx, rtx); >extern rtx gen_reduc_smin_v2df (rtx, rtx); >extern rtx gen_reduc_smax_v2df (rtx, rtx); >extern rtx gen_reduc_splus_v4sf (rtx, rtx); >extern rtx gen_reduc_smin_v4sf (rtx, rtx); >extern rtx gen_reduc_smax_v4sf (rtx, rtx); >static __inline__ rtx gen_absv2sf2 (rtx, rtx); >static __inline__ rtx >gen_absv2sf2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_negv2sf2 (rtx, rtx); >static __inline__ rtx >gen_negv2sf2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_addv2sf3 (rtx, rtx, rtx); >static __inline__ rtx >gen_addv2sf3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_subv2sf3 (rtx, rtx, rtx); >static __inline__ rtx >gen_subv2sf3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_mulv2sf3 (rtx, rtx, rtx); >static __inline__ rtx >gen_mulv2sf3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_divv2sf3 (rtx, rtx, rtx); >static __inline__ rtx >gen_divv2sf3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_vsx_load_v16qi (rtx, rtx); >extern rtx gen_vsx_load_v8hi (rtx, rtx); >extern rtx gen_vsx_load_v4si (rtx, rtx); >extern rtx gen_vsx_load_v2di (rtx, rtx); >extern rtx gen_vsx_load_v4sf (rtx, rtx); >extern rtx gen_vsx_load_v2df (rtx, rtx); >extern rtx gen_vsx_store_v16qi (rtx, rtx); >extern rtx gen_vsx_store_v8hi (rtx, rtx); >extern rtx gen_vsx_store_v4si (rtx, rtx); >extern rtx gen_vsx_store_v2di (rtx, rtx); >extern rtx gen_vsx_store_v4sf (rtx, rtx); >extern rtx gen_vsx_store_v2df (rtx, rtx); >extern rtx gen_vsx_tdivdf3_fg (rtx, rtx, rtx); >extern rtx gen_vsx_tdivv4sf3_fg (rtx, rtx, rtx); >extern rtx gen_vsx_tdivv2df3_fg (rtx, rtx, rtx); >extern rtx gen_vsx_tdivdf3_fe (rtx, rtx, rtx); >extern rtx gen_vsx_tdivv4sf3_fe (rtx, rtx, rtx); >extern rtx gen_vsx_tdivv2df3_fe (rtx, rtx, rtx); >extern rtx gen_vsx_tsqrtdf2_fg (rtx, rtx); >extern rtx gen_vsx_tsqrtv4sf2_fg (rtx, rtx); >extern rtx gen_vsx_tsqrtv2df2_fg (rtx, rtx); >extern rtx gen_vsx_tsqrtdf2_fe (rtx, rtx); >extern rtx gen_vsx_tsqrtv4sf2_fe (rtx, rtx); >extern rtx gen_vsx_tsqrtv2df2_fe (rtx, rtx); >extern rtx gen_vsx_xxpermdi_v16qi (rtx, rtx, rtx, rtx); >extern rtx gen_vsx_xxpermdi_v8hi (rtx, rtx, rtx, rtx); >extern rtx gen_vsx_xxpermdi_v4si (rtx, rtx, rtx, rtx); >extern rtx gen_vsx_xxpermdi_v2di (rtx, rtx, rtx, rtx); >extern rtx gen_vsx_xxpermdi_v4sf (rtx, rtx, rtx, rtx); >extern rtx gen_vsx_xxpermdi_v2df (rtx, rtx, rtx, rtx); >extern rtx gen_vsx_xxpermdi_ti (rtx, rtx, rtx, rtx); >extern rtx gen_vec_perm_constv2df (rtx, rtx, rtx, rtx); >extern rtx gen_vec_perm_constv2di (rtx, rtx, rtx, rtx); >extern rtx gen_vsx_mergel_v2df (rtx, rtx, rtx); >extern rtx gen_vsx_mergel_v2di (rtx, rtx, rtx); >extern rtx gen_vsx_mergeh_v2df (rtx, rtx, rtx); >extern rtx gen_vsx_mergeh_v2di (rtx, rtx, rtx); >extern rtx gen_altivec_mulv4sf3 (rtx, rtx, rtx); >extern rtx gen_mulv4si3 (rtx, rtx, rtx); >extern rtx gen_mulv8hi3 (rtx, rtx, rtx); >extern rtx gen_vec_permv16qi (rtx, rtx, rtx, rtx); >extern rtx gen_vec_perm_constv16qi (rtx, rtx, rtx, rtx); >extern rtx gen_altivec_copysign_v4sf3 (rtx, rtx, rtx); >extern rtx gen_build_vector_mask_for_load (rtx, rtx); >extern rtx gen_absv4si2 (rtx, rtx); >extern rtx gen_absv8hi2 (rtx, rtx); >extern rtx gen_absv16qi2 (rtx, rtx); >extern rtx gen_altivec_absv4sf2 (rtx, rtx); >extern rtx gen_altivec_abss_v4si (rtx, rtx); >extern rtx gen_altivec_abss_v8hi (rtx, rtx); >extern rtx gen_altivec_abss_v16qi (rtx, rtx); >extern rtx gen_reduc_splus_v8hi (rtx, rtx); >extern rtx gen_reduc_splus_v16qi (rtx, rtx); >extern rtx gen_reduc_uplus_v16qi (rtx, rtx); >extern rtx gen_negv4si2 (rtx, rtx); >extern rtx gen_negv8hi2 (rtx, rtx); >extern rtx gen_negv16qi2 (rtx, rtx); >extern rtx gen_udot_prodv8hi (rtx, rtx, rtx, rtx); >extern rtx gen_udot_prodv16qi (rtx, rtx, rtx, rtx); >extern rtx gen_sdot_prodv8hi (rtx, rtx, rtx, rtx); >extern rtx gen_widen_usumv8hi3 (rtx, rtx, rtx); >extern rtx gen_widen_usumv16qi3 (rtx, rtx, rtx); >extern rtx gen_widen_ssumv16qi3 (rtx, rtx, rtx); >extern rtx gen_widen_ssumv8hi3 (rtx, rtx, rtx); >extern rtx gen_vec_unpacks_hi_v16qi (rtx, rtx); >extern rtx gen_vec_unpacks_hi_v8hi (rtx, rtx); >extern rtx gen_vec_unpacks_lo_v16qi (rtx, rtx); >extern rtx gen_vec_unpacks_lo_v8hi (rtx, rtx); >extern rtx gen_vec_unpacku_hi_v16qi (rtx, rtx); >extern rtx gen_vec_unpacku_hi_v8hi (rtx, rtx); >extern rtx gen_vec_unpacku_lo_v16qi (rtx, rtx); >extern rtx gen_vec_unpacku_lo_v8hi (rtx, rtx); >extern rtx gen_vec_widen_umult_hi_v16qi (rtx, rtx, rtx); >extern rtx gen_vec_widen_umult_lo_v16qi (rtx, rtx, rtx); >extern rtx gen_vec_widen_smult_hi_v16qi (rtx, rtx, rtx); >extern rtx gen_vec_widen_smult_lo_v16qi (rtx, rtx, rtx); >extern rtx gen_vec_widen_umult_hi_v8hi (rtx, rtx, rtx); >extern rtx gen_vec_widen_umult_lo_v8hi (rtx, rtx, rtx); >extern rtx gen_vec_widen_smult_hi_v8hi (rtx, rtx, rtx); >extern rtx gen_vec_widen_smult_lo_v8hi (rtx, rtx, rtx); >extern rtx gen_vec_pack_trunc_v8hi (rtx, rtx, rtx); >extern rtx gen_vec_pack_trunc_v4si (rtx, rtx, rtx); >extern rtx gen_altivec_negv4sf2 (rtx, rtx); >extern rtx gen_vec_unpacks_float_hi_v8hi (rtx, rtx); >extern rtx gen_vec_unpacks_float_lo_v8hi (rtx, rtx); >extern rtx gen_vec_unpacku_float_hi_v8hi (rtx, rtx); >extern rtx gen_vec_unpacku_float_lo_v8hi (rtx, rtx); >static __inline__ rtx gen_vec_perm_constv2si (rtx, rtx, rtx, rtx); >static __inline__ rtx >gen_vec_perm_constv2si(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_fix_trunctfsi2 (rtx, rtx); >static __inline__ rtx >gen_spe_fix_trunctfsi2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_abstf2_cmp (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_abstf2_cmp(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_spe_abstf2_tst (rtx, rtx, rtx); >static __inline__ rtx >gen_spe_abstf2_tst(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_movv2si (rtx, rtx); >static __inline__ rtx >gen_movv2si(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_movv1di (rtx, rtx); >static __inline__ rtx >gen_movv1di(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_movv4hi (rtx, rtx); >static __inline__ rtx >gen_movv4hi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_movv2sf (rtx, rtx); >static __inline__ rtx >gen_movv2sf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >extern rtx gen_movsd (rtx, rtx); >extern rtx gen_extendsdtd2 (rtx, rtx); >extern rtx gen_negdd2 (rtx, rtx); >extern rtx gen_absdd2 (rtx, rtx); >extern rtx gen_movdd (rtx, rtx); >extern rtx gen_negtd2 (rtx, rtx); >extern rtx gen_abstd2 (rtx, rtx); >extern rtx gen_movtd (rtx, rtx); >static __inline__ rtx gen_vec_perm_constv2sf (rtx, rtx, rtx, rtx); >static __inline__ rtx >gen_vec_perm_constv2sf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_vec_initv2sf (rtx, rtx); >static __inline__ rtx >gen_vec_initv2sf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_sminv2sf3 (rtx, rtx, rtx); >static __inline__ rtx >gen_sminv2sf3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_smaxv2sf3 (rtx, rtx, rtx); >static __inline__ rtx >gen_smaxv2sf3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_reduc_smax_v2sf (rtx, rtx); >static __inline__ rtx >gen_reduc_smax_v2sf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_reduc_smin_v2sf (rtx, rtx); >static __inline__ rtx >gen_reduc_smin_v2sf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_reduc_splus_v2sf (rtx, rtx); >static __inline__ rtx >gen_reduc_splus_v2sf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_movmisalignv2sf (rtx, rtx); >static __inline__ rtx >gen_movmisalignv2sf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) >{ > return 0; >} >static __inline__ rtx gen_vcondv2sfv2sf (rtx, rtx, rtx, rtx, rtx, rtx); >static __inline__ rtx >gen_vcondv2sfv2sf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__)), rtx e __attribute__ ((__unused__)), rtx f __attribute__ ((__unused__))) >{ > return 0; >} ># 36 "./tm.h" 2 > ># 1 "../../gcc/defaults.h" 1 ># 1007 "../../gcc/defaults.h" > ># 38 "./tm.h" 2 ># 82 "../../gcc/combine.c" 2 ># 1 "../../gcc/rtl.h" 1 ># 25 "../../gcc/rtl.h" ># 1 "../../gcc/statistics.h" 1 ># 41 "../../gcc/statistics.h" >struct function; > > >extern void statistics_early_init (void); >extern void statistics_init (void); >extern void statistics_fini (void); >extern void statistics_fini_pass (void); >extern void statistics_counter_event (struct function *, const char *, int); >extern void statistics_histogram_event (struct function *, const char *, int); ># 26 "../../gcc/rtl.h" 2 ># 1 "../../gcc/machmode.h" 1 ># 25 "../../gcc/machmode.h" ># 1 "./insn-modes.h" 1 > > > > > > >enum machine_mode >{ > VOIDmode, > BLKmode, > CCmode, > CCUNSmode, > CCFPmode, > CCEQmode, > BImode, > QImode, > HImode, > SImode, > DImode, > TImode, > QQmode, > HQmode, > SQmode, > DQmode, > TQmode, > UQQmode, > UHQmode, > USQmode, > UDQmode, > UTQmode, > HAmode, > SAmode, > DAmode, > TAmode, > UHAmode, > USAmode, > UDAmode, > UTAmode, > SFmode, > DFmode, > TFmode, > SDmode, > DDmode, > TDmode, > CQImode, > CHImode, > CSImode, > CDImode, > CTImode, > SCmode, > DCmode, > TCmode, > V8QImode, > V4HImode, > V2SImode, > V1DImode, > V16QImode, > V8HImode, > V4SImode, > V2DImode, > V32QImode, > V16HImode, > V8SImode, > V4DImode, > V2TImode, > V2SFmode, > V4SFmode, > V2DFmode, > V8SFmode, > V4DFmode, > V2TFmode, > MAX_MACHINE_MODE, > > MIN_MODE_RANDOM = VOIDmode, > MAX_MODE_RANDOM = BLKmode, > > MIN_MODE_CC = CCmode, > MAX_MODE_CC = CCEQmode, > > MIN_MODE_INT = QImode, > MAX_MODE_INT = TImode, > > MIN_MODE_PARTIAL_INT = VOIDmode, > MAX_MODE_PARTIAL_INT = VOIDmode, > > MIN_MODE_FRACT = QQmode, > MAX_MODE_FRACT = TQmode, > > MIN_MODE_UFRACT = UQQmode, > MAX_MODE_UFRACT = UTQmode, > > MIN_MODE_ACCUM = HAmode, > MAX_MODE_ACCUM = TAmode, > > MIN_MODE_UACCUM = UHAmode, > MAX_MODE_UACCUM = UTAmode, > > MIN_MODE_FLOAT = SFmode, > MAX_MODE_FLOAT = TFmode, > > MIN_MODE_DECIMAL_FLOAT = SDmode, > MAX_MODE_DECIMAL_FLOAT = TDmode, > > MIN_MODE_COMPLEX_INT = CQImode, > MAX_MODE_COMPLEX_INT = CTImode, > > MIN_MODE_COMPLEX_FLOAT = SCmode, > MAX_MODE_COMPLEX_FLOAT = TCmode, > > MIN_MODE_VECTOR_INT = V8QImode, > MAX_MODE_VECTOR_INT = V2TImode, > > MIN_MODE_VECTOR_FRACT = VOIDmode, > MAX_MODE_VECTOR_FRACT = VOIDmode, > > MIN_MODE_VECTOR_UFRACT = VOIDmode, > MAX_MODE_VECTOR_UFRACT = VOIDmode, > > MIN_MODE_VECTOR_ACCUM = VOIDmode, > MAX_MODE_VECTOR_ACCUM = VOIDmode, > > MIN_MODE_VECTOR_UACCUM = VOIDmode, > MAX_MODE_VECTOR_UACCUM = VOIDmode, > > MIN_MODE_VECTOR_FLOAT = V2SFmode, > MAX_MODE_VECTOR_FLOAT = V2TFmode, > > NUM_MACHINE_MODES = MAX_MACHINE_MODE >}; ># 26 "../../gcc/machmode.h" 2 > > > >extern const char * const mode_name[NUM_MACHINE_MODES]; > > > > ># 1 "../../gcc/mode-classes.def" 1 ># 35 "../../gcc/machmode.h" 2 > >enum mode_class { MODE_RANDOM, MODE_CC, MODE_INT, MODE_PARTIAL_INT, MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM, MODE_FLOAT, MODE_DECIMAL_FLOAT, MODE_COMPLEX_INT, MODE_COMPLEX_FLOAT, MODE_VECTOR_INT, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM, MODE_VECTOR_FLOAT, MAX_MODE_CLASS }; > > > > > > >extern const unsigned char mode_class[NUM_MACHINE_MODES]; ># 179 "../../gcc/machmode.h" >extern const unsigned char mode_size[NUM_MACHINE_MODES]; > > > > >extern const unsigned short mode_precision[NUM_MACHINE_MODES]; > > > >extern const unsigned char mode_ibit[NUM_MACHINE_MODES]; > > > >extern const unsigned char mode_fbit[NUM_MACHINE_MODES]; > > > > > >extern const unsigned long long mode_mask_array[NUM_MACHINE_MODES]; > > > > > >extern const unsigned char mode_inner[NUM_MACHINE_MODES]; ># 216 "../../gcc/machmode.h" >extern const unsigned char mode_nunits[NUM_MACHINE_MODES]; > > > > >extern const unsigned char mode_wider[NUM_MACHINE_MODES]; > > > > >extern const unsigned char mode_2xwider[NUM_MACHINE_MODES]; > > > > > > >extern enum machine_mode mode_for_size (unsigned int, enum mode_class, int); > > > >extern enum machine_mode smallest_mode_for_size (unsigned int, > enum mode_class); > > > > > >extern enum machine_mode int_mode_for_mode (enum machine_mode); > > > > >extern enum machine_mode mode_for_vector (enum machine_mode, unsigned); > > > >extern enum machine_mode get_best_mode (int, int, > unsigned long long, > unsigned long long, > unsigned int, > enum machine_mode, int); > > > >extern const unsigned char mode_base_align[NUM_MACHINE_MODES]; > >extern unsigned get_mode_alignment (enum machine_mode); > > > > > >extern const unsigned char class_narrowest_mode[MAX_MODE_CLASS]; > > > > > > >extern enum machine_mode byte_mode; >extern enum machine_mode word_mode; >extern enum machine_mode ptr_mode; > > >extern void init_adjust_machine_modes (void); ># 27 "../../gcc/rtl.h" 2 ># 1 "../../gcc/input.h" 1 ># 25 "../../gcc/input.h" ># 1 "../../gcc/../libcpp/include/line-map.h" 1 ># 37 "../../gcc/../libcpp/include/line-map.h" >enum lc_reason >{ > LC_ENTER = 0, > LC_LEAVE, > LC_RENAME, > LC_RENAME_VERBATIM, > LC_ENTER_MACRO > >}; > > >typedef unsigned int linenum_type; > > >typedef unsigned int source_location; > > >typedef void *(*line_map_realloc) (void *, size_t); > > > >typedef size_t (*line_map_round_alloc_size_func) (size_t); ># 71 "../../gcc/../libcpp/include/line-map.h" >struct line_map_ordinary { > const char *to_file; > linenum_type to_line; > > > > > int included_from; > > > > > > unsigned char sysp; > > > unsigned int column_bits : 8; >}; > > > > > >struct cpp_hashnode; ># 105 "../../gcc/../libcpp/include/line-map.h" >struct line_map_macro { > > struct cpp_hashnode * > > > macro; > > > unsigned int n_tokens; ># 168 "../../gcc/../libcpp/include/line-map.h" > source_location * macro_locations; > > > > > > > source_location expansion; >}; ># 204 "../../gcc/../libcpp/include/line-map.h" >struct line_map { > source_location start_location; > > > __extension__ enum lc_reason reason : 8; > > union map_u { > struct line_map_ordinary ordinary; > struct line_map_macro macro; > } d; >}; ># 244 "../../gcc/../libcpp/include/line-map.h" >struct maps_info { > > > > > > struct line_map * maps; > > > unsigned int allocated; > > > > unsigned int used; > > unsigned int cache; >}; > > >struct line_maps { > > struct maps_info info_ordinary; > > struct maps_info info_macro; > > > unsigned int depth; > > > unsigned char trace_includes; > > > source_location highest_location; > > > source_location highest_line; > > > > unsigned int max_column_hint; > > > > line_map_realloc reallocator; > > > > line_map_round_alloc_size_func round_alloc_size; >}; ># 412 "../../gcc/../libcpp/include/line-map.h" >extern void linemap_init (struct line_maps *); > > > >extern void linemap_check_files_exited (struct line_maps *); > > > > > > > >extern source_location linemap_line_start >(struct line_maps *set, linenum_type to_line, unsigned int max_column_hint); ># 440 "../../gcc/../libcpp/include/line-map.h" >extern const struct line_map *linemap_add > (struct line_maps *, enum lc_reason, unsigned int sysp, > const char *to_file, linenum_type to_line); > > > > > > > >extern const struct line_map *linemap_lookup > (struct line_maps *, source_location); > > > >unsigned char linemap_tracks_macro_expansion_locs_p (struct line_maps *); > > > >unsigned char linemap_macro_expansion_map_p (const struct line_map *); > > >const char* linemap_map_get_macro_name (const struct line_map*); ># 473 "../../gcc/../libcpp/include/line-map.h" >int linemap_location_in_system_header_p (struct line_maps *, > source_location); > > > > >unsigned char linemap_location_from_macro_expansion_p (struct line_maps *, > source_location); ># 550 "../../gcc/../libcpp/include/line-map.h" >extern source_location >linemap_position_for_column (struct line_maps *, unsigned int); > > > >source_location linemap_position_for_line_and_column (struct line_map *, > linenum_type, > unsigned int); ># 577 "../../gcc/../libcpp/include/line-map.h" >int linemap_compare_locations (struct line_maps *set, > source_location pre, > source_location post); > > > > > > > >typedef struct >{ > > const char *file; > > > int line; > > int column; > > > unsigned char sysp; >} expanded_location; > > > > >enum location_resolution_kind >{ > LRK_MACRO_EXPANSION_POINT, > LRK_SPELLING_LOCATION, > LRK_MACRO_DEFINITION_LOCATION >}; ># 659 "../../gcc/../libcpp/include/line-map.h" >source_location linemap_resolve_location (struct line_maps *, > source_location loc, > enum location_resolution_kind lrk, > const struct line_map **loc_map); ># 671 "../../gcc/../libcpp/include/line-map.h" >source_location linemap_unwind_toward_expansion (struct line_maps *, > source_location loc, > const struct line_map **loc_map); > > > > > >expanded_location linemap_expand_location (struct line_maps *, > const struct line_map *, > source_location loc); > > > >struct linemap_stats >{ > long num_ordinary_maps_allocated; > long num_ordinary_maps_used; > long ordinary_maps_allocated_size; > long ordinary_maps_used_size; > long num_expanded_macros; > long num_macro_tokens; > long num_macro_maps_used; > long macro_maps_allocated_size; > long macro_maps_used_size; > long macro_maps_locations_size; > long duplicated_macro_maps_locations_size; >}; > > > >void linemap_get_statistics (struct line_maps *, struct linemap_stats *); > > > >void linemap_dump_location (struct line_maps *, source_location, FILE *); > > > > >void linemap_dump (FILE *, struct line_maps *, unsigned, unsigned char); > > > > >void line_table_dump (FILE *, struct line_maps *, unsigned int, unsigned int); ># 26 "../../gcc/input.h" 2 > >extern struct line_maps *line_table; ># 37 "../../gcc/input.h" >extern char builtins_location_check[(((source_location) 1) > < 2) ? 1 : -1]; > >extern expanded_location expand_location (source_location); > > > >typedef source_location location_t; > >extern location_t input_location; ># 58 "../../gcc/input.h" >void dump_line_table_statistics (void); ># 28 "../../gcc/rtl.h" 2 ># 1 "../../gcc/real.h" 1 ># 30 "../../gcc/real.h" >enum real_value_class { > rvc_zero, > rvc_normal, > rvc_inf, > rvc_nan >}; > > > > > > > >struct real_value { > > > > unsigned int cl : 2; > unsigned int decimal : 1; > unsigned int sign : 1; > unsigned int signalling : 1; > unsigned int canonical : 1; > unsigned int uexp : (32 - 6); > unsigned long sig[((128 + (8 * 4)) / (8 * 4))]; >}; ># 77 "../../gcc/real.h" >extern char test_real_width > [sizeof(struct real_value) <= (((128 + (8 * 4)) + 32)/(8 * 8) + (((128 + (8 * 4)) + 32)%(8 * 8) ? 1 : 0))*sizeof(long long) ? 1 : -1]; ># 115 "../../gcc/real.h" >struct real_format >{ > > void (*encode) (const struct real_format *, long *, > const struct real_value *); > void (*decode) (const struct real_format *, struct real_value *, > const long *); > > > int b; > > > int p; > > > int pnan; > > > int emin; > > > int emax; > > > > int signbit_ro; > > > > int signbit_rw; > > > unsigned char round_towards_zero; > unsigned char has_sign_dependent_rounding; > > > unsigned char has_nans; > unsigned char has_inf; > unsigned char has_denorm; > unsigned char has_signed_zero; > unsigned char qnan_msb_set; > unsigned char canonical_nan_lsbs_set; >}; > > > > > > > >extern const struct real_format * > real_format_for_mode[MAX_MODE_FLOAT - MIN_MODE_FLOAT + 1 > + MAX_MODE_DECIMAL_FLOAT - MIN_MODE_DECIMAL_FLOAT + 1]; ># 226 "../../gcc/real.h" >extern unsigned char real_arithmetic (struct real_value *, int, const struct real_value *, > const struct real_value *); > > >extern unsigned char real_compare (int, const struct real_value *, const struct real_value *); > > >extern unsigned char real_isinf (const struct real_value *); > > >extern unsigned char real_isnan (const struct real_value *); > > >extern unsigned char real_isfinite (const struct real_value *); > > >extern unsigned char real_isneg (const struct real_value *); > > >extern unsigned char real_isnegzero (const struct real_value *); > > >extern unsigned char real_identical (const struct real_value *, const struct real_value *); > > >extern void real_convert (struct real_value *, enum machine_mode, > const struct real_value *); > > >extern unsigned char exact_real_truncate (enum machine_mode, const struct real_value *); > > >extern void real_to_decimal (char *, const struct real_value *, size_t, > size_t, int); > > > >extern void real_to_decimal_for_mode (char *, const struct real_value *, size_t, > size_t, int, enum machine_mode); > > >extern void real_to_hexadecimal (char *, const struct real_value *, > size_t, size_t, int); > > >extern long long real_to_integer (const struct real_value *); >extern void real_to_integer2 (long long *, long long *, > const struct real_value *); > > > >extern int real_from_string (struct real_value *, const char *); > >extern void real_from_string3 (struct real_value *, const char *, enum machine_mode); > > >extern void real_from_integer (struct real_value *, enum machine_mode, > unsigned long long, long long, int); > >extern long real_to_target_fmt (long *, const struct real_value *, > const struct real_format *); >extern long real_to_target (long *, const struct real_value *, enum machine_mode); > >extern void real_from_target_fmt (struct real_value *, const long *, > const struct real_format *); >extern void real_from_target (struct real_value *, const long *, > enum machine_mode); > >extern void real_inf (struct real_value *); > >extern unsigned char real_nan (struct real_value *, const char *, int, enum machine_mode); > >extern void real_maxval (struct real_value *, int, enum machine_mode); > >extern void real_2expN (struct real_value *, int, enum machine_mode); > >extern unsigned int real_hash (const struct real_value *); > > > >extern const struct real_format ieee_single_format; >extern const struct real_format mips_single_format; >extern const struct real_format motorola_single_format; >extern const struct real_format spu_single_format; >extern const struct real_format ieee_double_format; >extern const struct real_format mips_double_format; >extern const struct real_format motorola_double_format; >extern const struct real_format ieee_extended_motorola_format; >extern const struct real_format ieee_extended_intel_96_format; >extern const struct real_format ieee_extended_intel_96_round_53_format; >extern const struct real_format ieee_extended_intel_128_format; >extern const struct real_format ibm_extended_format; >extern const struct real_format mips_extended_format; >extern const struct real_format ieee_quad_format; >extern const struct real_format mips_quad_format; >extern const struct real_format vax_f_format; >extern const struct real_format vax_d_format; >extern const struct real_format vax_g_format; >extern const struct real_format real_internal_format; >extern const struct real_format decimal_single_format; >extern const struct real_format decimal_double_format; >extern const struct real_format decimal_quad_format; >extern const struct real_format ieee_half_format; >extern const struct real_format arm_half_format; ># 385 "../../gcc/real.h" >extern struct real_value real_value_truncate (enum machine_mode, > struct real_value); > > > > >extern struct real_value real_value_negate (const struct real_value *); >extern struct real_value real_value_abs (const struct real_value *); > >extern int significand_size (enum machine_mode); > >extern struct real_value real_from_string2 (const char *, enum machine_mode); ># 414 "../../gcc/real.h" >extern int real_exponent (const struct real_value *); > > >extern void real_ldexp (struct real_value *, const struct real_value *, int); > > > > > >extern struct real_value dconst0; >extern struct real_value dconst1; >extern struct real_value dconst2; >extern struct real_value dconstm1; >extern struct real_value dconsthalf; > > > > > > >extern const struct real_value * dconst_e_ptr (void); > > >extern const struct real_value * dconst_third_ptr (void); > > >extern const struct real_value * dconst_sqrt2_ptr (void); > > > >struct real_value real_value_from_int_cst (const_tree, const_tree); ># 453 "../../gcc/real.h" >extern rtx const_double_from_real_value (struct real_value, enum machine_mode); > > >extern unsigned char exact_real_inverse (enum machine_mode, struct real_value *); > > > > >unsigned char real_can_shorten_arithmetic (enum machine_mode, enum machine_mode); > > >extern tree build_real (tree, struct real_value); > > >extern unsigned char real_sqrt (struct real_value *, enum machine_mode, > const struct real_value *); > > >extern unsigned char real_powi (struct real_value *, enum machine_mode, > const struct real_value *, long long); > > >extern void real_trunc (struct real_value *, enum machine_mode, > const struct real_value *); >extern void real_floor (struct real_value *, enum machine_mode, > const struct real_value *); >extern void real_ceil (struct real_value *, enum machine_mode, > const struct real_value *); >extern void real_round (struct real_value *, enum machine_mode, > const struct real_value *); > > >extern void real_copysign (struct real_value *, const struct real_value *); > > >extern unsigned char real_isinteger (const struct real_value *c, enum machine_mode mode); > > > > >extern void get_max_float (const struct real_format *, char *, size_t); ># 29 "../../gcc/rtl.h" 2 ># 1 "../../gcc/vec.h" 1 ># 472 "../../gcc/vec.h" >extern void *vec_gc_p_reserve (void *, int ); >extern void *vec_gc_p_reserve_exact (void *, int ); >extern void *vec_gc_o_reserve (void *, int, size_t, size_t ); >extern void *vec_gc_o_reserve_exact (void *, int, size_t, size_t > ); >extern void ggc_free (void *); > >extern void *vec_heap_p_reserve (void *, int ); >extern void *vec_heap_p_reserve_exact (void *, int ); >extern void *vec_heap_o_reserve (void *, int, size_t, size_t ); >extern void *vec_heap_o_reserve_exact (void *, int, size_t, size_t > ); >extern void dump_vec_loc_statistics (void); ># 514 "../../gcc/vec.h" >typedef struct vec_prefix >{ > unsigned num; > unsigned alloc; >} vec_prefix; ># 1351 "../../gcc/vec.h" >extern void *vec_stack_p_reserve (void *, int ); >extern void *vec_stack_p_reserve_exact (void *, int ); >extern void *vec_stack_p_reserve_exact_1 (int, void *); >extern void *vec_stack_o_reserve (void *, int, size_t, size_t ); >extern void *vec_stack_o_reserve_exact (void *, int, size_t, size_t > ); >extern void vec_stack_free (void *); ># 30 "../../gcc/rtl.h" 2 ># 1 "../../gcc/vecir.h" 1 ># 28 "../../gcc/vecir.h" >static __inline__ void VEC_tree_must_be_pointer_type (void) { (void)((tree)1 == (void *)1); } typedef struct VEC_tree_base { struct vec_prefix prefix; tree vec[1]; } VEC_tree_base; typedef struct VEC_tree_none { VEC_tree_base base; } VEC_tree_none; static __inline__ unsigned VEC_tree_base_length (const VEC_tree_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ tree VEC_tree_base_last (const VEC_tree_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ tree VEC_tree_base_index (const VEC_tree_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_tree_base_iterate (const VEC_tree_base *vec_, unsigned ix_, tree *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (tree) 0; return 0; } } static __inline__ size_t VEC_tree_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_tree_base, vec) + alloc_ * sizeof(tree); } static __inline__ void VEC_tree_base_embedded_init (VEC_tree_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_tree_base_space (VEC_tree_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_tree_base_splice (VEC_tree_base *dst_, VEC_tree_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (tree)); dst_->prefix.num += len_; } } static __inline__ tree *VEC_tree_base_quick_push (VEC_tree_base *vec_, tree obj_ ) { tree *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ tree VEC_tree_base_pop (VEC_tree_base *vec_ ) { tree obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_tree_base_truncate (VEC_tree_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ tree VEC_tree_base_replace (VEC_tree_base *vec_, unsigned ix_, tree obj_ ) { tree old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ tree *VEC_tree_base_quick_insert (VEC_tree_base *vec_, unsigned ix_, tree obj_ ) { tree *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (tree)); *slot_ = obj_; return slot_; } static __inline__ tree VEC_tree_base_ordered_remove (VEC_tree_base *vec_, unsigned ix_ ) { tree *slot_; tree obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (tree)); return obj_; } static __inline__ tree VEC_tree_base_unordered_remove (VEC_tree_base *vec_, unsigned ix_ ) { tree *slot_; tree obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_tree_base_block_remove (VEC_tree_base *vec_, unsigned ix_, unsigned len_ ) { tree *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (tree)); } static __inline__ tree *VEC_tree_base_address (VEC_tree_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_tree_base_lower_bound (VEC_tree_base *vec_, const tree obj_, unsigned char (*lessthan_)(const tree, const tree) ) { unsigned int len_ = VEC_tree_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { tree middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_tree_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_tree_gc { VEC_tree_base base; } VEC_tree_gc; static __inline__ VEC_tree_gc *VEC_tree_gc_alloc (int alloc_ ) { return (VEC_tree_gc *) vec_gc_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_tree_gc_free (VEC_tree_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_tree_gc *VEC_tree_gc_copy (VEC_tree_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_tree_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_tree_gc *)(vec_gc_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (tree) * len_); } return new_vec_; } static __inline__ int VEC_tree_gc_reserve (VEC_tree_gc **vec_, int alloc_ ) { int extend = !VEC_tree_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_tree_gc *) vec_gc_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_tree_gc_reserve_exact (VEC_tree_gc **vec_, int alloc_ ) { int extend = !VEC_tree_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_tree_gc *) vec_gc_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_tree_gc_safe_grow (VEC_tree_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_tree_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_tree_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_tree_gc_safe_grow_cleared (VEC_tree_gc **vec_, int size_ ) { int oldsize = VEC_tree_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_tree_gc_safe_grow (vec_, size_ ); memset (&(VEC_tree_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (tree) * (size_ - oldsize)); } static __inline__ void VEC_tree_gc_safe_splice (VEC_tree_gc **dst_, VEC_tree_base *src_ ) { if (src_) { VEC_tree_gc_reserve_exact (dst_, src_->prefix.num ); VEC_tree_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ tree *VEC_tree_gc_safe_push (VEC_tree_gc **vec_, tree obj_ ) { VEC_tree_gc_reserve (vec_, 1 ); return VEC_tree_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ tree *VEC_tree_gc_safe_insert (VEC_tree_gc **vec_, unsigned ix_, tree obj_ ) { VEC_tree_gc_reserve (vec_, 1 ); return VEC_tree_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; >typedef struct VEC_tree_heap { VEC_tree_base base; } VEC_tree_heap; static __inline__ VEC_tree_heap *VEC_tree_heap_alloc (int alloc_ ) { return (VEC_tree_heap *) vec_heap_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_tree_heap_free (VEC_tree_heap **vec_) { if (*vec_) (free) (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_tree_heap *VEC_tree_heap_copy (VEC_tree_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_tree_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_tree_heap *)(vec_heap_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (tree) * len_); } return new_vec_; } static __inline__ int VEC_tree_heap_reserve (VEC_tree_heap **vec_, int alloc_ ) { int extend = !VEC_tree_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_tree_heap *) vec_heap_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_tree_heap_reserve_exact (VEC_tree_heap **vec_, int alloc_ ) { int extend = !VEC_tree_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_tree_heap *) vec_heap_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_tree_heap_safe_grow (VEC_tree_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_tree_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_tree_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_tree_heap_safe_grow_cleared (VEC_tree_heap **vec_, int size_ ) { int oldsize = VEC_tree_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_tree_heap_safe_grow (vec_, size_ ); memset (&(VEC_tree_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (tree) * (size_ - oldsize)); } static __inline__ void VEC_tree_heap_safe_splice (VEC_tree_heap **dst_, VEC_tree_base *src_ ) { if (src_) { VEC_tree_heap_reserve_exact (dst_, src_->prefix.num ); VEC_tree_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ tree *VEC_tree_heap_safe_push (VEC_tree_heap **vec_, tree obj_ ) { VEC_tree_heap_reserve (vec_, 1 ); return VEC_tree_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ tree *VEC_tree_heap_safe_insert (VEC_tree_heap **vec_, unsigned ix_, tree obj_ ) { VEC_tree_heap_reserve (vec_, 1 ); return VEC_tree_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; > > >static __inline__ void VEC_gimple_must_be_pointer_type (void) { (void)((gimple)1 == (void *)1); } typedef struct VEC_gimple_base { struct vec_prefix prefix; gimple vec[1]; } VEC_gimple_base; typedef struct VEC_gimple_none { VEC_gimple_base base; } VEC_gimple_none; static __inline__ unsigned VEC_gimple_base_length (const VEC_gimple_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ gimple VEC_gimple_base_last (const VEC_gimple_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ gimple VEC_gimple_base_index (const VEC_gimple_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_gimple_base_iterate (const VEC_gimple_base *vec_, unsigned ix_, gimple *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (gimple) 0; return 0; } } static __inline__ size_t VEC_gimple_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_gimple_base, vec) + alloc_ * sizeof(gimple); } static __inline__ void VEC_gimple_base_embedded_init (VEC_gimple_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_gimple_base_space (VEC_gimple_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_gimple_base_splice (VEC_gimple_base *dst_, VEC_gimple_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (gimple)); dst_->prefix.num += len_; } } static __inline__ gimple *VEC_gimple_base_quick_push (VEC_gimple_base *vec_, gimple obj_ ) { gimple *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ gimple VEC_gimple_base_pop (VEC_gimple_base *vec_ ) { gimple obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_gimple_base_truncate (VEC_gimple_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ gimple VEC_gimple_base_replace (VEC_gimple_base *vec_, unsigned ix_, gimple obj_ ) { gimple old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ gimple *VEC_gimple_base_quick_insert (VEC_gimple_base *vec_, unsigned ix_, gimple obj_ ) { gimple *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (gimple)); *slot_ = obj_; return slot_; } static __inline__ gimple VEC_gimple_base_ordered_remove (VEC_gimple_base *vec_, unsigned ix_ ) { gimple *slot_; gimple obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (gimple)); return obj_; } static __inline__ gimple VEC_gimple_base_unordered_remove (VEC_gimple_base *vec_, unsigned ix_ ) { gimple *slot_; gimple obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_gimple_base_block_remove (VEC_gimple_base *vec_, unsigned ix_, unsigned len_ ) { gimple *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (gimple)); } static __inline__ gimple *VEC_gimple_base_address (VEC_gimple_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_gimple_base_lower_bound (VEC_gimple_base *vec_, const gimple obj_, unsigned char (*lessthan_)(const gimple, const gimple) ) { unsigned int len_ = VEC_gimple_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { gimple middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_gimple_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_gimple_heap { VEC_gimple_base base; } VEC_gimple_heap; static __inline__ VEC_gimple_heap *VEC_gimple_heap_alloc (int alloc_ ) { return (VEC_gimple_heap *) vec_heap_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_gimple_heap_free (VEC_gimple_heap **vec_) { if (*vec_) (free) (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_gimple_heap *VEC_gimple_heap_copy (VEC_gimple_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_gimple_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_gimple_heap *)(vec_heap_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (gimple) * len_); } return new_vec_; } static __inline__ int VEC_gimple_heap_reserve (VEC_gimple_heap **vec_, int alloc_ ) { int extend = !VEC_gimple_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_gimple_heap *) vec_heap_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_gimple_heap_reserve_exact (VEC_gimple_heap **vec_, int alloc_ ) { int extend = !VEC_gimple_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_gimple_heap *) vec_heap_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_gimple_heap_safe_grow (VEC_gimple_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_gimple_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_gimple_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_gimple_heap_safe_grow_cleared (VEC_gimple_heap **vec_, int size_ ) { int oldsize = VEC_gimple_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_gimple_heap_safe_grow (vec_, size_ ); memset (&(VEC_gimple_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (gimple) * (size_ - oldsize)); } static __inline__ void VEC_gimple_heap_safe_splice (VEC_gimple_heap **dst_, VEC_gimple_base *src_ ) { if (src_) { VEC_gimple_heap_reserve_exact (dst_, src_->prefix.num ); VEC_gimple_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ gimple *VEC_gimple_heap_safe_push (VEC_gimple_heap **vec_, gimple obj_ ) { VEC_gimple_heap_reserve (vec_, 1 ); return VEC_gimple_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ gimple *VEC_gimple_heap_safe_insert (VEC_gimple_heap **vec_, unsigned ix_, gimple obj_ ) { VEC_gimple_heap_reserve (vec_, 1 ); return VEC_gimple_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; >typedef struct VEC_gimple_gc { VEC_gimple_base base; } VEC_gimple_gc; static __inline__ VEC_gimple_gc *VEC_gimple_gc_alloc (int alloc_ ) { return (VEC_gimple_gc *) vec_gc_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_gimple_gc_free (VEC_gimple_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_gimple_gc *VEC_gimple_gc_copy (VEC_gimple_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_gimple_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_gimple_gc *)(vec_gc_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (gimple) * len_); } return new_vec_; } static __inline__ int VEC_gimple_gc_reserve (VEC_gimple_gc **vec_, int alloc_ ) { int extend = !VEC_gimple_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_gimple_gc *) vec_gc_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_gimple_gc_reserve_exact (VEC_gimple_gc **vec_, int alloc_ ) { int extend = !VEC_gimple_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_gimple_gc *) vec_gc_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_gimple_gc_safe_grow (VEC_gimple_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_gimple_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_gimple_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_gimple_gc_safe_grow_cleared (VEC_gimple_gc **vec_, int size_ ) { int oldsize = VEC_gimple_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_gimple_gc_safe_grow (vec_, size_ ); memset (&(VEC_gimple_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (gimple) * (size_ - oldsize)); } static __inline__ void VEC_gimple_gc_safe_splice (VEC_gimple_gc **dst_, VEC_gimple_base *src_ ) { if (src_) { VEC_gimple_gc_reserve_exact (dst_, src_->prefix.num ); VEC_gimple_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ gimple *VEC_gimple_gc_safe_push (VEC_gimple_gc **vec_, gimple obj_ ) { VEC_gimple_gc_reserve (vec_, 1 ); return VEC_gimple_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ gimple *VEC_gimple_gc_safe_insert (VEC_gimple_gc **vec_, unsigned ix_, gimple obj_ ) { VEC_gimple_gc_reserve (vec_, 1 ); return VEC_gimple_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; > > >typedef gimple *gimple_p; >static __inline__ void VEC_gimple_p_must_be_pointer_type (void) { (void)((gimple_p)1 == (void *)1); } typedef struct VEC_gimple_p_base { struct vec_prefix prefix; gimple_p vec[1]; } VEC_gimple_p_base; typedef struct VEC_gimple_p_none { VEC_gimple_p_base base; } VEC_gimple_p_none; static __inline__ unsigned VEC_gimple_p_base_length (const VEC_gimple_p_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ gimple_p VEC_gimple_p_base_last (const VEC_gimple_p_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ gimple_p VEC_gimple_p_base_index (const VEC_gimple_p_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_gimple_p_base_iterate (const VEC_gimple_p_base *vec_, unsigned ix_, gimple_p *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (gimple_p) 0; return 0; } } static __inline__ size_t VEC_gimple_p_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_gimple_p_base, vec) + alloc_ * sizeof(gimple_p); } static __inline__ void VEC_gimple_p_base_embedded_init (VEC_gimple_p_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_gimple_p_base_space (VEC_gimple_p_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_gimple_p_base_splice (VEC_gimple_p_base *dst_, VEC_gimple_p_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (gimple_p)); dst_->prefix.num += len_; } } static __inline__ gimple_p *VEC_gimple_p_base_quick_push (VEC_gimple_p_base *vec_, gimple_p obj_ ) { gimple_p *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ gimple_p VEC_gimple_p_base_pop (VEC_gimple_p_base *vec_ ) { gimple_p obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_gimple_p_base_truncate (VEC_gimple_p_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ gimple_p VEC_gimple_p_base_replace (VEC_gimple_p_base *vec_, unsigned ix_, gimple_p obj_ ) { gimple_p old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ gimple_p *VEC_gimple_p_base_quick_insert (VEC_gimple_p_base *vec_, unsigned ix_, gimple_p obj_ ) { gimple_p *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (gimple_p)); *slot_ = obj_; return slot_; } static __inline__ gimple_p VEC_gimple_p_base_ordered_remove (VEC_gimple_p_base *vec_, unsigned ix_ ) { gimple_p *slot_; gimple_p obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (gimple_p)); return obj_; } static __inline__ gimple_p VEC_gimple_p_base_unordered_remove (VEC_gimple_p_base *vec_, unsigned ix_ ) { gimple_p *slot_; gimple_p obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_gimple_p_base_block_remove (VEC_gimple_p_base *vec_, unsigned ix_, unsigned len_ ) { gimple_p *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (gimple_p)); } static __inline__ gimple_p *VEC_gimple_p_base_address (VEC_gimple_p_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_gimple_p_base_lower_bound (VEC_gimple_p_base *vec_, const gimple_p obj_, unsigned char (*lessthan_)(const gimple_p, const gimple_p) ) { unsigned int len_ = VEC_gimple_p_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { gimple_p middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_gimple_p_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_gimple_p_heap { VEC_gimple_p_base base; } VEC_gimple_p_heap; static __inline__ VEC_gimple_p_heap *VEC_gimple_p_heap_alloc (int alloc_ ) { return (VEC_gimple_p_heap *) vec_heap_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_gimple_p_heap_free (VEC_gimple_p_heap **vec_) { if (*vec_) (free) (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_gimple_p_heap *VEC_gimple_p_heap_copy (VEC_gimple_p_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_gimple_p_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_gimple_p_heap *)(vec_heap_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (gimple_p) * len_); } return new_vec_; } static __inline__ int VEC_gimple_p_heap_reserve (VEC_gimple_p_heap **vec_, int alloc_ ) { int extend = !VEC_gimple_p_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_gimple_p_heap *) vec_heap_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_gimple_p_heap_reserve_exact (VEC_gimple_p_heap **vec_, int alloc_ ) { int extend = !VEC_gimple_p_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_gimple_p_heap *) vec_heap_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_gimple_p_heap_safe_grow (VEC_gimple_p_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_gimple_p_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_gimple_p_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_gimple_p_heap_safe_grow_cleared (VEC_gimple_p_heap **vec_, int size_ ) { int oldsize = VEC_gimple_p_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_gimple_p_heap_safe_grow (vec_, size_ ); memset (&(VEC_gimple_p_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (gimple_p) * (size_ - oldsize)); } static __inline__ void VEC_gimple_p_heap_safe_splice (VEC_gimple_p_heap **dst_, VEC_gimple_p_base *src_ ) { if (src_) { VEC_gimple_p_heap_reserve_exact (dst_, src_->prefix.num ); VEC_gimple_p_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ gimple_p *VEC_gimple_p_heap_safe_push (VEC_gimple_p_heap **vec_, gimple_p obj_ ) { VEC_gimple_p_heap_reserve (vec_, 1 ); return VEC_gimple_p_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ gimple_p *VEC_gimple_p_heap_safe_insert (VEC_gimple_p_heap **vec_, unsigned ix_, gimple_p obj_ ) { VEC_gimple_p_heap_reserve (vec_, 1 ); return VEC_gimple_p_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; > > >static __inline__ void VEC_gimple_seq_must_be_pointer_type (void) { (void)((gimple_seq)1 == (void *)1); } typedef struct VEC_gimple_seq_base { struct vec_prefix prefix; gimple_seq vec[1]; } VEC_gimple_seq_base; typedef struct VEC_gimple_seq_none { VEC_gimple_seq_base base; } VEC_gimple_seq_none; static __inline__ unsigned VEC_gimple_seq_base_length (const VEC_gimple_seq_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ gimple_seq VEC_gimple_seq_base_last (const VEC_gimple_seq_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ gimple_seq VEC_gimple_seq_base_index (const VEC_gimple_seq_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_gimple_seq_base_iterate (const VEC_gimple_seq_base *vec_, unsigned ix_, gimple_seq *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (gimple_seq) 0; return 0; } } static __inline__ size_t VEC_gimple_seq_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_gimple_seq_base, vec) + alloc_ * sizeof(gimple_seq); } static __inline__ void VEC_gimple_seq_base_embedded_init (VEC_gimple_seq_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_gimple_seq_base_space (VEC_gimple_seq_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_gimple_seq_base_splice (VEC_gimple_seq_base *dst_, VEC_gimple_seq_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (gimple_seq)); dst_->prefix.num += len_; } } static __inline__ gimple_seq *VEC_gimple_seq_base_quick_push (VEC_gimple_seq_base *vec_, gimple_seq obj_ ) { gimple_seq *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ gimple_seq VEC_gimple_seq_base_pop (VEC_gimple_seq_base *vec_ ) { gimple_seq obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_gimple_seq_base_truncate (VEC_gimple_seq_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ gimple_seq VEC_gimple_seq_base_replace (VEC_gimple_seq_base *vec_, unsigned ix_, gimple_seq obj_ ) { gimple_seq old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ gimple_seq *VEC_gimple_seq_base_quick_insert (VEC_gimple_seq_base *vec_, unsigned ix_, gimple_seq obj_ ) { gimple_seq *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (gimple_seq)); *slot_ = obj_; return slot_; } static __inline__ gimple_seq VEC_gimple_seq_base_ordered_remove (VEC_gimple_seq_base *vec_, unsigned ix_ ) { gimple_seq *slot_; gimple_seq obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (gimple_seq)); return obj_; } static __inline__ gimple_seq VEC_gimple_seq_base_unordered_remove (VEC_gimple_seq_base *vec_, unsigned ix_ ) { gimple_seq *slot_; gimple_seq obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_gimple_seq_base_block_remove (VEC_gimple_seq_base *vec_, unsigned ix_, unsigned len_ ) { gimple_seq *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (gimple_seq)); } static __inline__ gimple_seq *VEC_gimple_seq_base_address (VEC_gimple_seq_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_gimple_seq_base_lower_bound (VEC_gimple_seq_base *vec_, const gimple_seq obj_, unsigned char (*lessthan_)(const gimple_seq, const gimple_seq) ) { unsigned int len_ = VEC_gimple_seq_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { gimple_seq middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_gimple_seq_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_gimple_seq_gc { VEC_gimple_seq_base base; } VEC_gimple_seq_gc; static __inline__ VEC_gimple_seq_gc *VEC_gimple_seq_gc_alloc (int alloc_ ) { return (VEC_gimple_seq_gc *) vec_gc_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_gimple_seq_gc_free (VEC_gimple_seq_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_gimple_seq_gc *VEC_gimple_seq_gc_copy (VEC_gimple_seq_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_gimple_seq_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_gimple_seq_gc *)(vec_gc_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (gimple_seq) * len_); } return new_vec_; } static __inline__ int VEC_gimple_seq_gc_reserve (VEC_gimple_seq_gc **vec_, int alloc_ ) { int extend = !VEC_gimple_seq_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_gimple_seq_gc *) vec_gc_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_gimple_seq_gc_reserve_exact (VEC_gimple_seq_gc **vec_, int alloc_ ) { int extend = !VEC_gimple_seq_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_gimple_seq_gc *) vec_gc_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_gimple_seq_gc_safe_grow (VEC_gimple_seq_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_gimple_seq_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_gimple_seq_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_gimple_seq_gc_safe_grow_cleared (VEC_gimple_seq_gc **vec_, int size_ ) { int oldsize = VEC_gimple_seq_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_gimple_seq_gc_safe_grow (vec_, size_ ); memset (&(VEC_gimple_seq_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (gimple_seq) * (size_ - oldsize)); } static __inline__ void VEC_gimple_seq_gc_safe_splice (VEC_gimple_seq_gc **dst_, VEC_gimple_seq_base *src_ ) { if (src_) { VEC_gimple_seq_gc_reserve_exact (dst_, src_->prefix.num ); VEC_gimple_seq_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ gimple_seq *VEC_gimple_seq_gc_safe_push (VEC_gimple_seq_gc **vec_, gimple_seq obj_ ) { VEC_gimple_seq_gc_reserve (vec_, 1 ); return VEC_gimple_seq_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ gimple_seq *VEC_gimple_seq_gc_safe_insert (VEC_gimple_seq_gc **vec_, unsigned ix_, gimple_seq obj_ ) { VEC_gimple_seq_gc_reserve (vec_, 1 ); return VEC_gimple_seq_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; >typedef struct VEC_gimple_seq_heap { VEC_gimple_seq_base base; } VEC_gimple_seq_heap; static __inline__ VEC_gimple_seq_heap *VEC_gimple_seq_heap_alloc (int alloc_ ) { return (VEC_gimple_seq_heap *) vec_heap_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_gimple_seq_heap_free (VEC_gimple_seq_heap **vec_) { if (*vec_) (free) (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_gimple_seq_heap *VEC_gimple_seq_heap_copy (VEC_gimple_seq_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_gimple_seq_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_gimple_seq_heap *)(vec_heap_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (gimple_seq) * len_); } return new_vec_; } static __inline__ int VEC_gimple_seq_heap_reserve (VEC_gimple_seq_heap **vec_, int alloc_ ) { int extend = !VEC_gimple_seq_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_gimple_seq_heap *) vec_heap_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_gimple_seq_heap_reserve_exact (VEC_gimple_seq_heap **vec_, int alloc_ ) { int extend = !VEC_gimple_seq_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_gimple_seq_heap *) vec_heap_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_gimple_seq_heap_safe_grow (VEC_gimple_seq_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_gimple_seq_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_gimple_seq_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_gimple_seq_heap_safe_grow_cleared (VEC_gimple_seq_heap **vec_, int size_ ) { int oldsize = VEC_gimple_seq_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_gimple_seq_heap_safe_grow (vec_, size_ ); memset (&(VEC_gimple_seq_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (gimple_seq) * (size_ - oldsize)); } static __inline__ void VEC_gimple_seq_heap_safe_splice (VEC_gimple_seq_heap **dst_, VEC_gimple_seq_base *src_ ) { if (src_) { VEC_gimple_seq_heap_reserve_exact (dst_, src_->prefix.num ); VEC_gimple_seq_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ gimple_seq *VEC_gimple_seq_heap_safe_push (VEC_gimple_seq_heap **vec_, gimple_seq obj_ ) { VEC_gimple_seq_heap_reserve (vec_, 1 ); return VEC_gimple_seq_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ gimple_seq *VEC_gimple_seq_heap_safe_insert (VEC_gimple_seq_heap **vec_, unsigned ix_, gimple_seq obj_ ) { VEC_gimple_seq_heap_reserve (vec_, 1 ); return VEC_gimple_seq_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; > > >static __inline__ void VEC_rtx_must_be_pointer_type (void) { (void)((rtx)1 == (void *)1); } typedef struct VEC_rtx_base { struct vec_prefix prefix; rtx vec[1]; } VEC_rtx_base; typedef struct VEC_rtx_none { VEC_rtx_base base; } VEC_rtx_none; static __inline__ unsigned VEC_rtx_base_length (const VEC_rtx_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ rtx VEC_rtx_base_last (const VEC_rtx_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ rtx VEC_rtx_base_index (const VEC_rtx_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_rtx_base_iterate (const VEC_rtx_base *vec_, unsigned ix_, rtx *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (rtx) 0; return 0; } } static __inline__ size_t VEC_rtx_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_rtx_base, vec) + alloc_ * sizeof(rtx); } static __inline__ void VEC_rtx_base_embedded_init (VEC_rtx_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_rtx_base_space (VEC_rtx_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_rtx_base_splice (VEC_rtx_base *dst_, VEC_rtx_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (rtx)); dst_->prefix.num += len_; } } static __inline__ rtx *VEC_rtx_base_quick_push (VEC_rtx_base *vec_, rtx obj_ ) { rtx *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ rtx VEC_rtx_base_pop (VEC_rtx_base *vec_ ) { rtx obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_rtx_base_truncate (VEC_rtx_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ rtx VEC_rtx_base_replace (VEC_rtx_base *vec_, unsigned ix_, rtx obj_ ) { rtx old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ rtx *VEC_rtx_base_quick_insert (VEC_rtx_base *vec_, unsigned ix_, rtx obj_ ) { rtx *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (rtx)); *slot_ = obj_; return slot_; } static __inline__ rtx VEC_rtx_base_ordered_remove (VEC_rtx_base *vec_, unsigned ix_ ) { rtx *slot_; rtx obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (rtx)); return obj_; } static __inline__ rtx VEC_rtx_base_unordered_remove (VEC_rtx_base *vec_, unsigned ix_ ) { rtx *slot_; rtx obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_rtx_base_block_remove (VEC_rtx_base *vec_, unsigned ix_, unsigned len_ ) { rtx *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (rtx)); } static __inline__ rtx *VEC_rtx_base_address (VEC_rtx_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_rtx_base_lower_bound (VEC_rtx_base *vec_, const rtx obj_, unsigned char (*lessthan_)(const rtx, const rtx) ) { unsigned int len_ = VEC_rtx_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { rtx middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_rtx_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_rtx_heap { VEC_rtx_base base; } VEC_rtx_heap; static __inline__ VEC_rtx_heap *VEC_rtx_heap_alloc (int alloc_ ) { return (VEC_rtx_heap *) vec_heap_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_rtx_heap_free (VEC_rtx_heap **vec_) { if (*vec_) (free) (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_rtx_heap *VEC_rtx_heap_copy (VEC_rtx_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_rtx_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_rtx_heap *)(vec_heap_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (rtx) * len_); } return new_vec_; } static __inline__ int VEC_rtx_heap_reserve (VEC_rtx_heap **vec_, int alloc_ ) { int extend = !VEC_rtx_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_rtx_heap *) vec_heap_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_rtx_heap_reserve_exact (VEC_rtx_heap **vec_, int alloc_ ) { int extend = !VEC_rtx_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_rtx_heap *) vec_heap_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_rtx_heap_safe_grow (VEC_rtx_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_rtx_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_rtx_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_rtx_heap_safe_grow_cleared (VEC_rtx_heap **vec_, int size_ ) { int oldsize = VEC_rtx_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_rtx_heap_safe_grow (vec_, size_ ); memset (&(VEC_rtx_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (rtx) * (size_ - oldsize)); } static __inline__ void VEC_rtx_heap_safe_splice (VEC_rtx_heap **dst_, VEC_rtx_base *src_ ) { if (src_) { VEC_rtx_heap_reserve_exact (dst_, src_->prefix.num ); VEC_rtx_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ rtx *VEC_rtx_heap_safe_push (VEC_rtx_heap **vec_, rtx obj_ ) { VEC_rtx_heap_reserve (vec_, 1 ); return VEC_rtx_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ rtx *VEC_rtx_heap_safe_insert (VEC_rtx_heap **vec_, unsigned ix_, rtx obj_ ) { VEC_rtx_heap_reserve (vec_, 1 ); return VEC_rtx_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; >typedef struct VEC_rtx_gc { VEC_rtx_base base; } VEC_rtx_gc; static __inline__ VEC_rtx_gc *VEC_rtx_gc_alloc (int alloc_ ) { return (VEC_rtx_gc *) vec_gc_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_rtx_gc_free (VEC_rtx_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_rtx_gc *VEC_rtx_gc_copy (VEC_rtx_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_rtx_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_rtx_gc *)(vec_gc_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (rtx) * len_); } return new_vec_; } static __inline__ int VEC_rtx_gc_reserve (VEC_rtx_gc **vec_, int alloc_ ) { int extend = !VEC_rtx_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_rtx_gc *) vec_gc_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_rtx_gc_reserve_exact (VEC_rtx_gc **vec_, int alloc_ ) { int extend = !VEC_rtx_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_rtx_gc *) vec_gc_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_rtx_gc_safe_grow (VEC_rtx_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_rtx_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_rtx_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_rtx_gc_safe_grow_cleared (VEC_rtx_gc **vec_, int size_ ) { int oldsize = VEC_rtx_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_rtx_gc_safe_grow (vec_, size_ ); memset (&(VEC_rtx_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (rtx) * (size_ - oldsize)); } static __inline__ void VEC_rtx_gc_safe_splice (VEC_rtx_gc **dst_, VEC_rtx_base *src_ ) { if (src_) { VEC_rtx_gc_reserve_exact (dst_, src_->prefix.num ); VEC_rtx_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ rtx *VEC_rtx_gc_safe_push (VEC_rtx_gc **vec_, rtx obj_ ) { VEC_rtx_gc_reserve (vec_, 1 ); return VEC_rtx_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ rtx *VEC_rtx_gc_safe_insert (VEC_rtx_gc **vec_, unsigned ix_, rtx obj_ ) { VEC_rtx_gc_reserve (vec_, 1 ); return VEC_rtx_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; ># 31 "../../gcc/rtl.h" 2 ># 1 "../../gcc/fixed-value.h" 1 ># 25 "../../gcc/fixed-value.h" ># 1 "../../gcc/double-int.h" 1 ># 24 "../../gcc/double-int.h" ># 1 "/usr/include/gmp.h" 1 3 4 ># 45 "/usr/include/gmp.h" 3 4 ># 1 "/usr/include/gmp-ppc.h" 1 3 4 ># 53 "/usr/include/gmp-ppc.h" 3 4 ># 1 "/builddir/build/BUILD/gcc-4.7.1-20120629/obj-ppc64-redhat-linux/./prev-gcc/include/stddef.h" 1 3 4 ># 54 "/usr/include/gmp-ppc.h" 2 3 4 ># 191 "/usr/include/gmp-ppc.h" 3 4 >typedef unsigned long int mp_limb_t; >typedef long int mp_limb_signed_t; > > >typedef unsigned long int mp_bitcnt_t; > > > > >typedef struct >{ > int _mp_alloc; > > int _mp_size; > > > mp_limb_t *_mp_d; >} __mpz_struct; > > > > >typedef __mpz_struct MP_INT; >typedef __mpz_struct mpz_t[1]; > >typedef mp_limb_t * mp_ptr; >typedef const mp_limb_t * mp_srcptr; > > > > > > > >typedef long int mp_size_t; >typedef long int mp_exp_t; > > >typedef struct >{ > __mpz_struct _mp_num; > __mpz_struct _mp_den; >} __mpq_struct; > >typedef __mpq_struct MP_RAT; >typedef __mpq_struct mpq_t[1]; > >typedef struct >{ > int _mp_prec; > > > > int _mp_size; > > > mp_exp_t _mp_exp; > mp_limb_t *_mp_d; >} __mpf_struct; > > >typedef __mpf_struct mpf_t[1]; > > >typedef enum >{ > GMP_RAND_ALG_DEFAULT = 0, > GMP_RAND_ALG_LC = GMP_RAND_ALG_DEFAULT >} gmp_randalg_t; > > >typedef struct >{ > mpz_t _mp_seed; > gmp_randalg_t _mp_alg; > union { > void *_mp_lc; > } _mp_algdata; >} __gmp_randstate_struct; >typedef __gmp_randstate_struct gmp_randstate_t[1]; > > > >typedef const __mpz_struct *mpz_srcptr; >typedef __mpz_struct *mpz_ptr; >typedef const __mpf_struct *mpf_srcptr; >typedef __mpf_struct *mpf_ptr; >typedef const __mpq_struct *mpq_srcptr; >typedef __mpq_struct *mpq_ptr; ># 541 "/usr/include/gmp-ppc.h" 3 4 > void __gmp_set_memory_functions (void *(*) (size_t), void *(*) (void *, size_t, size_t), void (*) (void *, size_t)) > > ; > > > void __gmp_get_memory_functions (void *(**) (size_t), void *(**) (void *, size_t, size_t), void (**) (void *, size_t)) > > ; > > > extern const int __gmp_bits_per_limb; > > > extern int __gmp_errno; > > > extern const char * const __gmp_version; > > > > > > > void __gmp_randinit (gmp_randstate_t, gmp_randalg_t, ...); > > > void __gmp_randinit_default (gmp_randstate_t); > > > void __gmp_randinit_lc_2exp (gmp_randstate_t, mpz_srcptr, unsigned long int, mp_bitcnt_t) > > ; > > > int __gmp_randinit_lc_2exp_size (gmp_randstate_t, mp_bitcnt_t); > > > void __gmp_randinit_mt (gmp_randstate_t); > > > void __gmp_randinit_set (gmp_randstate_t, const __gmp_randstate_struct *); > > > void __gmp_randseed (gmp_randstate_t, mpz_srcptr); > > > void __gmp_randseed_ui (gmp_randstate_t, unsigned long int); > > > void __gmp_randclear (gmp_randstate_t); > > > unsigned long __gmp_urandomb_ui (gmp_randstate_t, unsigned long); > > > unsigned long __gmp_urandomm_ui (gmp_randstate_t, unsigned long); > > > > > > int __gmp_asprintf (char **, const char *, ...); > > > > int __gmp_fprintf (FILE *, const char *, ...); ># 620 "/usr/include/gmp-ppc.h" 3 4 > int __gmp_printf (const char *, ...); > > > int __gmp_snprintf (char *, size_t, const char *, ...); > > > int __gmp_sprintf (char *, const char *, ...); > > > > int __gmp_vasprintf (char **, const char *, va_list); > > > > > int __gmp_vfprintf (FILE *, const char *, va_list); > > > > > int __gmp_vprintf (const char *, va_list); > > > > > int __gmp_vsnprintf (char *, size_t, const char *, va_list); > > > > > int __gmp_vsprintf (char *, const char *, va_list); > > > > > > > > int __gmp_fscanf (FILE *, const char *, ...); > > > > int __gmp_scanf (const char *, ...); > > > int __gmp_sscanf (const char *, const char *, ...); > > > > int __gmp_vfscanf (FILE *, const char *, va_list); > > > > > int __gmp_vscanf (const char *, va_list); > > > > > int __gmp_vsscanf (const char *, const char *, va_list); > > > > > > > > void *__gmpz_realloc (mpz_ptr, mp_size_t); > > > > void __gmpz_abs (mpz_ptr, mpz_srcptr); > > > > void __gmpz_add (mpz_ptr, mpz_srcptr, mpz_srcptr); > > > void __gmpz_add_ui (mpz_ptr, mpz_srcptr, unsigned long int); > > > void __gmpz_addmul (mpz_ptr, mpz_srcptr, mpz_srcptr); > > > void __gmpz_addmul_ui (mpz_ptr, mpz_srcptr, unsigned long int); > > > void __gmpz_and (mpz_ptr, mpz_srcptr, mpz_srcptr); > > > void __gmpz_array_init (mpz_ptr, mp_size_t, mp_size_t); > > > void __gmpz_bin_ui (mpz_ptr, mpz_srcptr, unsigned long int); > > > void __gmpz_bin_uiui (mpz_ptr, unsigned long int, unsigned long int); > > > void __gmpz_cdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr); > > > void __gmpz_cdiv_q_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); > > > unsigned long int __gmpz_cdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int); > > > void __gmpz_cdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr); > > > unsigned long int __gmpz_cdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int); > > > void __gmpz_cdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr); > > > void __gmpz_cdiv_r_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); > > > unsigned long int __gmpz_cdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int); > > > unsigned long int __gmpz_cdiv_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__)); > > > void __gmpz_clear (mpz_ptr); > > > void __gmpz_clears (mpz_ptr, ...); > > > void __gmpz_clrbit (mpz_ptr, mp_bitcnt_t); > > > int __gmpz_cmp (mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__)); > > > int __gmpz_cmp_d (mpz_srcptr, double) __attribute__ ((__pure__)); > > > int __gmpz_cmp_si (mpz_srcptr, signed long int) __attribute__ ((__pure__)); > > > int __gmpz_cmp_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__)); > > > int __gmpz_cmpabs (mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__)); > > > int __gmpz_cmpabs_d (mpz_srcptr, double) __attribute__ ((__pure__)); > > > int __gmpz_cmpabs_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__)); > > > void __gmpz_com (mpz_ptr, mpz_srcptr); > > > void __gmpz_combit (mpz_ptr, mp_bitcnt_t); > > > int __gmpz_congruent_p (mpz_srcptr, mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__)); > > > int __gmpz_congruent_2exp_p (mpz_srcptr, mpz_srcptr, mp_bitcnt_t) __attribute__ ((__pure__)); > > > int __gmpz_congruent_ui_p (mpz_srcptr, unsigned long, unsigned long) __attribute__ ((__pure__)); > > > void __gmpz_divexact (mpz_ptr, mpz_srcptr, mpz_srcptr); > > > void __gmpz_divexact_ui (mpz_ptr, mpz_srcptr, unsigned long); > > > int __gmpz_divisible_p (mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__)); > > > int __gmpz_divisible_ui_p (mpz_srcptr, unsigned long) __attribute__ ((__pure__)); > > > int __gmpz_divisible_2exp_p (mpz_srcptr, mp_bitcnt_t) __attribute__ ((__pure__)); > > > void __gmpz_dump (mpz_srcptr); > > > void *__gmpz_export (void *, size_t *, int, size_t, int, size_t, mpz_srcptr); > > > void __gmpz_fac_ui (mpz_ptr, unsigned long int); > > > void __gmpz_fdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr); > > > void __gmpz_fdiv_q_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); > > > unsigned long int __gmpz_fdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int); > > > void __gmpz_fdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr); > > > unsigned long int __gmpz_fdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int); > > > void __gmpz_fdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr); > > > void __gmpz_fdiv_r_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); > > > unsigned long int __gmpz_fdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int); > > > unsigned long int __gmpz_fdiv_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__)); > > > void __gmpz_fib_ui (mpz_ptr, unsigned long int); > > > void __gmpz_fib2_ui (mpz_ptr, mpz_ptr, unsigned long int); > > > int __gmpz_fits_sint_p (mpz_srcptr) __attribute__ ((__pure__)); > > > int __gmpz_fits_slong_p (mpz_srcptr) __attribute__ ((__pure__)); > > > int __gmpz_fits_sshort_p (mpz_srcptr) __attribute__ ((__pure__)); > > > > int __gmpz_fits_uint_p (mpz_srcptr) __attribute__ ((__pure__)); > > > > > int __gmpz_fits_ulong_p (mpz_srcptr) __attribute__ ((__pure__)); > > > > > int __gmpz_fits_ushort_p (mpz_srcptr) __attribute__ ((__pure__)); > > > > void __gmpz_gcd (mpz_ptr, mpz_srcptr, mpz_srcptr); > > > unsigned long int __gmpz_gcd_ui (mpz_ptr, mpz_srcptr, unsigned long int); > > > void __gmpz_gcdext (mpz_ptr, mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr); > > > double __gmpz_get_d (mpz_srcptr) __attribute__ ((__pure__)); > > > double __gmpz_get_d_2exp (signed long int *, mpz_srcptr); > > > long int __gmpz_get_si (mpz_srcptr) __attribute__ ((__pure__)); > > > char *__gmpz_get_str (char *, int, mpz_srcptr); > > > > unsigned long int __gmpz_get_ui (mpz_srcptr) __attribute__ ((__pure__)); > > > > > mp_limb_t __gmpz_getlimbn (mpz_srcptr, mp_size_t) __attribute__ ((__pure__)); > > > > mp_bitcnt_t __gmpz_hamdist (mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__)); > > > void __gmpz_import (mpz_ptr, size_t, int, size_t, int, size_t, const void *); > > > void __gmpz_init (mpz_ptr); > > > void __gmpz_init2 (mpz_ptr, mp_bitcnt_t); > > > void __gmpz_inits (mpz_ptr, ...); > > > void __gmpz_init_set (mpz_ptr, mpz_srcptr); > > > void __gmpz_init_set_d (mpz_ptr, double); > > > void __gmpz_init_set_si (mpz_ptr, signed long int); > > > int __gmpz_init_set_str (mpz_ptr, const char *, int); > > > void __gmpz_init_set_ui (mpz_ptr, unsigned long int); > > > > size_t __gmpz_inp_raw (mpz_ptr, FILE *); > > > > > size_t __gmpz_inp_str (mpz_ptr, FILE *, int); > > > > int __gmpz_invert (mpz_ptr, mpz_srcptr, mpz_srcptr); > > > void __gmpz_ior (mpz_ptr, mpz_srcptr, mpz_srcptr); > > > int __gmpz_jacobi (mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__)); > > > > > int __gmpz_kronecker_si (mpz_srcptr, long) __attribute__ ((__pure__)); > > > int __gmpz_kronecker_ui (mpz_srcptr, unsigned long) __attribute__ ((__pure__)); > > > int __gmpz_si_kronecker (long, mpz_srcptr) __attribute__ ((__pure__)); > > > int __gmpz_ui_kronecker (unsigned long, mpz_srcptr) __attribute__ ((__pure__)); > > > void __gmpz_lcm (mpz_ptr, mpz_srcptr, mpz_srcptr); > > > void __gmpz_lcm_ui (mpz_ptr, mpz_srcptr, unsigned long); > > > > > void __gmpz_lucnum_ui (mpz_ptr, unsigned long int); > > > void __gmpz_lucnum2_ui (mpz_ptr, mpz_ptr, unsigned long int); > > > int __gmpz_millerrabin (mpz_srcptr, int) __attribute__ ((__pure__)); > > > void __gmpz_mod (mpz_ptr, mpz_srcptr, mpz_srcptr); > > > > > void __gmpz_mul (mpz_ptr, mpz_srcptr, mpz_srcptr); > > > void __gmpz_mul_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); > > > void __gmpz_mul_si (mpz_ptr, mpz_srcptr, long int); > > > void __gmpz_mul_ui (mpz_ptr, mpz_srcptr, unsigned long int); > > > > void __gmpz_neg (mpz_ptr, mpz_srcptr); > > > > void __gmpz_nextprime (mpz_ptr, mpz_srcptr); > > > > size_t __gmpz_out_raw (FILE *, mpz_srcptr); > > > > > size_t __gmpz_out_str (FILE *, int, mpz_srcptr); > > > > int __gmpz_perfect_power_p (mpz_srcptr) __attribute__ ((__pure__)); > > > > int __gmpz_perfect_square_p (mpz_srcptr) __attribute__ ((__pure__)); > > > > > mp_bitcnt_t __gmpz_popcount (mpz_srcptr) __attribute__ ((__pure__)); > > > > void __gmpz_pow_ui (mpz_ptr, mpz_srcptr, unsigned long int); > > > void __gmpz_powm (mpz_ptr, mpz_srcptr, mpz_srcptr, mpz_srcptr); > > > void __gmpz_powm_sec (mpz_ptr, mpz_srcptr, mpz_srcptr, mpz_srcptr); > > > void __gmpz_powm_ui (mpz_ptr, mpz_srcptr, unsigned long int, mpz_srcptr); > > > int __gmpz_probab_prime_p (mpz_srcptr, int) __attribute__ ((__pure__)); > > > void __gmpz_random (mpz_ptr, mp_size_t); > > > void __gmpz_random2 (mpz_ptr, mp_size_t); > > > void __gmpz_realloc2 (mpz_ptr, mp_bitcnt_t); > > > mp_bitcnt_t __gmpz_remove (mpz_ptr, mpz_srcptr, mpz_srcptr); > > > int __gmpz_root (mpz_ptr, mpz_srcptr, unsigned long int); > > > void __gmpz_rootrem (mpz_ptr,mpz_ptr, mpz_srcptr, unsigned long int); > > > void __gmpz_rrandomb (mpz_ptr, gmp_randstate_t, mp_bitcnt_t); > > > mp_bitcnt_t __gmpz_scan0 (mpz_srcptr, mp_bitcnt_t) __attribute__ ((__pure__)); > > > mp_bitcnt_t __gmpz_scan1 (mpz_srcptr, mp_bitcnt_t) __attribute__ ((__pure__)); > > > void __gmpz_set (mpz_ptr, mpz_srcptr); > > > void __gmpz_set_d (mpz_ptr, double); > > > void __gmpz_set_f (mpz_ptr, mpf_srcptr); > > > > void __gmpz_set_q (mpz_ptr, mpq_srcptr); > > > > void __gmpz_set_si (mpz_ptr, signed long int); > > > int __gmpz_set_str (mpz_ptr, const char *, int); > > > void __gmpz_set_ui (mpz_ptr, unsigned long int); > > > void __gmpz_setbit (mpz_ptr, mp_bitcnt_t); > > > > size_t __gmpz_size (mpz_srcptr) __attribute__ ((__pure__)); > > > > size_t __gmpz_sizeinbase (mpz_srcptr, int) __attribute__ ((__pure__)); > > > void __gmpz_sqrt (mpz_ptr, mpz_srcptr); > > > void __gmpz_sqrtrem (mpz_ptr, mpz_ptr, mpz_srcptr); > > > void __gmpz_sub (mpz_ptr, mpz_srcptr, mpz_srcptr); > > > void __gmpz_sub_ui (mpz_ptr, mpz_srcptr, unsigned long int); > > > void __gmpz_ui_sub (mpz_ptr, unsigned long int, mpz_srcptr); > > > void __gmpz_submul (mpz_ptr, mpz_srcptr, mpz_srcptr); > > > void __gmpz_submul_ui (mpz_ptr, mpz_srcptr, unsigned long int); > > > void __gmpz_swap (mpz_ptr, mpz_ptr) ; > > > unsigned long int __gmpz_tdiv_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__)); > > > void __gmpz_tdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr); > > > void __gmpz_tdiv_q_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); > > > unsigned long int __gmpz_tdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int); > > > void __gmpz_tdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr); > > > unsigned long int __gmpz_tdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int); > > > void __gmpz_tdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr); > > > void __gmpz_tdiv_r_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); > > > unsigned long int __gmpz_tdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int); > > > int __gmpz_tstbit (mpz_srcptr, mp_bitcnt_t) __attribute__ ((__pure__)); > > > void __gmpz_ui_pow_ui (mpz_ptr, unsigned long int, unsigned long int); > > > void __gmpz_urandomb (mpz_ptr, gmp_randstate_t, mp_bitcnt_t); > > > void __gmpz_urandomm (mpz_ptr, gmp_randstate_t, mpz_srcptr); > > > > void __gmpz_xor (mpz_ptr, mpz_srcptr, mpz_srcptr); > > > > > > > void __gmpq_abs (mpq_ptr, mpq_srcptr); > > > > void __gmpq_add (mpq_ptr, mpq_srcptr, mpq_srcptr); > > > void __gmpq_canonicalize (mpq_ptr); > > > void __gmpq_clear (mpq_ptr); > > > void __gmpq_clears (mpq_ptr, ...); > > > int __gmpq_cmp (mpq_srcptr, mpq_srcptr) __attribute__ ((__pure__)); > > > int __gmpq_cmp_si (mpq_srcptr, long, unsigned long) __attribute__ ((__pure__)); > > > int __gmpq_cmp_ui (mpq_srcptr, unsigned long int, unsigned long int) __attribute__ ((__pure__)); > > > void __gmpq_div (mpq_ptr, mpq_srcptr, mpq_srcptr); > > > void __gmpq_div_2exp (mpq_ptr, mpq_srcptr, mp_bitcnt_t); > > > int __gmpq_equal (mpq_srcptr, mpq_srcptr) __attribute__ ((__pure__)); > > > void __gmpq_get_num (mpz_ptr, mpq_srcptr); > > > void __gmpq_get_den (mpz_ptr, mpq_srcptr); > > > double __gmpq_get_d (mpq_srcptr) __attribute__ ((__pure__)); > > > char *__gmpq_get_str (char *, int, mpq_srcptr); > > > void __gmpq_init (mpq_ptr); > > > void __gmpq_inits (mpq_ptr, ...); > > > > size_t __gmpq_inp_str (mpq_ptr, FILE *, int); > > > > void __gmpq_inv (mpq_ptr, mpq_srcptr); > > > void __gmpq_mul (mpq_ptr, mpq_srcptr, mpq_srcptr); > > > void __gmpq_mul_2exp (mpq_ptr, mpq_srcptr, mp_bitcnt_t); > > > > void __gmpq_neg (mpq_ptr, mpq_srcptr); > > > > > size_t __gmpq_out_str (FILE *, int, mpq_srcptr); > > > > void __gmpq_set (mpq_ptr, mpq_srcptr); > > > void __gmpq_set_d (mpq_ptr, double); > > > void __gmpq_set_den (mpq_ptr, mpz_srcptr); > > > void __gmpq_set_f (mpq_ptr, mpf_srcptr); > > > void __gmpq_set_num (mpq_ptr, mpz_srcptr); > > > void __gmpq_set_si (mpq_ptr, signed long int, unsigned long int); > > > int __gmpq_set_str (mpq_ptr, const char *, int); > > > void __gmpq_set_ui (mpq_ptr, unsigned long int, unsigned long int); > > > void __gmpq_set_z (mpq_ptr, mpz_srcptr); > > > void __gmpq_sub (mpq_ptr, mpq_srcptr, mpq_srcptr); > > > void __gmpq_swap (mpq_ptr, mpq_ptr) ; > > > > > > void __gmpf_abs (mpf_ptr, mpf_srcptr); > > > void __gmpf_add (mpf_ptr, mpf_srcptr, mpf_srcptr); > > > void __gmpf_add_ui (mpf_ptr, mpf_srcptr, unsigned long int); > > void __gmpf_ceil (mpf_ptr, mpf_srcptr); > > > void __gmpf_clear (mpf_ptr); > > > void __gmpf_clears (mpf_ptr, ...); > > > int __gmpf_cmp (mpf_srcptr, mpf_srcptr) __attribute__ ((__pure__)); > > > int __gmpf_cmp_d (mpf_srcptr, double) __attribute__ ((__pure__)); > > > int __gmpf_cmp_si (mpf_srcptr, signed long int) __attribute__ ((__pure__)); > > > int __gmpf_cmp_ui (mpf_srcptr, unsigned long int) __attribute__ ((__pure__)); > > > void __gmpf_div (mpf_ptr, mpf_srcptr, mpf_srcptr); > > > void __gmpf_div_2exp (mpf_ptr, mpf_srcptr, mp_bitcnt_t); > > > void __gmpf_div_ui (mpf_ptr, mpf_srcptr, unsigned long int); > > > void __gmpf_dump (mpf_srcptr); > > > int __gmpf_eq (mpf_srcptr, mpf_srcptr, mp_bitcnt_t) __attribute__ ((__pure__)); > > > int __gmpf_fits_sint_p (mpf_srcptr) __attribute__ ((__pure__)); > > > int __gmpf_fits_slong_p (mpf_srcptr) __attribute__ ((__pure__)); > > > int __gmpf_fits_sshort_p (mpf_srcptr) __attribute__ ((__pure__)); > > > int __gmpf_fits_uint_p (mpf_srcptr) __attribute__ ((__pure__)); > > > int __gmpf_fits_ulong_p (mpf_srcptr) __attribute__ ((__pure__)); > > > int __gmpf_fits_ushort_p (mpf_srcptr) __attribute__ ((__pure__)); > > > void __gmpf_floor (mpf_ptr, mpf_srcptr); > > > double __gmpf_get_d (mpf_srcptr) __attribute__ ((__pure__)); > > > double __gmpf_get_d_2exp (signed long int *, mpf_srcptr); > > > mp_bitcnt_t __gmpf_get_default_prec (void) __attribute__ ((__pure__)); > > > mp_bitcnt_t __gmpf_get_prec (mpf_srcptr) __attribute__ ((__pure__)); > > > long __gmpf_get_si (mpf_srcptr) __attribute__ ((__pure__)); > > > char *__gmpf_get_str (char *, mp_exp_t *, int, size_t, mpf_srcptr); > > > unsigned long __gmpf_get_ui (mpf_srcptr) __attribute__ ((__pure__)); > > > void __gmpf_init (mpf_ptr); > > > void __gmpf_init2 (mpf_ptr, mp_bitcnt_t); > > > void __gmpf_inits (mpf_ptr, ...); > > > void __gmpf_init_set (mpf_ptr, mpf_srcptr); > > > void __gmpf_init_set_d (mpf_ptr, double); > > > void __gmpf_init_set_si (mpf_ptr, signed long int); > > > int __gmpf_init_set_str (mpf_ptr, const char *, int); > > > void __gmpf_init_set_ui (mpf_ptr, unsigned long int); > > > > size_t __gmpf_inp_str (mpf_ptr, FILE *, int); > > > > int __gmpf_integer_p (mpf_srcptr) __attribute__ ((__pure__)); > > > void __gmpf_mul (mpf_ptr, mpf_srcptr, mpf_srcptr); > > > void __gmpf_mul_2exp (mpf_ptr, mpf_srcptr, mp_bitcnt_t); > > > void __gmpf_mul_ui (mpf_ptr, mpf_srcptr, unsigned long int); > > > void __gmpf_neg (mpf_ptr, mpf_srcptr); > > > > size_t __gmpf_out_str (FILE *, int, size_t, mpf_srcptr); > > > > void __gmpf_pow_ui (mpf_ptr, mpf_srcptr, unsigned long int); > > > void __gmpf_random2 (mpf_ptr, mp_size_t, mp_exp_t); > > > void __gmpf_reldiff (mpf_ptr, mpf_srcptr, mpf_srcptr); > > > void __gmpf_set (mpf_ptr, mpf_srcptr); > > > void __gmpf_set_d (mpf_ptr, double); > > > void __gmpf_set_default_prec (mp_bitcnt_t) ; > > > void __gmpf_set_prec (mpf_ptr, mp_bitcnt_t); > > > void __gmpf_set_prec_raw (mpf_ptr, mp_bitcnt_t) ; > > > void __gmpf_set_q (mpf_ptr, mpq_srcptr); > > > void __gmpf_set_si (mpf_ptr, signed long int); > > > int __gmpf_set_str (mpf_ptr, const char *, int); > > > void __gmpf_set_ui (mpf_ptr, unsigned long int); > > > void __gmpf_set_z (mpf_ptr, mpz_srcptr); > > > size_t __gmpf_size (mpf_srcptr) __attribute__ ((__pure__)); > > > void __gmpf_sqrt (mpf_ptr, mpf_srcptr); > > > void __gmpf_sqrt_ui (mpf_ptr, unsigned long int); > > > void __gmpf_sub (mpf_ptr, mpf_srcptr, mpf_srcptr); > > > void __gmpf_sub_ui (mpf_ptr, mpf_srcptr, unsigned long int); > > > void __gmpf_swap (mpf_ptr, mpf_ptr) ; > > > void __gmpf_trunc (mpf_ptr, mpf_srcptr); > > > void __gmpf_ui_div (mpf_ptr, unsigned long int, mpf_srcptr); > > > void __gmpf_ui_sub (mpf_ptr, unsigned long int, mpf_srcptr); > > > void __gmpf_urandomb (mpf_t, gmp_randstate_t, mp_bitcnt_t); ># 1500 "/usr/include/gmp-ppc.h" 3 4 > mp_limb_t __gmpn_add (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr,mp_size_t); > > > > > mp_limb_t __gmpn_add_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t) ; > > > > mp_limb_t __gmpn_add_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); > > > mp_limb_t __gmpn_addmul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); > > > > int __gmpn_cmp (mp_srcptr, mp_srcptr, mp_size_t) __attribute__ ((__pure__)); > > > > > > > mp_limb_t __gmpn_divexact_by3c (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); > > > > > > mp_limb_t __gmpn_divrem (mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr, mp_size_t); > > > mp_limb_t __gmpn_divrem_1 (mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_limb_t); > > > mp_limb_t __gmpn_divrem_2 (mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr); > > > mp_size_t __gmpn_gcd (mp_ptr, mp_ptr, mp_size_t, mp_ptr, mp_size_t); > > > mp_limb_t __gmpn_gcd_1 (mp_srcptr, mp_size_t, mp_limb_t) __attribute__ ((__pure__)); > > > mp_limb_t __gmpn_gcdext_1 (mp_limb_signed_t *, mp_limb_signed_t *, mp_limb_t, mp_limb_t); > > > mp_size_t __gmpn_gcdext (mp_ptr, mp_ptr, mp_size_t *, mp_ptr, mp_size_t, mp_ptr, mp_size_t); > > > size_t __gmpn_get_str (unsigned char *, int, mp_ptr, mp_size_t); > > > mp_bitcnt_t __gmpn_hamdist (mp_srcptr, mp_srcptr, mp_size_t) __attribute__ ((__pure__)); > > > mp_limb_t __gmpn_lshift (mp_ptr, mp_srcptr, mp_size_t, unsigned int); > > > mp_limb_t __gmpn_mod_1 (mp_srcptr, mp_size_t, mp_limb_t) __attribute__ ((__pure__)); > > > mp_limb_t __gmpn_mul (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t); > > > mp_limb_t __gmpn_mul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); > > > void __gmpn_mul_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); > > > void __gmpn_sqr (mp_ptr, mp_srcptr, mp_size_t); > > > > mp_limb_t __gmpn_neg (mp_ptr, mp_srcptr, mp_size_t); > > > > > void __gmpn_com (mp_ptr, mp_srcptr, mp_size_t); > > > > int __gmpn_perfect_square_p (mp_srcptr, mp_size_t) __attribute__ ((__pure__)); > > > int __gmpn_perfect_power_p (mp_srcptr, mp_size_t) __attribute__ ((__pure__)); > > > mp_bitcnt_t __gmpn_popcount (mp_srcptr, mp_size_t) __attribute__ ((__pure__)); > > > mp_size_t __gmpn_pow_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t, mp_ptr); > > > > mp_limb_t __gmpn_preinv_mod_1 (mp_srcptr, mp_size_t, mp_limb_t, mp_limb_t) __attribute__ ((__pure__)); > > > void __gmpn_random (mp_ptr, mp_size_t); > > > void __gmpn_random2 (mp_ptr, mp_size_t); > > > mp_limb_t __gmpn_rshift (mp_ptr, mp_srcptr, mp_size_t, unsigned int); > > > mp_bitcnt_t __gmpn_scan0 (mp_srcptr, mp_bitcnt_t) __attribute__ ((__pure__)); > > > mp_bitcnt_t __gmpn_scan1 (mp_srcptr, mp_bitcnt_t) __attribute__ ((__pure__)); > > > mp_size_t __gmpn_set_str (mp_ptr, const unsigned char *, size_t, int); > > > mp_size_t __gmpn_sqrtrem (mp_ptr, mp_ptr, mp_srcptr, mp_size_t); > > > > mp_limb_t __gmpn_sub (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr,mp_size_t); > > > > > mp_limb_t __gmpn_sub_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t) ; > > > > mp_limb_t __gmpn_sub_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); > > > mp_limb_t __gmpn_submul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); > > > void __gmpn_tdiv_qr (mp_ptr, mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t); > > > void __gmpn_and_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); > > void __gmpn_andn_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); > > void __gmpn_nand_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); > > void __gmpn_ior_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); > > void __gmpn_iorn_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); > > void __gmpn_nior_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); > > void __gmpn_xor_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); > > void __gmpn_xnor_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); > > > void __gmpn_copyi (mp_ptr, mp_srcptr, mp_size_t); > > void __gmpn_copyd (mp_ptr, mp_srcptr, mp_size_t); > > void __gmpn_zero (mp_ptr, mp_size_t); ># 1680 "/usr/include/gmp-ppc.h" 3 4 >extern __inline__ void >__gmpz_abs (mpz_ptr __gmp_w, mpz_srcptr __gmp_u) >{ > if (__gmp_w != __gmp_u) > __gmpz_set (__gmp_w, __gmp_u); > __gmp_w->_mp_size = ((__gmp_w->_mp_size) >= 0 ? (__gmp_w->_mp_size) : -(__gmp_w->_mp_size)); >} ># 1704 "/usr/include/gmp-ppc.h" 3 4 >extern __inline__ > >int >__gmpz_fits_uint_p (mpz_srcptr __gmp_z) >{ > mp_size_t __gmp_n = __gmp_z->_mp_size; mp_ptr __gmp_p = __gmp_z->_mp_d; return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= (~ (unsigned) 0)));; >} > > > > >extern __inline__ > >int >__gmpz_fits_ulong_p (mpz_srcptr __gmp_z) >{ > mp_size_t __gmp_n = __gmp_z->_mp_size; mp_ptr __gmp_p = __gmp_z->_mp_d; return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= (~ (unsigned long) 0)));; >} > > > > >extern __inline__ > >int >__gmpz_fits_ushort_p (mpz_srcptr __gmp_z) >{ > mp_size_t __gmp_n = __gmp_z->_mp_size; mp_ptr __gmp_p = __gmp_z->_mp_d; return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= ((unsigned short) ~0)));; >} > > > > >extern __inline__ > >unsigned long >__gmpz_get_ui (mpz_srcptr __gmp_z) >{ > mp_ptr __gmp_p = __gmp_z->_mp_d; > mp_size_t __gmp_n = __gmp_z->_mp_size; > mp_limb_t __gmp_l = __gmp_p[0]; > > > > > > > return (__gmp_n != 0 ? __gmp_l : 0); ># 1760 "/usr/include/gmp-ppc.h" 3 4 >} > > > > >extern __inline__ > >mp_limb_t >__gmpz_getlimbn (mpz_srcptr __gmp_z, mp_size_t __gmp_n) >{ > mp_limb_t __gmp_result = 0; > if (__builtin_expect ((__gmp_n >= 0 && __gmp_n < ((__gmp_z->_mp_size) >= 0 ? (__gmp_z->_mp_size) : -(__gmp_z->_mp_size))) != 0, 1)) > __gmp_result = __gmp_z->_mp_d[__gmp_n]; > return __gmp_result; >} > > > >extern __inline__ void >__gmpz_neg (mpz_ptr __gmp_w, mpz_srcptr __gmp_u) >{ > if (__gmp_w != __gmp_u) > __gmpz_set (__gmp_w, __gmp_u); > __gmp_w->_mp_size = - __gmp_w->_mp_size; >} > > > > >extern __inline__ > >int >__gmpz_perfect_square_p (mpz_srcptr __gmp_a) >{ > mp_size_t __gmp_asize; > int __gmp_result; > > __gmp_asize = __gmp_a->_mp_size; > __gmp_result = (__gmp_asize >= 0); > if (__builtin_expect ((__gmp_asize > 0) != 0, 1)) > __gmp_result = __gmpn_perfect_square_p (__gmp_a->_mp_d, __gmp_asize); > return __gmp_result; >} > > > > >extern __inline__ > >mp_bitcnt_t >__gmpz_popcount (mpz_srcptr __gmp_u) >{ > mp_size_t __gmp_usize; > mp_bitcnt_t __gmp_result; > > __gmp_usize = __gmp_u->_mp_size; > __gmp_result = (__gmp_usize < 0 ? (~ (unsigned long) 0) : 0); > if (__builtin_expect ((__gmp_usize > 0) != 0, 1)) > __gmp_result = __gmpn_popcount (__gmp_u->_mp_d, __gmp_usize); > return __gmp_result; >} > > > > >extern __inline__ > >void >__gmpz_set_q (mpz_ptr __gmp_w, mpq_srcptr __gmp_u) >{ > __gmpz_tdiv_q (__gmp_w, (&((__gmp_u)->_mp_num)), (&((__gmp_u)->_mp_den))); >} > > > > >extern __inline__ > >size_t >__gmpz_size (mpz_srcptr __gmp_z) >{ > return ((__gmp_z->_mp_size) >= 0 ? (__gmp_z->_mp_size) : -(__gmp_z->_mp_size)); >} > > > > > > >extern __inline__ void >__gmpq_abs (mpq_ptr __gmp_w, mpq_srcptr __gmp_u) >{ > if (__gmp_w != __gmp_u) > __gmpq_set (__gmp_w, __gmp_u); > __gmp_w->_mp_num._mp_size = ((__gmp_w->_mp_num._mp_size) >= 0 ? (__gmp_w->_mp_num._mp_size) : -(__gmp_w->_mp_num._mp_size)); >} > > > >extern __inline__ void >__gmpq_neg (mpq_ptr __gmp_w, mpq_srcptr __gmp_u) >{ > if (__gmp_w != __gmp_u) > __gmpq_set (__gmp_w, __gmp_u); > __gmp_w->_mp_num._mp_size = - __gmp_w->_mp_num._mp_size; >} ># 2102 "/usr/include/gmp-ppc.h" 3 4 >extern __inline__ > >mp_limb_t >__gmpn_add (mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize) >{ > mp_limb_t __gmp_c; > do { mp_size_t __gmp_i; mp_limb_t __gmp_x; __gmp_i = (__gmp_ysize); if (__gmp_i != 0) { if (__gmpn_add_n (__gmp_wp, __gmp_xp, __gmp_yp, __gmp_i)) { do { if (__gmp_i >= (__gmp_xsize)) { (__gmp_c) = 1; goto __gmp_done; } __gmp_x = (__gmp_xp)[__gmp_i]; } while ((((__gmp_wp)[__gmp_i++] = (__gmp_x + 1) & ((~ ((mp_limb_t) (0))) >> 0)) == 0)); } } if ((__gmp_wp) != (__gmp_xp)) do { mp_size_t __gmp_j; ; for (__gmp_j = (__gmp_i); __gmp_j < (__gmp_xsize); __gmp_j++) (__gmp_wp)[__gmp_j] = (__gmp_xp)[__gmp_j]; } while (0); (__gmp_c) = 0; __gmp_done: ; } while (0); > return __gmp_c; >} > > > > >extern __inline__ > >mp_limb_t >__gmpn_add_1 (mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n) >{ > mp_limb_t __gmp_c; > do { mp_size_t __gmp_i; mp_limb_t __gmp_x, __gmp_r; __gmp_x = (__gmp_src)[0]; __gmp_r = __gmp_x + (__gmp_n); (__gmp_dst)[0] = __gmp_r; if (((__gmp_r) < ((__gmp_n)))) { (__gmp_c) = 1; for (__gmp_i = 1; __gmp_i < (__gmp_size);) { __gmp_x = (__gmp_src)[__gmp_i]; __gmp_r = __gmp_x + 1; (__gmp_dst)[__gmp_i] = __gmp_r; ++__gmp_i; if (!((__gmp_r) < (1))) { if ((__gmp_src) != (__gmp_dst)) do { mp_size_t __gmp_j; ; for (__gmp_j = (__gmp_i); __gmp_j < (__gmp_size); __gmp_j++) (__gmp_dst)[__gmp_j] = (__gmp_src)[__gmp_j]; } while (0); (__gmp_c) = 0; break; } } } else { if ((__gmp_src) != (__gmp_dst)) do { mp_size_t __gmp_j; ; for (__gmp_j = (1); __gmp_j < (__gmp_size); __gmp_j++) (__gmp_dst)[__gmp_j] = (__gmp_src)[__gmp_j]; } while (0); (__gmp_c) = 0; } } while (0); > return __gmp_c; >} > > > > >extern __inline__ > >int >__gmpn_cmp (mp_srcptr __gmp_xp, mp_srcptr __gmp_yp, mp_size_t __gmp_size) >{ > int __gmp_result; > do { mp_size_t __gmp_i; mp_limb_t __gmp_x, __gmp_y; (__gmp_result) = 0; __gmp_i = (__gmp_size); while (--__gmp_i >= 0) { __gmp_x = (__gmp_xp)[__gmp_i]; __gmp_y = (__gmp_yp)[__gmp_i]; if (__gmp_x != __gmp_y) { (__gmp_result) = (__gmp_x > __gmp_y ? 1 : -1); break; } } } while (0); > return __gmp_result; >} > > > > >extern __inline__ > >mp_limb_t >__gmpn_sub (mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize) >{ > mp_limb_t __gmp_c; > do { mp_size_t __gmp_i; mp_limb_t __gmp_x; __gmp_i = (__gmp_ysize); if (__gmp_i != 0) { if (__gmpn_sub_n (__gmp_wp, __gmp_xp, __gmp_yp, __gmp_i)) { do { if (__gmp_i >= (__gmp_xsize)) { (__gmp_c) = 1; goto __gmp_done; } __gmp_x = (__gmp_xp)[__gmp_i]; } while ((((__gmp_wp)[__gmp_i++] = (__gmp_x - 1) & ((~ ((mp_limb_t) (0))) >> 0)), __gmp_x == 0)); } } if ((__gmp_wp) != (__gmp_xp)) do { mp_size_t __gmp_j; ; for (__gmp_j = (__gmp_i); __gmp_j < (__gmp_xsize); __gmp_j++) (__gmp_wp)[__gmp_j] = (__gmp_xp)[__gmp_j]; } while (0); (__gmp_c) = 0; __gmp_done: ; } while (0); > return __gmp_c; >} > > > > >extern __inline__ > >mp_limb_t >__gmpn_sub_1 (mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n) >{ > mp_limb_t __gmp_c; > do { mp_size_t __gmp_i; mp_limb_t __gmp_x, __gmp_r; __gmp_x = (__gmp_src)[0]; __gmp_r = __gmp_x - (__gmp_n); (__gmp_dst)[0] = __gmp_r; if (((__gmp_x) < ((__gmp_n)))) { (__gmp_c) = 1; for (__gmp_i = 1; __gmp_i < (__gmp_size);) { __gmp_x = (__gmp_src)[__gmp_i]; __gmp_r = __gmp_x - 1; (__gmp_dst)[__gmp_i] = __gmp_r; ++__gmp_i; if (!((__gmp_x) < (1))) { if ((__gmp_src) != (__gmp_dst)) do { mp_size_t __gmp_j; ; for (__gmp_j = (__gmp_i); __gmp_j < (__gmp_size); __gmp_j++) (__gmp_dst)[__gmp_j] = (__gmp_src)[__gmp_j]; } while (0); (__gmp_c) = 0; break; } } } else { if ((__gmp_src) != (__gmp_dst)) do { mp_size_t __gmp_j; ; for (__gmp_j = (1); __gmp_j < (__gmp_size); __gmp_j++) (__gmp_dst)[__gmp_j] = (__gmp_src)[__gmp_j]; } while (0); (__gmp_c) = 0; } } while (0); > return __gmp_c; >} > > > > >extern __inline__ > >mp_limb_t >__gmpn_neg (mp_ptr __gmp_rp, mp_srcptr __gmp_up, mp_size_t __gmp_n) >{ > mp_limb_t __gmp_ul, __gmp_cy; > __gmp_cy = 0; > do { > __gmp_ul = *__gmp_up++; > *__gmp_rp++ = -__gmp_ul - __gmp_cy; > __gmp_cy |= __gmp_ul != 0; > } while (--__gmp_n != 0); > return __gmp_cy; >} ># 2259 "/usr/include/gmp-ppc.h" 3 4 >enum >{ > GMP_ERROR_NONE = 0, > GMP_ERROR_UNSUPPORTED_ARGUMENT = 1, > GMP_ERROR_DIVISION_BY_ZERO = 2, > GMP_ERROR_SQRT_OF_NEGATIVE = 4, > GMP_ERROR_INVALID_ARGUMENT = 8 >}; ># 46 "/usr/include/gmp.h" 2 3 4 ># 25 "../../gcc/double-int.h" 2 ># 54 "../../gcc/double-int.h" >typedef struct >{ > unsigned long long low; > long long high; >} double_int; ># 67 "../../gcc/double-int.h" >static __inline__ double_int >shwi_to_double_int (long long cst) >{ > double_int r; > > r.low = (unsigned long long) cst; > r.high = cst < 0 ? -1 : 0; > > return r; >} ># 89 "../../gcc/double-int.h" >static __inline__ double_int >uhwi_to_double_int (unsigned long long cst) >{ > double_int r; > > r.low = cst; > r.high = 0; > > return r; >} > > > > >static __inline__ long long >double_int_to_shwi (double_int cst) >{ > return (long long) cst.low; >} > > > > >static __inline__ unsigned long long >double_int_to_uhwi (double_int cst) >{ > return cst.low; >} > >unsigned char double_int_fits_in_hwi_p (double_int, unsigned char); >unsigned char double_int_fits_in_shwi_p (double_int); > > > >static __inline__ unsigned char >double_int_fits_in_uhwi_p (double_int cst) >{ > return cst.high == 0; >} > > > > > > >double_int double_int_mul (double_int, double_int); >double_int double_int_mul_with_sign (double_int, double_int, unsigned char, int *); >double_int double_int_add (double_int, double_int); >double_int double_int_sub (double_int, double_int); >double_int double_int_neg (double_int); > > > > >double_int double_int_div (double_int, double_int, unsigned char, unsigned); >double_int double_int_sdiv (double_int, double_int, unsigned); >double_int double_int_udiv (double_int, double_int, unsigned); >double_int double_int_mod (double_int, double_int, unsigned char, unsigned); >double_int double_int_smod (double_int, double_int, unsigned); >double_int double_int_umod (double_int, double_int, unsigned); >double_int double_int_divmod (double_int, double_int, unsigned char, unsigned, double_int *); >double_int double_int_sdivmod (double_int, double_int, unsigned, double_int *); >double_int double_int_udivmod (double_int, double_int, unsigned, double_int *); > >double_int double_int_setbit (double_int, unsigned); >int double_int_ctz (double_int); > > > > > >static __inline__ double_int >double_int_not (double_int a) >{ > a.low = ~a.low; > a.high = ~a.high; > return a; >} > > > >static __inline__ double_int >double_int_ior (double_int a, double_int b) >{ > a.low |= b.low; > a.high |= b.high; > return a; >} > > > >static __inline__ double_int >double_int_and (double_int a, double_int b) >{ > a.low &= b.low; > a.high &= b.high; > return a; >} > > > >static __inline__ double_int >double_int_and_not (double_int a, double_int b) >{ > a.low &= ~b.low; > a.high &= ~b.high; > return a; >} > > > >static __inline__ double_int >double_int_xor (double_int a, double_int b) >{ > a.low ^= b.low; > a.high ^= b.high; > return a; >} > > > >double_int double_int_lshift (double_int, long long, unsigned int, unsigned char); >double_int double_int_rshift (double_int, long long, unsigned int, unsigned char); >double_int double_int_lrotate (double_int, long long, unsigned int); >double_int double_int_rrotate (double_int, long long, unsigned int); > > > > >static __inline__ unsigned char >double_int_negative_p (double_int cst) >{ > return cst.high < 0; >} > >int double_int_cmp (double_int, double_int, unsigned char); >int double_int_scmp (double_int, double_int); >int double_int_ucmp (double_int, double_int); > >double_int double_int_max (double_int, double_int, unsigned char); >double_int double_int_smax (double_int, double_int); >double_int double_int_umax (double_int, double_int); > >double_int double_int_min (double_int, double_int, unsigned char); >double_int double_int_smin (double_int, double_int); >double_int double_int_umin (double_int, double_int); > >void dump_double_int (FILE *, double_int, unsigned char); > > > >double_int double_int_ext (double_int, unsigned, unsigned char); >double_int double_int_sext (double_int, unsigned); >double_int double_int_zext (double_int, unsigned); >double_int double_int_mask (unsigned); ># 253 "../../gcc/double-int.h" >static __inline__ unsigned char >double_int_zero_p (double_int cst) >{ > return cst.low == 0 && cst.high == 0; >} > > > >static __inline__ unsigned char >double_int_one_p (double_int cst) >{ > return cst.low == 1 && cst.high == 0; >} > > > >static __inline__ unsigned char >double_int_minus_one_p (double_int cst) >{ > return (cst.low == (~((unsigned long long) 0)) && cst.high == -1); >} > > > >static __inline__ unsigned char >double_int_equal_p (double_int cst1, double_int cst2) >{ > return cst1.low == cst2.low && cst1.high == cst2.high; >} > > > > >extern int add_double_with_sign (unsigned long long, long long, > unsigned long long, long long, > unsigned long long *, long long *, > unsigned char); > > >extern int neg_double (unsigned long long, long long, > unsigned long long *, long long *); >extern int mul_double_with_sign (unsigned long long, long long, > unsigned long long, long long, > unsigned long long *, long long *, > unsigned char); > > >extern void lshift_double (unsigned long long, long long, > long long, unsigned int, > unsigned long long *, long long *, unsigned char); >extern void rshift_double (unsigned long long, long long, > long long, unsigned int, > unsigned long long *, long long *, unsigned char); >extern int div_and_round_double (unsigned, int, unsigned long long, > long long, unsigned long long, > long long, unsigned long long *, > long long *, unsigned long long *, > long long *); > > > > > >void mpz_set_double_int (mpz_t, double_int, unsigned char); >double_int mpz_get_double_int (const_tree, mpz_t, unsigned char); ># 26 "../../gcc/fixed-value.h" 2 > >struct fixed_value >{ > double_int data; > enum machine_mode mode; >}; ># 40 "../../gcc/fixed-value.h" >extern struct fixed_value fconst0[18]; >extern struct fixed_value fconst1[8]; ># 50 "../../gcc/fixed-value.h" >extern rtx const_fixed_from_fixed_value (struct fixed_value, enum machine_mode); > > >extern void fixed_from_string (struct fixed_value *, const char *, > enum machine_mode); > > >extern tree build_fixed (tree, struct fixed_value); > > >extern unsigned char fixed_convert (struct fixed_value *, enum machine_mode, > const struct fixed_value *, unsigned char); > > >extern unsigned char fixed_convert_from_int (struct fixed_value *, enum machine_mode, > double_int, unsigned char, unsigned char); > > >extern unsigned char fixed_convert_from_real (struct fixed_value *, enum machine_mode, > const struct real_value *, unsigned char); > > >extern void real_convert_from_fixed (struct real_value *, enum machine_mode, > const struct fixed_value *); > > >extern unsigned char fixed_identical (const struct fixed_value *, const struct fixed_value *); > > >extern unsigned int fixed_hash (const struct fixed_value *); > > > > > > > >extern void fixed_to_decimal (char *str, const struct fixed_value *, size_t); > > >extern unsigned char fixed_arithmetic (struct fixed_value *, int, const struct fixed_value *, > const struct fixed_value *, unsigned char); > > >extern unsigned char fixed_compare (int, const struct fixed_value *, > const struct fixed_value *); > > >extern unsigned char fixed_isneg (const struct fixed_value *); ># 32 "../../gcc/rtl.h" 2 ># 1 "../../gcc/alias.h" 1 ># 31 "../../gcc/alias.h" >typedef int alias_set_type; > >extern alias_set_type new_alias_set (void); >extern alias_set_type get_alias_set (tree); >extern alias_set_type get_deref_alias_set (tree); >extern alias_set_type get_varargs_alias_set (void); >extern alias_set_type get_frame_alias_set (void); >extern unsigned char component_uses_parent_alias_set (const_tree); >extern unsigned char alias_set_subset_of (alias_set_type, alias_set_type); >extern void record_alias_subset (alias_set_type, alias_set_type); >extern void record_component_aliases (tree); >extern int alias_sets_conflict_p (alias_set_type, alias_set_type); >extern int alias_sets_must_conflict_p (alias_set_type, alias_set_type); >extern int objects_must_conflict_p (tree, tree); >extern int nonoverlapping_memrefs_p (const_rtx, const_rtx, unsigned char); ># 33 "../../gcc/rtl.h" 2 ># 1 "../../gcc/../include/hashtab.h" 1 ># 47 "../../gcc/../include/hashtab.h" >typedef unsigned int hashval_t; > > > > >typedef hashval_t (*htab_hash) (const void *); > > > > > > >typedef int (*htab_eq) (const void *, const void *); > > > >typedef void (*htab_del) (void *); > > > > > >typedef int (*htab_trav) (void **, void *); > > > > > >typedef void *(*htab_alloc) (size_t, size_t); > > >typedef void (*htab_free) (void *); > > > >typedef void *(*htab_alloc_with_arg) (void *, size_t, size_t); >typedef void (*htab_free_with_arg) (void *, void *); ># 100 "../../gcc/../include/hashtab.h" >struct htab { > > htab_hash hash_f; > > > htab_eq eq_f; > > > htab_del del_f; > > > void ** entries; > > > size_t size; > > > size_t n_elements; > > > size_t n_deleted; > > > > unsigned int searches; > > > > unsigned int collisions; > > > htab_alloc alloc_f; > htab_free free_f; > > > void * alloc_arg; > htab_alloc_with_arg alloc_with_arg_f; > htab_free_with_arg free_with_arg_f; > > > > unsigned int size_prime_index; >}; > >typedef struct htab *htab_t; > > >enum insert_option {NO_INSERT, INSERT}; > > > >extern htab_t htab_create_alloc (size_t, htab_hash, > htab_eq, htab_del, > htab_alloc, htab_free); > >extern htab_t htab_create_alloc_ex (size_t, htab_hash, > htab_eq, htab_del, > void *, htab_alloc_with_arg, > htab_free_with_arg); > >extern htab_t htab_create_typed_alloc (size_t, htab_hash, htab_eq, htab_del, > htab_alloc, htab_alloc, htab_free); > > >extern htab_t htab_create (size_t, htab_hash, htab_eq, htab_del); >extern htab_t htab_try_create (size_t, htab_hash, htab_eq, htab_del); > >extern void htab_set_functions_ex (htab_t, htab_hash, > htab_eq, htab_del, > void *, htab_alloc_with_arg, > htab_free_with_arg); > >extern void htab_delete (htab_t); >extern void htab_empty (htab_t); > >extern void * htab_find (htab_t, const void *); >extern void ** htab_find_slot (htab_t, const void *, enum insert_option); >extern void * htab_find_with_hash (htab_t, const void *, hashval_t); >extern void ** htab_find_slot_with_hash (htab_t, const void *, > hashval_t, enum insert_option); >extern void htab_clear_slot (htab_t, void **); >extern void htab_remove_elt (htab_t, void *); >extern void htab_remove_elt_with_hash (htab_t, void *, hashval_t); > >extern void htab_traverse (htab_t, htab_trav, void *); >extern void htab_traverse_noresize (htab_t, htab_trav, void *); > >extern size_t htab_size (htab_t); >extern size_t htab_elements (htab_t); >extern double htab_collisions (htab_t); > > >extern htab_hash htab_hash_pointer; > > >extern htab_eq htab_eq_pointer; > > >extern hashval_t htab_hash_string (const void *); > > >extern hashval_t iterative_hash (const void *, size_t, hashval_t); ># 34 "../../gcc/rtl.h" 2 ># 47 "../../gcc/rtl.h" >enum rtx_code { > > ># 1 "../../gcc/rtl.def" 1 ># 82 "../../gcc/rtl.def" >UNKNOWN , > > > > > > >VALUE , > > > >DEBUG_EXPR , > > > > > > >EXPR_LIST , > > > >INSN_LIST , > > > > > >SEQUENCE , > > >ADDRESS , ># 126 "../../gcc/rtl.def" >DEBUG_INSN , > > >INSN , > > > >JUMP_INSN , > > > > > > >CALL_INSN , > > >BARRIER , > > > > > > > >CODE_LABEL , > > > > > > >NOTE , ># 171 "../../gcc/rtl.def" >COND_EXEC , > > >PARALLEL , > > > > > > > >ASM_INPUT , ># 196 "../../gcc/rtl.def" >ASM_OPERANDS , ># 214 "../../gcc/rtl.def" >UNSPEC , > > >UNSPEC_VOLATILE , > > > >ADDR_VEC , ># 246 "../../gcc/rtl.def" >ADDR_DIFF_VEC , ># 257 "../../gcc/rtl.def" >PREFETCH , ># 269 "../../gcc/rtl.def" >SET , ># 278 "../../gcc/rtl.def" >USE , ># 287 "../../gcc/rtl.def" >CLOBBER , > > > > > >CALL , > > > >RETURN , > > > > > >SIMPLE_RETURN , > > > >EH_RETURN , > > > > > >TRAP_IF , > > > > > > >CONST_INT , > > >CONST_FIXED , > > > > >CONST_DOUBLE , > > >CONST_VECTOR , > > > > >CONST_STRING , > > > > > >CONST , > > > >PC , ># 356 "../../gcc/rtl.def" >REG , > > > > > > >SCRATCH , > > > >SUBREG , ># 380 "../../gcc/rtl.def" >STRICT_LOW_PART , > > > > > >CONCAT , > > > > > >CONCATN , > > > > >MEM , > > > >LABEL_REF , > > > > > > >SYMBOL_REF , > > > > > > >CC0 , ># 427 "../../gcc/rtl.def" >IF_THEN_ELSE , > > >COMPARE , > > >PLUS , > > >MINUS , > > >NEG , > >MULT , > > >SS_MULT , > >US_MULT , > > >DIV , > >SS_DIV , > >US_DIV , > > >MOD , > > >UDIV , >UMOD , > > >AND , >IOR , >XOR , >NOT , > > > > >ASHIFT , >ROTATE , >ASHIFTRT , >LSHIFTRT , >ROTATERT , ># 484 "../../gcc/rtl.def" >SMIN , >SMAX , >UMIN , >UMAX , ># 496 "../../gcc/rtl.def" >PRE_DEC , >PRE_INC , >POST_DEC , >POST_INC , ># 513 "../../gcc/rtl.def" >PRE_MODIFY , >POST_MODIFY , > > > >NE , >EQ , >GE , >GT , >LE , >LT , >GEU , >GTU , >LEU , >LTU , > > >UNORDERED , >ORDERED , > > >UNEQ , >UNGE , >UNGT , >UNLE , >UNLT , > > >LTGT , > > > > >SIGN_EXTEND , > > >ZERO_EXTEND , > > >TRUNCATE , > > >FLOAT_EXTEND , >FLOAT_TRUNCATE , > > >FLOAT , > > > > > > > >FIX , > > >UNSIGNED_FLOAT , > > > > >UNSIGNED_FIX , ># 585 "../../gcc/rtl.def" >FRACT_CONVERT , > > > > > > >UNSIGNED_FRACT_CONVERT , > > > > > > > >SAT_FRACT , > > > > > >UNSIGNED_SAT_FRACT , > > >ABS , > > >SQRT , > > >BSWAP , > > > > >FFS , > > > >CLRSB , > > >CLZ , > > >CTZ , > > >POPCOUNT , > > >PARITY , ># 648 "../../gcc/rtl.def" >SIGN_EXTRACT , > > > >ZERO_EXTRACT , > > > > >HIGH , > > > >LO_SUM , > > > > > > >VEC_MERGE , > > > > > >VEC_SELECT , > > > > >VEC_CONCAT , > > > > > >VEC_DUPLICATE , > > >SS_PLUS , > > >US_PLUS , > > >SS_MINUS , > > >SS_NEG , > >US_NEG , > > >SS_ABS , > > >SS_ASHIFT , > > >US_ASHIFT , > > >US_MINUS , > > >SS_TRUNCATE , > > >US_TRUNCATE , > > >FMA , > > > > >VAR_LOCATION , > > > >DEBUG_IMPLICIT_PTR , > > > > >ENTRY_VALUE , > > > >DEBUG_PARAMETER_REF , ># 51 "../../gcc/rtl.h" 2 > > > LAST_AND_UNUSED_RTX_CODE}; ># 62 "../../gcc/rtl.h" >enum rtx_class { > > > > > RTX_COMPARE, > RTX_COMM_COMPARE, > RTX_BIN_ARITH, > RTX_COMM_ARITH, > > > RTX_UNARY, > > RTX_EXTRA, > RTX_MATCH, > RTX_INSN, > > > RTX_OBJ, > RTX_CONST_OBJ, > > RTX_TERNARY, > RTX_BITFIELD_OPS, > RTX_AUTOINC >}; ># 100 "../../gcc/rtl.h" >extern const unsigned char rtx_length[((int) LAST_AND_UNUSED_RTX_CODE)]; > > >extern const char * const rtx_name[((int) LAST_AND_UNUSED_RTX_CODE)]; > > >extern const char * const rtx_format[((int) LAST_AND_UNUSED_RTX_CODE)]; > > >extern const enum rtx_class rtx_class[((int) LAST_AND_UNUSED_RTX_CODE)]; > > >extern const unsigned char rtx_code_size[((int) LAST_AND_UNUSED_RTX_CODE)]; >extern const unsigned char rtx_next[((int) LAST_AND_UNUSED_RTX_CODE)]; > > > >typedef struct >{ > > unsigned min_align: 8; > > unsigned base_after_vec: 1; > unsigned min_after_vec: 1; > > unsigned max_after_vec: 1; > > unsigned min_after_base: 1; > > unsigned max_after_base: 1; > > > unsigned offset_unsigned: 1; > unsigned : 2; > unsigned scale : 8; >} addr_diff_vec_flags; > > > > >typedef struct mem_attrs >{ > > > > tree expr; > > > > long long offset; > > > > long long size; > > > alias_set_type alias; > > > > > unsigned int align; > > > unsigned char addrspace; > > > unsigned char offset_known_p; > > > unsigned char size_known_p; >} mem_attrs; ># 180 "../../gcc/rtl.h" >typedef struct reg_attrs { > tree decl; > long long offset; >} reg_attrs; > > > >union rtunion_def >{ > int rt_int; > unsigned int rt_uint; > const char *rt_str; > rtx rt_rtx; > rtvec rt_rtvec; > enum machine_mode rt_type; > addr_diff_vec_flags rt_addr_diff_vec_flags; > struct cselib_val_struct *rt_cselib; > tree rt_tree; > struct basic_block_def *rt_bb; > mem_attrs *rt_mem; > reg_attrs *rt_reg; > struct constant_descriptor_rtx *rt_constant; > struct dw_cfi_struct *rt_cfi; >}; >typedef union rtunion_def rtunion; > > > > >struct block_symbol { > > rtunion fld[3]; > > > struct object_block *block; > > > > long long offset; >}; > > > >struct object_block { > > section *sect; > > > unsigned int alignment; > > > long long size; ># 241 "../../gcc/rtl.h" > VEC_rtx_gc *objects; ># 251 "../../gcc/rtl.h" > VEC_rtx_gc *anchors; >}; > > > >struct > rtx_def { > > __extension__ enum rtx_code code: 16; > > > __extension__ enum machine_mode mode : 8; > > > > > > > > unsigned int jump : 1; > > > > > unsigned int call : 1; ># 285 "../../gcc/rtl.h" > unsigned int unchanging : 1; ># 298 "../../gcc/rtl.h" > unsigned int volatil : 1; ># 312 "../../gcc/rtl.h" > unsigned int in_struct : 1; ># 321 "../../gcc/rtl.h" > unsigned int used : 1; > > > > > > > > unsigned frame_related : 1; > > > > > > unsigned return_val : 1; > > > > > union u { > rtunion fld[1]; > long long hwint[1]; > struct block_symbol block_sym; > struct real_value rv; > struct fixed_value fv; > } u; >}; ># 384 "../../gcc/rtl.h" >struct rtvec_def { > int num_elem; > rtx elem[1]; >}; ># 874 "../../gcc/rtl.h" >enum reg_note >{ > ># 1 "../../gcc/reg-notes.def" 1 ># 33 "../../gcc/reg-notes.def" >REG_DEP_TRUE, > > > > >REG_DEAD, > > >REG_INC, ># 52 "../../gcc/reg-notes.def" >REG_EQUIV, > > > > >REG_EQUAL, > > > > > > >REG_NONNEG, > > >REG_UNUSED, ># 76 "../../gcc/reg-notes.def" >REG_CC_SETTER, >REG_CC_USER, > > > > >REG_LABEL_TARGET, > > > > > >REG_LABEL_OPERAND, > > > > >REG_DEP_OUTPUT, >REG_DEP_ANTI, >REG_DEP_CONTROL, > > > > > >REG_BR_PROB, > > > >REG_NOALIAS, > > > > > >REG_BR_PRED, > > > > >REG_FRAME_RELATED_EXPR, ># 126 "../../gcc/reg-notes.def" >REG_CFA_DEF_CFA, > > > > > > > >REG_CFA_ADJUST_CFA, > > > > > >REG_CFA_OFFSET, > > > > >REG_CFA_REGISTER, > > > > > >REG_CFA_EXPRESSION, > > > > > >REG_CFA_RESTORE, > > > > >REG_CFA_SET_VDRAP, > > > > >REG_CFA_WINDOW_SAVE, > > > > > > >REG_CFA_FLUSH_QUEUE, > > > > >REG_EH_CONTEXT, > > > > > >REG_EH_REGION, > > >REG_SAVE_NOTE, > > >REG_NORETURN, > > > >REG_NON_LOCAL_GOTO, > > > > >REG_CROSSING_JUMP, > > > >REG_SETJMP, > > > > >REG_TM, > > > > >REG_ARGS_SIZE, ># 878 "../../gcc/rtl.h" 2 > > REG_NOTE_MAX >}; ># 889 "../../gcc/rtl.h" >extern const char * const reg_note_name[]; ># 992 "../../gcc/rtl.h" >enum insn_note >{ > ># 1 "../../gcc/insn-notes.def" 1 ># 35 "../../gcc/insn-notes.def" >NOTE_INSN_DELETED, > > >NOTE_INSN_DELETED_LABEL, > > > >NOTE_INSN_DELETED_DEBUG_LABEL, > > > >NOTE_INSN_BLOCK_BEG, >NOTE_INSN_BLOCK_END, > > > > >NOTE_INSN_FUNCTION_BEG, > > >NOTE_INSN_PROLOGUE_END, > > >NOTE_INSN_EPILOGUE_BEG, > > > >NOTE_INSN_EH_REGION_BEG, >NOTE_INSN_EH_REGION_END, > > >NOTE_INSN_VAR_LOCATION, > > >NOTE_INSN_CALL_ARG_LOCATION, > > > > >NOTE_INSN_BASIC_BLOCK, > > > >NOTE_INSN_SWITCH_TEXT_SECTIONS, > > > >NOTE_INSN_CFI, > > > >NOTE_INSN_CFI_LABEL, ># 996 "../../gcc/rtl.h" 2 > > > NOTE_INSN_MAX >}; > > > >extern const char * const note_insn_name[NOTE_INSN_MAX]; ># 1018 "../../gcc/rtl.h" >enum label_kind >{ > LABEL_NORMAL = 0, > LABEL_STATIC_ENTRY, > LABEL_GLOBAL_ENTRY, > LABEL_WEAK_ENTRY >}; ># 1087 "../../gcc/rtl.h" >static __inline__ unsigned int >rhs_regno (const_rtx x) >{ > return (((x)->u.fld[0]).rt_uint); >} ># 1162 "../../gcc/rtl.h" >struct full_rtx_costs >{ > int speed; > int size; >}; > > >static __inline__ void >init_costs_to_max (struct full_rtx_costs *c) >{ > c->speed = 2147483647; > c->size = 2147483647; >} > > >static __inline__ void >init_costs_to_zero (struct full_rtx_costs *c) >{ > c->speed = 0; > c->size = 0; >} > > > >static __inline__ unsigned char >costs_lt_p (struct full_rtx_costs *a, struct full_rtx_costs *b, > unsigned char speed) >{ > if (speed) > return (a->speed < b->speed > || (a->speed == b->speed && a->size < b->size)); > else > return (a->size < b->size > || (a->size == b->size && a->speed < b->speed)); >} > > > >static __inline__ void >costs_add_n_insns (struct full_rtx_costs *c, int n) >{ > c->speed += ((n) * 4); > c->size += ((n) * 4); >} > >extern void init_rtlanal (void); >extern int rtx_cost (rtx, enum rtx_code, int, unsigned char); >extern int address_cost (rtx, enum machine_mode, addr_space_t, unsigned char); >extern void get_full_rtx_cost (rtx, enum rtx_code, int, > struct full_rtx_costs *); >extern unsigned int subreg_lsb (const_rtx); >extern unsigned int subreg_lsb_1 (enum machine_mode, enum machine_mode, > unsigned int); >extern unsigned int subreg_regno_offset (unsigned int, enum machine_mode, > unsigned int, enum machine_mode); >extern unsigned char subreg_offset_representable_p (unsigned int, enum machine_mode, > unsigned int, enum machine_mode); >extern unsigned int subreg_regno (const_rtx); >extern int simplify_subreg_regno (unsigned int, enum machine_mode, > unsigned int, enum machine_mode); >extern unsigned int subreg_nregs (const_rtx); >extern unsigned int subreg_nregs_with_regno (unsigned int, const_rtx); >extern unsigned long long nonzero_bits (const_rtx, enum machine_mode); >extern unsigned int num_sign_bit_copies (const_rtx, enum machine_mode); >extern unsigned char constant_pool_constant_p (rtx); >extern unsigned char truncated_to_mode (enum machine_mode, const_rtx); >extern int low_bitmask_len (enum machine_mode, unsigned long long); > > > > > >static __inline__ int >set_rtx_cost (rtx x, unsigned char speed_p) >{ > return rtx_cost (x, INSN, 4, speed_p); >} > > > >static __inline__ void >get_full_set_rtx_cost (rtx x, struct full_rtx_costs *c) >{ > get_full_rtx_cost (x, INSN, 4, c); >} > > > > > >static __inline__ int >set_src_cost (rtx x, unsigned char speed_p) >{ > return rtx_cost (x, SET, 1, speed_p); >} > > > >static __inline__ void >get_full_set_src_cost (rtx x, struct full_rtx_costs *c) >{ > get_full_rtx_cost (x, SET, 1, c); >} ># 1634 "../../gcc/rtl.h" >extern int generating_concat_p; > > >extern int currently_expanding_to_rtl; > > > > >extern int ceil_log2 (unsigned long long); > > >extern long long trunc_int_for_mode (long long, enum machine_mode); >extern rtx plus_constant (rtx, long long); > > >extern rtx rtx_alloc_stat (enum rtx_code ); > > >extern rtvec rtvec_alloc (int); >extern rtvec shallow_copy_rtvec (rtvec); >extern unsigned char shared_const_p (const_rtx); >extern rtx copy_rtx (rtx); >extern void dump_rtx_statistics (void); > > >extern rtx copy_rtx_if_shared (rtx); > > >extern unsigned int rtx_size (const_rtx); >extern rtx shallow_copy_rtx_stat (const_rtx ); > >extern int rtx_equal_p (const_rtx, const_rtx); >extern hashval_t iterative_hash_rtx (const_rtx, hashval_t); > > >extern rtvec gen_rtvec_v (int, rtx *); >extern rtx gen_reg_rtx (enum machine_mode); >extern rtx gen_rtx_REG_offset (rtx, enum machine_mode, unsigned int, int); >extern rtx gen_reg_rtx_offset (rtx, enum machine_mode, int); >extern rtx gen_reg_rtx_and_attrs (rtx); >extern rtx gen_label_rtx (void); >extern rtx gen_lowpart_common (enum machine_mode, rtx); > > >extern rtx gen_lowpart_if_possible (enum machine_mode, rtx); > > >extern rtx gen_highpart (enum machine_mode, rtx); >extern rtx gen_highpart_mode (enum machine_mode, enum machine_mode, rtx); >extern rtx operand_subword (rtx, unsigned int, int, enum machine_mode); > > >extern rtx operand_subword_force (rtx, unsigned int, enum machine_mode); >extern unsigned char paradoxical_subreg_p (const_rtx); >extern int subreg_lowpart_p (const_rtx); >extern unsigned int subreg_lowpart_offset (enum machine_mode, > enum machine_mode); >extern unsigned int subreg_highpart_offset (enum machine_mode, > enum machine_mode); >extern int byte_lowpart_offset (enum machine_mode, enum machine_mode); >extern rtx make_safe_from (rtx, rtx); >extern rtx convert_memory_address_addr_space (enum machine_mode, rtx, > addr_space_t); > > >extern const char *get_insn_name (int); >extern rtx get_last_insn_anywhere (void); >extern rtx get_first_nonnote_insn (void); >extern rtx get_last_nonnote_insn (void); >extern void start_sequence (void); >extern void push_to_sequence (rtx); >extern void push_to_sequence2 (rtx, rtx); >extern void end_sequence (void); >extern double_int rtx_to_double_int (const_rtx); >extern rtx immed_double_int_const (double_int, enum machine_mode); >extern rtx immed_double_const (long long, long long, > enum machine_mode); > > > >extern rtx lowpart_subreg (enum machine_mode, rtx, enum machine_mode); > > >extern rtx force_const_mem (enum machine_mode, rtx); > > > >struct function; >extern rtx get_pool_constant (rtx); >extern rtx get_pool_constant_mark (rtx, unsigned char *); >extern enum machine_mode get_pool_mode (const_rtx); >extern rtx simplify_subtraction (rtx); >extern void decide_function_section (tree); > > >extern rtx assign_stack_local (enum machine_mode, long long, int); > > >extern rtx assign_stack_local_1 (enum machine_mode, long long, int, int); >extern rtx assign_stack_temp (enum machine_mode, long long, int); >extern rtx assign_stack_temp_for_type (enum machine_mode, > long long, int, tree); >extern rtx assign_temp (tree, int, int, int); > > >extern rtx emit_insn_before (rtx, rtx); >extern rtx emit_insn_before_noloc (rtx, rtx, struct basic_block_def *); >extern rtx emit_insn_before_setloc (rtx, rtx, int); >extern rtx emit_jump_insn_before (rtx, rtx); >extern rtx emit_jump_insn_before_noloc (rtx, rtx); >extern rtx emit_jump_insn_before_setloc (rtx, rtx, int); >extern rtx emit_call_insn_before (rtx, rtx); >extern rtx emit_call_insn_before_noloc (rtx, rtx); >extern rtx emit_call_insn_before_setloc (rtx, rtx, int); >extern rtx emit_debug_insn_before (rtx, rtx); >extern rtx emit_debug_insn_before_noloc (rtx, rtx); >extern rtx emit_debug_insn_before_setloc (rtx, rtx, int); >extern rtx emit_barrier_before (rtx); >extern rtx emit_label_before (rtx, rtx); >extern rtx emit_note_before (enum insn_note, rtx); >extern rtx emit_insn_after (rtx, rtx); >extern rtx emit_insn_after_noloc (rtx, rtx, struct basic_block_def *); >extern rtx emit_insn_after_setloc (rtx, rtx, int); >extern rtx emit_jump_insn_after (rtx, rtx); >extern rtx emit_jump_insn_after_noloc (rtx, rtx); >extern rtx emit_jump_insn_after_setloc (rtx, rtx, int); >extern rtx emit_call_insn_after (rtx, rtx); >extern rtx emit_call_insn_after_noloc (rtx, rtx); >extern rtx emit_call_insn_after_setloc (rtx, rtx, int); >extern rtx emit_debug_insn_after (rtx, rtx); >extern rtx emit_debug_insn_after_noloc (rtx, rtx); >extern rtx emit_debug_insn_after_setloc (rtx, rtx, int); >extern rtx emit_barrier_after (rtx); >extern rtx emit_label_after (rtx, rtx); >extern rtx emit_note_after (enum insn_note, rtx); >extern rtx emit_insn (rtx); >extern rtx emit_debug_insn (rtx); >extern rtx emit_jump_insn (rtx); >extern rtx emit_call_insn (rtx); >extern rtx emit_label (rtx); >extern rtx emit_barrier (void); >extern rtx emit_note (enum insn_note); >extern rtx emit_note_copy (rtx); >extern rtx gen_clobber (rtx); >extern rtx emit_clobber (rtx); >extern rtx gen_use (rtx); >extern rtx emit_use (rtx); >extern rtx make_insn_raw (rtx); >extern rtx make_debug_insn_raw (rtx); >extern rtx make_jump_insn_raw (rtx); >extern void add_function_usage_to (rtx, rtx); >extern rtx last_call_insn (void); >extern rtx previous_insn (rtx); >extern rtx next_insn (rtx); >extern rtx prev_nonnote_insn (rtx); >extern rtx prev_nonnote_insn_bb (rtx); >extern rtx next_nonnote_insn (rtx); >extern rtx next_nonnote_insn_bb (rtx); >extern rtx prev_nondebug_insn (rtx); >extern rtx next_nondebug_insn (rtx); >extern rtx prev_nonnote_nondebug_insn (rtx); >extern rtx next_nonnote_nondebug_insn (rtx); >extern rtx prev_real_insn (rtx); >extern rtx next_real_insn (rtx); >extern rtx prev_active_insn (rtx); >extern rtx next_active_insn (rtx); >extern int active_insn_p (const_rtx); >extern rtx next_label (rtx); >extern rtx skip_consecutive_labels (rtx); >extern rtx next_cc0_user (rtx); >extern rtx prev_cc0_setter (rtx); > > >extern int insn_line (const_rtx); >extern const char * insn_file (const_rtx); >extern location_t locator_location (int); >extern int locator_line (int); >extern const char * locator_file (int); >extern unsigned char locator_eq (int, int); >extern int prologue_locator, epilogue_locator; > > >extern enum rtx_code reverse_condition (enum rtx_code); >extern enum rtx_code reverse_condition_maybe_unordered (enum rtx_code); >extern enum rtx_code swap_condition (enum rtx_code); >extern enum rtx_code unsigned_condition (enum rtx_code); >extern enum rtx_code signed_condition (enum rtx_code); >extern void mark_jump_label (rtx, rtx, int); >extern unsigned int cleanup_barriers (void); > > >extern rtx delete_related_insns (rtx); > > >extern rtx *find_constant_term_loc (rtx *); > > >extern rtx try_split (rtx, rtx, int); >extern int split_branch_probability; > > >extern rtx split_insns (rtx, rtx); > > >extern rtx simplify_const_unary_operation (enum rtx_code, enum machine_mode, > rtx, enum machine_mode); >extern rtx simplify_unary_operation (enum rtx_code, enum machine_mode, rtx, > enum machine_mode); >extern rtx simplify_const_binary_operation (enum rtx_code, enum machine_mode, > rtx, rtx); >extern rtx simplify_binary_operation (enum rtx_code, enum machine_mode, rtx, > rtx); >extern rtx simplify_ternary_operation (enum rtx_code, enum machine_mode, > enum machine_mode, rtx, rtx, rtx); >extern rtx simplify_const_relational_operation (enum rtx_code, > enum machine_mode, rtx, rtx); >extern rtx simplify_relational_operation (enum rtx_code, enum machine_mode, > enum machine_mode, rtx, rtx); >extern rtx simplify_gen_binary (enum rtx_code, enum machine_mode, rtx, rtx); >extern rtx simplify_gen_unary (enum rtx_code, enum machine_mode, rtx, > enum machine_mode); >extern rtx simplify_gen_ternary (enum rtx_code, enum machine_mode, > enum machine_mode, rtx, rtx, rtx); >extern rtx simplify_gen_relational (enum rtx_code, enum machine_mode, > enum machine_mode, rtx, rtx); >extern rtx simplify_subreg (enum machine_mode, rtx, enum machine_mode, > unsigned int); >extern rtx simplify_gen_subreg (enum machine_mode, rtx, enum machine_mode, > unsigned int); >extern rtx simplify_replace_fn_rtx (rtx, const_rtx, > rtx (*fn) (rtx, const_rtx, void *), void *); >extern rtx simplify_replace_rtx (rtx, const_rtx, rtx); >extern rtx simplify_rtx (const_rtx); >extern rtx avoid_constant_pool_reference (rtx); >extern rtx delegitimize_mem_from_attrs (rtx); >extern unsigned char mode_signbit_p (enum machine_mode, const_rtx); >extern unsigned char val_signbit_p (enum machine_mode, unsigned long long); >extern unsigned char val_signbit_known_set_p (enum machine_mode, > unsigned long long); >extern unsigned char val_signbit_known_clear_p (enum machine_mode, > unsigned long long); > > >extern enum machine_mode choose_hard_reg_mode (unsigned int, unsigned int, > unsigned char); > > >extern rtx set_unique_reg_note (rtx, enum reg_note, rtx); >extern rtx set_dst_reg_note (rtx, enum reg_note, rtx, rtx); >extern void set_insn_deleted (rtx); ># 1895 "../../gcc/rtl.h" >typedef struct replace_label_data >{ > rtx r1; > rtx r2; > unsigned char update_label_nuses; >} replace_label_data; > >extern int rtx_addr_can_trap_p (const_rtx); >extern unsigned char nonzero_address_p (const_rtx); >extern int rtx_unstable_p (const_rtx); >extern unsigned char rtx_varies_p (const_rtx, unsigned char); >extern unsigned char rtx_addr_varies_p (const_rtx, unsigned char); >extern long long get_integer_term (const_rtx); >extern rtx get_related_value (const_rtx); >extern unsigned char offset_within_block_p (const_rtx, long long); >extern void split_const (rtx, rtx *, rtx *); >extern int reg_mentioned_p (const_rtx, const_rtx); >extern int count_occurrences (const_rtx, const_rtx, int); >extern int reg_referenced_p (const_rtx, const_rtx); >extern int reg_used_between_p (const_rtx, const_rtx, const_rtx); >extern int reg_set_between_p (const_rtx, const_rtx, const_rtx); >extern int commutative_operand_precedence (rtx); >extern unsigned char swap_commutative_operands_p (rtx, rtx); >extern int modified_between_p (const_rtx, const_rtx, const_rtx); >extern int no_labels_between_p (const_rtx, const_rtx); >extern int modified_in_p (const_rtx, const_rtx); >extern int reg_set_p (const_rtx, const_rtx); >extern rtx single_set_2 (const_rtx, const_rtx); >extern int multiple_sets (const_rtx); >extern int set_noop_p (const_rtx); >extern int noop_move_p (const_rtx); >extern rtx find_last_value (rtx, rtx *, rtx, int); >extern int refers_to_regno_p (unsigned int, unsigned int, const_rtx, rtx *); >extern int reg_overlap_mentioned_p (const_rtx, const_rtx); >extern const_rtx set_of (const_rtx, const_rtx); >extern void record_hard_reg_sets (rtx, const_rtx, void *); >extern void record_hard_reg_uses (rtx *, void *); > > > >extern void note_stores (const_rtx, void (*) (rtx, const_rtx, void *), void *); >extern void note_uses (rtx *, void (*) (rtx *, void *), void *); >extern int dead_or_set_p (const_rtx, const_rtx); >extern int dead_or_set_regno_p (const_rtx, unsigned int); >extern rtx find_reg_note (const_rtx, enum reg_note, const_rtx); >extern rtx find_regno_note (const_rtx, enum reg_note, unsigned int); >extern rtx find_reg_equal_equiv_note (const_rtx); >extern rtx find_constant_src (const_rtx); >extern int find_reg_fusage (const_rtx, enum rtx_code, const_rtx); >extern int find_regno_fusage (const_rtx, enum rtx_code, unsigned int); >extern rtx alloc_reg_note (enum reg_note, rtx, rtx); >extern void add_reg_note (rtx, enum reg_note, rtx); >extern void remove_note (rtx, const_rtx); >extern void remove_reg_equal_equiv_notes (rtx); >extern void remove_reg_equal_equiv_notes_for_regno (unsigned int); >extern int side_effects_p (const_rtx); >extern int volatile_refs_p (const_rtx); >extern int volatile_insn_p (const_rtx); >extern int may_trap_p_1 (const_rtx, unsigned); >extern int may_trap_p (const_rtx); >extern int may_trap_or_fault_p (const_rtx); >extern unsigned char can_throw_internal (const_rtx); >extern unsigned char can_throw_external (const_rtx); >extern unsigned char insn_could_throw_p (const_rtx); >extern unsigned char insn_nothrow_p (const_rtx); >extern unsigned char can_nonlocal_goto (const_rtx); >extern void copy_reg_eh_region_note_forward (rtx, rtx, rtx); >extern void copy_reg_eh_region_note_backward(rtx, rtx, rtx); >extern int inequality_comparisons_p (const_rtx); >extern rtx replace_rtx (rtx, rtx, rtx); >extern int replace_label (rtx *, void *); >extern int rtx_referenced_p (rtx, rtx); >extern unsigned char tablejump_p (const_rtx, rtx *, rtx *); >extern int computed_jump_p (const_rtx); > >typedef int (*rtx_function) (rtx *, void *); >extern int for_each_rtx (rtx *, rtx_function, void *); ># 1980 "../../gcc/rtl.h" >typedef int (*for_each_inc_dec_fn) (rtx mem, rtx op, rtx dest, rtx src, > rtx srcoff, void *arg); >extern int for_each_inc_dec (rtx *, for_each_inc_dec_fn, void *arg); > >typedef int (*rtx_equal_p_callback_function) (const_rtx *, const_rtx *, > rtx *, rtx *); >extern int rtx_equal_p_cb (const_rtx, const_rtx, > rtx_equal_p_callback_function); > >typedef int (*hash_rtx_callback_function) (const_rtx, enum machine_mode, rtx *, > enum machine_mode *); >extern unsigned hash_rtx_cb (const_rtx, enum machine_mode, int *, int *, > unsigned char, hash_rtx_callback_function); > >extern rtx regno_use_in (unsigned int, rtx); >extern int auto_inc_p (const_rtx); >extern int in_expr_list_p (const_rtx, const_rtx); >extern void remove_node_from_expr_list (const_rtx, rtx *); >extern int loc_mentioned_in_p (rtx *, const_rtx); >extern rtx find_first_parameter_load (rtx, rtx); >extern unsigned char keep_with_call_p (const_rtx); >extern unsigned char label_is_jump_target_p (const_rtx, const_rtx); >extern int insn_rtx_cost (rtx, unsigned char); > > > >extern rtx canonicalize_condition (rtx, rtx, int, rtx *, rtx, int, int); > > > >extern rtx get_condition (rtx, rtx *, int, int); > > >struct subreg_info >{ > > int offset; > > int nregs; > > > unsigned char representable_p; >}; > >extern void subreg_get_info (unsigned int, enum machine_mode, > unsigned int, enum machine_mode, > struct subreg_info *); > > > >extern void free_EXPR_LIST_list (rtx *); >extern void free_INSN_LIST_list (rtx *); >extern void free_EXPR_LIST_node (rtx); >extern void free_INSN_LIST_node (rtx); >extern rtx alloc_INSN_LIST (rtx, rtx); >extern rtx copy_INSN_LIST (rtx); >extern rtx concat_INSN_LIST (rtx, rtx); >extern rtx alloc_EXPR_LIST (int, rtx, rtx); >extern void remove_free_INSN_LIST_elem (rtx, rtx *); >extern rtx remove_list_elem (rtx, rtx *); >extern rtx remove_free_INSN_LIST_node (rtx *); >extern rtx remove_free_EXPR_LIST_node (rtx *); > > > > > >extern void init_move_cost (enum machine_mode); > >extern unsigned char resize_reg_info (void); > >extern void free_reg_info (void); >extern void init_subregs_of_mode (void); >extern void finish_subregs_of_mode (void); > > >extern rtx extract_asm_operands (rtx); >extern int asm_noperands (const_rtx); >extern const char *decode_asm_operands (rtx, rtx *, rtx **, const char **, > enum machine_mode *, location_t *); > >extern enum reg_class reg_preferred_class (int); >extern enum reg_class reg_alternate_class (int); >extern enum reg_class reg_allocno_class (int); >extern void setup_reg_classes (int, enum reg_class, enum reg_class, > enum reg_class); > >extern void split_all_insns (void); >extern unsigned int split_all_insns_noflow (void); > > >extern rtx const_int_rtx[64 * 2 + 1]; > > > > > >extern rtx const_true_rtx; > >extern rtx const_tiny_rtx[4][(int) MAX_MACHINE_MODE]; ># 2113 "../../gcc/rtl.h" >enum global_rtl_index >{ > GR_PC, > GR_CC0, > GR_RETURN, > GR_SIMPLE_RETURN, > GR_STACK_POINTER, > GR_FRAME_POINTER, ># 2130 "../../gcc/rtl.h" > GR_HARD_FRAME_POINTER, > > > > > > GR_ARG_POINTER, > > > GR_VIRTUAL_INCOMING_ARGS, > GR_VIRTUAL_STACK_ARGS, > GR_VIRTUAL_STACK_DYNAMIC, > GR_VIRTUAL_OUTGOING_ARGS, > GR_VIRTUAL_CFA, > GR_VIRTUAL_PREFERRED_STACK_BOUNDARY, > > GR_MAX >}; > > >struct target_rtl { ># 2166 "../../gcc/rtl.h" > rtx x_global_rtl[GR_MAX]; > > > rtx x_pic_offset_table_rtx; > > > > > rtx x_return_address_pointer_rtx; > > > > > > rtx x_initial_regno_reg_rtx[114]; > > > rtx x_top_of_stack[MAX_MACHINE_MODE]; > > > > rtx x_static_reg_base_value[114]; > > > struct mem_attrs *x_mode_mem_attrs[(int) MAX_MACHINE_MODE]; >}; > >extern struct target_rtl default_target_rtl; ># 2227 "../../gcc/rtl.h" >static __inline__ struct mem_attrs * >get_mem_attrs (const_rtx x) >{ > struct mem_attrs *attrs; > > attrs = (((x)->u.fld[1]).rt_mem); > if (!attrs) > attrs = ((&default_target_rtl)->x_mode_mem_attrs)[(int) ((enum machine_mode) (x)->mode)]; > return attrs; >} > > > > > ># 1 "./genrtl.h" 1 > > > > > ># 1 "../../gcc/statistics.h" 1 ># 7 "./genrtl.h" 2 > >static __inline__ rtx >gen_rtx_fmt_0_stat (enum rtx_code code, enum machine_mode mode ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_rtx) = (rtx) 0; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_ee_stat (enum rtx_code code, enum machine_mode mode, > rtx arg0, > rtx arg1 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_rtx) = arg0; > (((rt)->u.fld[1]).rt_rtx) = arg1; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_ue_stat (enum rtx_code code, enum machine_mode mode, > rtx arg0, > rtx arg1 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_rtx) = arg0; > (((rt)->u.fld[1]).rt_rtx) = arg1; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_E_stat (enum rtx_code code, enum machine_mode mode, > rtvec arg0 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_rtvec) = arg0; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_e_stat (enum rtx_code code, enum machine_mode mode, > rtx arg0 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_rtx) = arg0; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_iuuBeiie_stat (enum rtx_code code, enum machine_mode mode, > int arg0, > rtx arg1, > rtx arg2, > struct basic_block_def *arg3, > rtx arg4, > int arg5, > int arg6, > rtx arg7 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_int) = arg0; > (((rt)->u.fld[1]).rt_rtx) = arg1; > (((rt)->u.fld[2]).rt_rtx) = arg2; > (((rt)->u.fld[3]).rt_bb) = arg3; > (((rt)->u.fld[4]).rt_rtx) = arg4; > (((rt)->u.fld[5]).rt_int) = arg5; > (((rt)->u.fld[6]).rt_int) = arg6; > (((rt)->u.fld[7]).rt_rtx) = arg7; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_iuuBeiie0_stat (enum rtx_code code, enum machine_mode mode, > int arg0, > rtx arg1, > rtx arg2, > struct basic_block_def *arg3, > rtx arg4, > int arg5, > int arg6, > rtx arg7 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_int) = arg0; > (((rt)->u.fld[1]).rt_rtx) = arg1; > (((rt)->u.fld[2]).rt_rtx) = arg2; > (((rt)->u.fld[3]).rt_bb) = arg3; > (((rt)->u.fld[4]).rt_rtx) = arg4; > (((rt)->u.fld[5]).rt_int) = arg5; > (((rt)->u.fld[6]).rt_int) = arg6; > (((rt)->u.fld[7]).rt_rtx) = arg7; > (((rt)->u.fld[8]).rt_rtx) = (rtx) 0; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_iuuBeiiee_stat (enum rtx_code code, enum machine_mode mode, > int arg0, > rtx arg1, > rtx arg2, > struct basic_block_def *arg3, > rtx arg4, > int arg5, > int arg6, > rtx arg7, > rtx arg8 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_int) = arg0; > (((rt)->u.fld[1]).rt_rtx) = arg1; > (((rt)->u.fld[2]).rt_rtx) = arg2; > (((rt)->u.fld[3]).rt_bb) = arg3; > (((rt)->u.fld[4]).rt_rtx) = arg4; > (((rt)->u.fld[5]).rt_int) = arg5; > (((rt)->u.fld[6]).rt_int) = arg6; > (((rt)->u.fld[7]).rt_rtx) = arg7; > (((rt)->u.fld[8]).rt_rtx) = arg8; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_iuu00000_stat (enum rtx_code code, enum machine_mode mode, > int arg0, > rtx arg1, > rtx arg2 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_int) = arg0; > (((rt)->u.fld[1]).rt_rtx) = arg1; > (((rt)->u.fld[2]).rt_rtx) = arg2; > (((rt)->u.fld[3]).rt_rtx) = (rtx) 0; > (((rt)->u.fld[4]).rt_rtx) = (rtx) 0; > (((rt)->u.fld[5]).rt_rtx) = (rtx) 0; > (((rt)->u.fld[6]).rt_rtx) = (rtx) 0; > (((rt)->u.fld[7]).rt_rtx) = (rtx) 0; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_iuuB00is_stat (enum rtx_code code, enum machine_mode mode, > int arg0, > rtx arg1, > rtx arg2, > struct basic_block_def *arg3, > int arg4, > const char *arg5 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_int) = arg0; > (((rt)->u.fld[1]).rt_rtx) = arg1; > (((rt)->u.fld[2]).rt_rtx) = arg2; > (((rt)->u.fld[3]).rt_bb) = arg3; > (((rt)->u.fld[4]).rt_rtx) = (rtx) 0; > (((rt)->u.fld[5]).rt_rtx) = (rtx) 0; > (((rt)->u.fld[6]).rt_int) = arg4; > (((rt)->u.fld[7]).rt_str) = arg5; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_si_stat (enum rtx_code code, enum machine_mode mode, > const char *arg0, > int arg1 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_str) = arg0; > (((rt)->u.fld[1]).rt_int) = arg1; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_ssiEEEi_stat (enum rtx_code code, enum machine_mode mode, > const char *arg0, > const char *arg1, > int arg2, > rtvec arg3, > rtvec arg4, > rtvec arg5, > int arg6 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_str) = arg0; > (((rt)->u.fld[1]).rt_str) = arg1; > (((rt)->u.fld[2]).rt_int) = arg2; > (((rt)->u.fld[3]).rt_rtvec) = arg3; > (((rt)->u.fld[4]).rt_rtvec) = arg4; > (((rt)->u.fld[5]).rt_rtvec) = arg5; > (((rt)->u.fld[6]).rt_int) = arg6; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_Ei_stat (enum rtx_code code, enum machine_mode mode, > rtvec arg0, > int arg1 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_rtvec) = arg0; > (((rt)->u.fld[1]).rt_int) = arg1; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_eEee0_stat (enum rtx_code code, enum machine_mode mode, > rtx arg0, > rtvec arg1, > rtx arg2, > rtx arg3 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_rtx) = arg0; > (((rt)->u.fld[1]).rt_rtvec) = arg1; > (((rt)->u.fld[2]).rt_rtx) = arg2; > (((rt)->u.fld[3]).rt_rtx) = arg3; > (((rt)->u.fld[4]).rt_rtx) = (rtx) 0; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_eee_stat (enum rtx_code code, enum machine_mode mode, > rtx arg0, > rtx arg1, > rtx arg2 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_rtx) = arg0; > (((rt)->u.fld[1]).rt_rtx) = arg1; > (((rt)->u.fld[2]).rt_rtx) = arg2; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt__stat (enum rtx_code code, enum machine_mode mode ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_w_stat (enum rtx_code code, enum machine_mode mode, > long long arg0 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > ((rt)->u.hwint[0]) = arg0; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_www_stat (enum rtx_code code, enum machine_mode mode, > long long arg0, > long long arg1, > long long arg2 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > ((rt)->u.hwint[0]) = arg0; > ((rt)->u.hwint[1]) = arg1; > ((rt)->u.hwint[2]) = arg2; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_s_stat (enum rtx_code code, enum machine_mode mode, > const char *arg0 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_str) = arg0; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_i00_stat (enum rtx_code code, enum machine_mode mode, > int arg0 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_int) = arg0; > (((rt)->u.fld[1]).rt_rtx) = (rtx) 0; > (((rt)->u.fld[2]).rt_rtx) = (rtx) 0; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_ei_stat (enum rtx_code code, enum machine_mode mode, > rtx arg0, > int arg1 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_rtx) = arg0; > (((rt)->u.fld[1]).rt_int) = arg1; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_e0_stat (enum rtx_code code, enum machine_mode mode, > rtx arg0 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_rtx) = arg0; > (((rt)->u.fld[1]).rt_rtx) = (rtx) 0; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_u_stat (enum rtx_code code, enum machine_mode mode, > rtx arg0 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_rtx) = arg0; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_s00_stat (enum rtx_code code, enum machine_mode mode, > const char *arg0 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_str) = arg0; > (((rt)->u.fld[1]).rt_rtx) = (rtx) 0; > (((rt)->u.fld[2]).rt_rtx) = (rtx) 0; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_tei_stat (enum rtx_code code, enum machine_mode mode, > union tree_node *arg0, > rtx arg1, > int arg2 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_tree) = arg0; > (((rt)->u.fld[1]).rt_rtx) = arg1; > (((rt)->u.fld[2]).rt_int) = arg2; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_t_stat (enum rtx_code code, enum machine_mode mode, > union tree_node *arg0 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_tree) = arg0; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_iss_stat (enum rtx_code code, enum machine_mode mode, > int arg0, > const char *arg1, > const char *arg2 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_int) = arg0; > (((rt)->u.fld[1]).rt_str) = arg1; > (((rt)->u.fld[2]).rt_str) = arg2; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_is_stat (enum rtx_code code, enum machine_mode mode, > int arg0, > const char *arg1 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_int) = arg0; > (((rt)->u.fld[1]).rt_str) = arg1; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_isE_stat (enum rtx_code code, enum machine_mode mode, > int arg0, > const char *arg1, > rtvec arg2 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_int) = arg0; > (((rt)->u.fld[1]).rt_str) = arg1; > (((rt)->u.fld[2]).rt_rtvec) = arg2; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_i_stat (enum rtx_code code, enum machine_mode mode, > int arg0 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_int) = arg0; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_iE_stat (enum rtx_code code, enum machine_mode mode, > int arg0, > rtvec arg1 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_int) = arg0; > (((rt)->u.fld[1]).rt_rtvec) = arg1; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_ss_stat (enum rtx_code code, enum machine_mode mode, > const char *arg0, > const char *arg1 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_str) = arg0; > (((rt)->u.fld[1]).rt_str) = arg1; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_sEss_stat (enum rtx_code code, enum machine_mode mode, > const char *arg0, > rtvec arg1, > const char *arg2, > const char *arg3 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_str) = arg0; > (((rt)->u.fld[1]).rt_rtvec) = arg1; > (((rt)->u.fld[2]).rt_str) = arg2; > (((rt)->u.fld[3]).rt_str) = arg3; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_eE_stat (enum rtx_code code, enum machine_mode mode, > rtx arg0, > rtvec arg1 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_rtx) = arg0; > (((rt)->u.fld[1]).rt_rtvec) = arg1; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_Ess_stat (enum rtx_code code, enum machine_mode mode, > rtvec arg0, > const char *arg1, > const char *arg2 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_rtvec) = arg0; > (((rt)->u.fld[1]).rt_str) = arg1; > (((rt)->u.fld[2]).rt_str) = arg2; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_ses_stat (enum rtx_code code, enum machine_mode mode, > const char *arg0, > rtx arg1, > const char *arg2 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_str) = arg0; > (((rt)->u.fld[1]).rt_rtx) = arg1; > (((rt)->u.fld[2]).rt_str) = arg2; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_sss_stat (enum rtx_code code, enum machine_mode mode, > const char *arg0, > const char *arg1, > const char *arg2 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_str) = arg0; > (((rt)->u.fld[1]).rt_str) = arg1; > (((rt)->u.fld[2]).rt_str) = arg2; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_sse_stat (enum rtx_code code, enum machine_mode mode, > const char *arg0, > const char *arg1, > rtx arg2 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_str) = arg0; > (((rt)->u.fld[1]).rt_str) = arg1; > (((rt)->u.fld[2]).rt_rtx) = arg2; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_sies_stat (enum rtx_code code, enum machine_mode mode, > const char *arg0, > int arg1, > rtx arg2, > const char *arg3 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_str) = arg0; > (((rt)->u.fld[1]).rt_int) = arg1; > (((rt)->u.fld[2]).rt_rtx) = arg2; > (((rt)->u.fld[3]).rt_str) = arg3; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_sE_stat (enum rtx_code code, enum machine_mode mode, > const char *arg0, > rtvec arg1 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_str) = arg0; > (((rt)->u.fld[1]).rt_rtvec) = arg1; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_ii_stat (enum rtx_code code, enum machine_mode mode, > int arg0, > int arg1 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_int) = arg0; > (((rt)->u.fld[1]).rt_int) = arg1; > > return rt; >} > > > > >static __inline__ rtx >gen_rtx_fmt_Ee_stat (enum rtx_code code, enum machine_mode mode, > rtvec arg0, > rtx arg1 ) >{ > rtx rt; > rt = rtx_alloc_stat (code ); > > ((rt)->mode = (mode)); > (((rt)->u.fld[0]).rt_rtvec) = arg0; > (((rt)->u.fld[1]).rt_rtx) = arg1; > > return rt; >} ># 2243 "../../gcc/rtl.h" 2 ># 2254 "../../gcc/rtl.h" >extern rtx gen_rtx_CONST_INT (enum machine_mode, long long); >extern rtx gen_rtx_CONST_VECTOR (enum machine_mode, rtvec); >extern rtx gen_raw_REG (enum machine_mode, int); >extern rtx gen_rtx_REG (enum machine_mode, unsigned); >extern rtx gen_rtx_SUBREG (enum machine_mode, rtx, int); >extern rtx gen_rtx_MEM (enum machine_mode, rtx); ># 2338 "../../gcc/rtl.h" >extern rtx output_constant_def (tree, int); >extern rtx lookup_constant_def (tree); > > > > >extern int reload_completed; > > >extern int epilogue_completed; > > > > >extern int reload_in_progress; ># 2371 "../../gcc/rtl.h" >extern int cse_not_expected; > > > > > >extern int rtx_to_tree_code (enum rtx_code); > > >extern int delete_trivially_dead_insns (rtx, int); >extern int cse_main (rtx, int); >extern int exp_equiv_p (const_rtx, const_rtx, int, unsigned char); >extern unsigned hash_rtx (const_rtx x, enum machine_mode, int *, int *, unsigned char); > > >extern unsigned char check_for_inc_dec (rtx insn); > > >extern int comparison_dominates_p (enum rtx_code, enum rtx_code); >extern unsigned char jump_to_label_p (rtx); >extern int condjump_p (const_rtx); >extern int any_condjump_p (const_rtx); >extern int any_uncondjump_p (const_rtx); >extern rtx pc_set (const_rtx); >extern rtx condjump_label (const_rtx); >extern int simplejump_p (const_rtx); >extern int returnjump_p (rtx); >extern int eh_returnjump_p (rtx); >extern int onlyjump_p (const_rtx); >extern int only_sets_cc0_p (const_rtx); >extern int sets_cc0_p (const_rtx); >extern int invert_jump_1 (rtx, rtx); >extern int invert_jump (rtx, rtx, int); >extern int rtx_renumbered_equal_p (const_rtx, const_rtx); >extern int true_regnum (const_rtx); >extern unsigned int reg_or_subregno (const_rtx); >extern int redirect_jump_1 (rtx, rtx); >extern void redirect_jump_2 (rtx, rtx, rtx, int, int); >extern int redirect_jump (rtx, rtx, int); >extern void rebuild_jump_labels (rtx); >extern void rebuild_jump_labels_chain (rtx); >extern rtx reversed_comparison (const_rtx, enum machine_mode); >extern enum rtx_code reversed_comparison_code (const_rtx, const_rtx); >extern enum rtx_code reversed_comparison_code_parts (enum rtx_code, const_rtx, > const_rtx, const_rtx); >extern void delete_for_peephole (rtx, rtx); >extern int condjump_in_parallel_p (const_rtx); > > >extern int max_reg_num (void); >extern int max_label_num (void); >extern int get_first_label_num (void); >extern void maybe_set_first_label_num (rtx); >extern void delete_insns_since (rtx); >extern void mark_reg_pointer (rtx, int); >extern void mark_user_reg (rtx); >extern void reset_used_flags (rtx); >extern void set_used_flags (rtx); >extern void reorder_insns (rtx, rtx, rtx); >extern void reorder_insns_nobb (rtx, rtx, rtx); >extern int get_max_insn_count (void); >extern int in_sequence_p (void); >extern void force_next_line_note (void); >extern void init_emit (void); >extern void init_emit_regs (void); >extern void init_emit_once (void); >extern void push_topmost_sequence (void); >extern void pop_topmost_sequence (void); >extern void set_new_first_and_last_insn (rtx, rtx); >extern unsigned int unshare_all_rtl (void); >extern void unshare_all_rtl_again (rtx); >extern void unshare_all_rtl_in_chain (rtx); >extern void verify_rtl_sharing (void); >extern void link_cc0_insns (rtx); >extern void add_insn (rtx); >extern void add_insn_before (rtx, rtx, struct basic_block_def *); >extern void add_insn_after (rtx, rtx, struct basic_block_def *); >extern void remove_insn (rtx); >extern rtx emit (rtx); >extern rtx delete_insn (rtx); >extern rtx entry_of_function (void); >extern void emit_insn_at_entry (rtx); >extern void delete_insn_chain (rtx, rtx, unsigned char); >extern rtx unlink_insn_chain (rtx, rtx); >extern rtx delete_insn_and_edges (rtx); >extern rtx gen_lowpart_SUBREG (enum machine_mode, rtx); >extern rtx gen_const_mem (enum machine_mode, rtx); >extern rtx gen_frame_mem (enum machine_mode, rtx); >extern rtx gen_tmp_stack_mem (enum machine_mode, rtx); >extern unsigned char validate_subreg (enum machine_mode, enum machine_mode, > const_rtx, unsigned int); > > >extern unsigned int extended_count (const_rtx, enum machine_mode, int); >extern rtx remove_death (unsigned int, rtx); >extern void dump_combine_stats (FILE *); >extern void dump_combine_total_stats (FILE *); > > >extern void delete_dead_jumptables (void); > > >extern void debug_bb_n_slim (int); >extern void debug_bb_slim (struct basic_block_def *); >extern void print_rtl_slim (FILE *, rtx, rtx, int, int); >extern void print_rtl_slim_with_bb (FILE *, rtx, int); >extern void dump_insn_slim (FILE *f, rtx x); >extern void debug_insn_slim (rtx x); > > >extern void schedule_insns (void); > > >extern void schedule_ebbs (void); > > >extern void sel_sched_fix_param (const char *param, const char *val); > > >extern const char *print_rtx_head; >extern void debug_rtx (const_rtx); >extern void debug_rtx_list (const_rtx, int); >extern void debug_rtx_range (const_rtx, const_rtx); >extern const_rtx debug_rtx_find (const_rtx, int); >extern void print_mem_expr (FILE *, const_tree); >extern void print_rtl (FILE *, const_rtx); >extern void print_simple_rtl (FILE *, const_rtx); >extern int print_rtl_single (FILE *, const_rtx); >extern void print_inline_rtx (FILE *, const_rtx, int); > > >extern void reposition_prologue_and_epilogue_notes (void); >extern int prologue_epilogue_contains (const_rtx); >extern int sibcall_epilogue_contains (const_rtx); >extern void mark_temp_addr_taken (rtx); >extern void update_temp_slot_address (rtx, rtx); >extern void maybe_copy_prologue_epilogue_insn (rtx, rtx); >extern void set_return_jump_label (rtx); > > >extern void expand_null_return (void); >extern void expand_naked_return (void); >extern void emit_jump (rtx); > > >extern rtx move_by_pieces (rtx, rtx, unsigned long long, > unsigned int, int); >extern long long find_args_size_adjust (rtx); >extern int fixup_args_size_notes (rtx, rtx, int); > > >extern void print_rtl_with_bb (FILE *, const_rtx); > > >extern void dump_reg_info (FILE *); >extern void dump_flow_info (FILE *, int); > > >extern void init_expmed (void); >extern void expand_inc (rtx, rtx); >extern void expand_dec (rtx, rtx); > > >extern unsigned char can_copy_p (enum machine_mode); >extern unsigned char can_assign_to_reg_without_clobbers_p (rtx); >extern rtx fis_get_condition (rtx); > > > > > >extern void mark_elimination (int, int); > > >extern int reg_classes_intersect_p (reg_class_t, reg_class_t); >extern int reg_class_subset_p (reg_class_t, reg_class_t); >extern void globalize_reg (tree, int); >extern void init_reg_modes_target (void); >extern void init_regs (void); >extern void reinit_regs (void); >extern void init_fake_stack_mems (void); >extern void save_register_info (void); >extern void init_reg_sets (void); >extern void regclass (rtx, int); >extern void reg_scan (rtx, unsigned int); >extern void fix_register (const char *, int, int); >extern unsigned char invalid_mode_change_p (unsigned int, enum reg_class); > > >extern void dbr_schedule (rtx); > > >extern int function_invariant_p (const_rtx); > > >enum libcall_type >{ > LCT_NORMAL = 0, > LCT_CONST = 1, > LCT_PURE = 2, > LCT_NORETURN = 3, > LCT_THROW = 4, > LCT_RETURNS_TWICE = 5 >}; > >extern void emit_library_call (rtx, enum libcall_type, enum machine_mode, int, > ...); >extern rtx emit_library_call_value (rtx, rtx, enum libcall_type, > enum machine_mode, int, ...); > > >extern void init_varasm_once (void); > >extern rtx make_debug_expr_from_rtl (const_rtx); > > >extern unsigned char read_rtx (const char *, rtx *); > > >extern rtx canon_rtx (rtx); >extern int true_dependence (const_rtx, enum machine_mode, const_rtx); >extern rtx get_addr (rtx); >extern int canon_true_dependence (const_rtx, enum machine_mode, rtx, > const_rtx, rtx); >extern int read_dependence (const_rtx, const_rtx); >extern int anti_dependence (const_rtx, const_rtx); >extern int output_dependence (const_rtx, const_rtx); >extern int may_alias_p (const_rtx, const_rtx); >extern void init_alias_target (void); >extern void init_alias_analysis (void); >extern void end_alias_analysis (void); >extern void vt_equate_reg_base_value (const_rtx, const_rtx); >extern unsigned char memory_modified_in_insn_p (const_rtx, const_rtx); >extern rtx find_base_term (rtx); >extern rtx gen_hard_reg_clobber (enum machine_mode, unsigned int); >extern rtx get_reg_known_value (unsigned int); >extern unsigned char get_reg_known_equiv_p (unsigned int); >extern rtx get_reg_base_value (unsigned int); > > > > > > >extern rtx stack_limit_rtx; > > >extern void invert_br_probabilities (rtx); >extern unsigned char expensive_function_p (int); > > >extern unsigned int variable_tracking_main (void); > > >extern void get_mode_bounds (enum machine_mode, int, enum machine_mode, > rtx *, rtx *); > > >extern rtx reversed_condition (rtx); >extern rtx compare_and_jump_seq (rtx, rtx, enum rtx_code, rtx, int, rtx); > > >extern rtx canon_condition (rtx); >extern void simplify_using_condition (rtx, rtx *, struct bitmap_head_def *); > > >extern unsigned int compute_alignments (void); >extern int asm_str_count (const char *templ); > >struct rtl_hooks >{ > rtx (*gen_lowpart) (enum machine_mode, rtx); > rtx (*gen_lowpart_no_emit) (enum machine_mode, rtx); > rtx (*reg_nonzero_bits) (const_rtx, enum machine_mode, const_rtx, enum machine_mode, > unsigned long long, unsigned long long *); > rtx (*reg_num_sign_bit_copies) (const_rtx, enum machine_mode, const_rtx, enum machine_mode, > unsigned int, unsigned int *); > unsigned char (*reg_truncated_to_mode) (enum machine_mode, const_rtx); > > >}; > > >extern struct rtl_hooks rtl_hooks; > > >extern const struct rtl_hooks general_rtl_hooks; > > > > >extern void insn_locators_alloc (void); >extern void insn_locators_free (void); >extern void insn_locators_finalize (void); >extern void set_curr_insn_source_location (location_t); >extern location_t get_curr_insn_source_location (void); >extern void set_curr_insn_block (tree); >extern tree get_curr_insn_block (void); >extern int curr_insn_locator (void); >extern unsigned char optimize_insn_for_size_p (void); >extern unsigned char optimize_insn_for_speed_p (void); > > >extern void _fatal_insn_not_found (const_rtx, const char *, int, const char *) > __attribute__ ((__noreturn__)); >extern void _fatal_insn (const char *, const_rtx, const char *, int, const char *) > __attribute__ ((__noreturn__)); ># 83 "../../gcc/combine.c" 2 ># 1 "../../gcc/tree.h" 1 ># 35 "../../gcc/tree.h" ># 1 "../../gcc/flags.h" 1 ># 26 "../../gcc/flags.h" ># 1 "../../gcc/flag-types.h" 1 ># 27 "../../gcc/flags.h" 2 ># 1 "./options.h" 1 ># 28 "../../gcc/flags.h" 2 > > > > >extern const char *const debug_type_names[]; > >extern void strip_off_ending (char *, int); >extern int base_of_path (const char *path, const char **base_out); > > >extern unsigned char fast_math_flags_set_p (const struct gcc_options *); >extern unsigned char fast_math_flags_struct_set_p (struct cl_optimization *); ># 48 "../../gcc/flags.h" >extern void set_Wstrict_aliasing (struct gcc_options *opts, int onoff); > > > > > >extern unsigned char final_insns_dump_p; > > > >extern int flag_permissive; > > > > >struct target_flag_state { > > > > > int x_align_loops_log; > int x_align_loops_max_skip; > int x_align_jumps_log; > int x_align_jumps_max_skip; > int x_align_labels_log; > int x_align_labels_max_skip; > int x_align_functions_log; > > > enum excess_precision x_flag_excess_precision; >}; > >extern struct target_flag_state default_target_flag_state; ># 105 "../../gcc/flags.h" >extern int dump_for_graph; ># 36 "../../gcc/tree.h" 2 > > > > > > >enum tree_code { ># 1 "./all-tree.def" 1 ># 1 "../../gcc/tree.def" 1 ># 42 "../../gcc/tree.def" >ERROR_MARK, > > > > > >IDENTIFIER_NODE, > > > > > > >TREE_LIST, > > >TREE_VEC, ># 79 "../../gcc/tree.def" >BLOCK, ># 123 "../../gcc/tree.def" >OFFSET_TYPE, ># 136 "../../gcc/tree.def" >ENUMERAL_TYPE, > > > >BOOLEAN_TYPE, ># 150 "../../gcc/tree.def" >INTEGER_TYPE, > > > >REAL_TYPE, ># 163 "../../gcc/tree.def" >POINTER_TYPE, > > > >REFERENCE_TYPE, > > >NULLPTR_TYPE, > > > > >FIXED_POINT_TYPE, ># 184 "../../gcc/tree.def" >COMPLEX_TYPE, > > > > >VECTOR_TYPE, ># 205 "../../gcc/tree.def" >ARRAY_TYPE, ># 215 "../../gcc/tree.def" >RECORD_TYPE, > > > > > >UNION_TYPE, > > > > > >QUAL_UNION_TYPE, > > > > > > >VOID_TYPE, > > > > > > > >FUNCTION_TYPE, > > > > > > >METHOD_TYPE, > > > > > >LANG_TYPE, ># 268 "../../gcc/tree.def" >INTEGER_CST, > > >REAL_CST, > > >FIXED_CST, > > > >COMPLEX_CST, > > >VECTOR_CST, > > >STRING_CST, ># 344 "../../gcc/tree.def" >FUNCTION_DECL, >LABEL_DECL, > > > > >FIELD_DECL, >VAR_DECL, >CONST_DECL, >PARM_DECL, >TYPE_DECL, >RESULT_DECL, > > > >DEBUG_EXPR_DECL, > > > >NAMESPACE_DECL, ># 374 "../../gcc/tree.def" >IMPORTED_DECL, > > > >TRANSLATION_UNIT_DECL, ># 391 "../../gcc/tree.def" >COMPONENT_REF, ># 401 "../../gcc/tree.def" >BIT_FIELD_REF, > > > >REALPART_EXPR, >IMAGPART_EXPR, > > > > > > >ARRAY_REF, > > > > >ARRAY_RANGE_REF, > > >INDIRECT_REF, ># 430 "../../gcc/tree.def" >OBJ_TYPE_REF, ># 446 "../../gcc/tree.def" >CONSTRUCTOR, ># 456 "../../gcc/tree.def" >COMPOUND_EXPR, > > >MODIFY_EXPR, > > > > >INIT_EXPR, > > > > > > > >TARGET_EXPR, ># 486 "../../gcc/tree.def" >COND_EXPR, ># 498 "../../gcc/tree.def" >VEC_COND_EXPR, ># 512 "../../gcc/tree.def" >VEC_PERM_EXPR, ># 535 "../../gcc/tree.def" >BIND_EXPR, > > > > > > > >CALL_EXPR, > > > > > > >WITH_CLEANUP_EXPR, ># 567 "../../gcc/tree.def" >CLEANUP_POINT_EXPR, ># 619 "../../gcc/tree.def" >PLACEHOLDER_EXPR, > > >PLUS_EXPR, >MINUS_EXPR, >MULT_EXPR, > > > >POINTER_PLUS_EXPR, > > >TRUNC_DIV_EXPR, > > >CEIL_DIV_EXPR, > > >FLOOR_DIV_EXPR, > > >ROUND_DIV_EXPR, > > >TRUNC_MOD_EXPR, >CEIL_MOD_EXPR, >FLOOR_MOD_EXPR, >ROUND_MOD_EXPR, > > >RDIV_EXPR, > > > >EXACT_DIV_EXPR, > > >FIX_TRUNC_EXPR, > > >FLOAT_EXPR, > > >NEGATE_EXPR, > > > > >MIN_EXPR, >MAX_EXPR, > > > > > >ABS_EXPR, ># 689 "../../gcc/tree.def" >LSHIFT_EXPR, >RSHIFT_EXPR, >LROTATE_EXPR, >RROTATE_EXPR, > > >BIT_IOR_EXPR, >BIT_XOR_EXPR, >BIT_AND_EXPR, >BIT_NOT_EXPR, ># 709 "../../gcc/tree.def" >TRUTH_ANDIF_EXPR, >TRUTH_ORIF_EXPR, >TRUTH_AND_EXPR, >TRUTH_OR_EXPR, >TRUTH_XOR_EXPR, >TRUTH_NOT_EXPR, ># 725 "../../gcc/tree.def" >LT_EXPR, >LE_EXPR, >GT_EXPR, >GE_EXPR, >EQ_EXPR, >NE_EXPR, > > >UNORDERED_EXPR, >ORDERED_EXPR, > > >UNLT_EXPR, >UNLE_EXPR, >UNGT_EXPR, >UNGE_EXPR, >UNEQ_EXPR, > > >LTGT_EXPR, > >RANGE_EXPR, > > > >PAREN_EXPR, > > > > >CONVERT_EXPR, > > > >ADDR_SPACE_CONVERT_EXPR, > > > > >FIXED_CONVERT_EXPR, > > >NOP_EXPR, > > >NON_LVALUE_EXPR, ># 782 "../../gcc/tree.def" >VIEW_CONVERT_EXPR, > > > > > > >COMPOUND_LITERAL_EXPR, > > > > >SAVE_EXPR, > > > >ADDR_EXPR, > > > >FDESC_EXPR, > > > >COMPLEX_EXPR, > > >CONJ_EXPR, > > > > >PREDECREMENT_EXPR, >PREINCREMENT_EXPR, >POSTDECREMENT_EXPR, >POSTINCREMENT_EXPR, > > >VA_ARG_EXPR, > > > > > > >TRY_CATCH_EXPR, > > > > >TRY_FINALLY_EXPR, > > > > > >DECL_EXPR, > > > > >LABEL_EXPR, > > > >GOTO_EXPR, > > > > > > >RETURN_EXPR, > > > >EXIT_EXPR, > > > > >LOOP_EXPR, ># 877 "../../gcc/tree.def" >SWITCH_EXPR, > > > > > >CASE_LABEL_EXPR, > > > > > > >ASM_EXPR, > > > > >SSA_NAME, > > > >CATCH_EXPR, > > > > >EH_FILTER_EXPR, > > > >SCEV_KNOWN, > > > >SCEV_NOT_KNOWN, > > > >POLYNOMIAL_CHREC, > > > >STATEMENT_LIST, ># 939 "../../gcc/tree.def" >ASSERT_EXPR, > > > >TREE_BINFO, > > > > > > >WITH_SIZE_EXPR, ># 961 "../../gcc/tree.def" >REALIGN_LOAD_EXPR, ># 977 "../../gcc/tree.def" >TARGET_MEM_REF, ># 987 "../../gcc/tree.def" >MEM_REF, > > > > > > > >OMP_PARALLEL, > > > > > >OMP_TASK, ># 1022 "../../gcc/tree.def" >OMP_FOR, > > > > >OMP_SECTIONS, > > > > >OMP_SINGLE, > > > >OMP_SECTION, > > > >OMP_MASTER, > > > >OMP_ORDERED, > > > > >OMP_CRITICAL, > > > > > > > >OMP_ATOMIC, > > > > >OMP_ATOMIC_READ, ># 1072 "../../gcc/tree.def" >OMP_ATOMIC_CAPTURE_OLD, >OMP_ATOMIC_CAPTURE_NEW, > > >OMP_CLAUSE, > > > >TRANSACTION_EXPR, > > > > > > > >REDUC_MAX_EXPR, >REDUC_MIN_EXPR, >REDUC_PLUS_EXPR, ># 1101 "../../gcc/tree.def" >DOT_PROD_EXPR, ># 1110 "../../gcc/tree.def" >WIDEN_SUM_EXPR, > > > > > > >WIDEN_MULT_EXPR, ># 1126 "../../gcc/tree.def" >WIDEN_MULT_PLUS_EXPR, > > >WIDEN_MULT_MINUS_EXPR, ># 1142 "../../gcc/tree.def" >WIDEN_LSHIFT_EXPR, > > > > > >FMA_EXPR, > > > > >VEC_LSHIFT_EXPR, >VEC_RSHIFT_EXPR, > > > > > > >VEC_WIDEN_MULT_HI_EXPR, >VEC_WIDEN_MULT_LO_EXPR, > > > > > >VEC_UNPACK_HI_EXPR, >VEC_UNPACK_LO_EXPR, > > > > > >VEC_UNPACK_FLOAT_HI_EXPR, >VEC_UNPACK_FLOAT_LO_EXPR, > > > > > >VEC_PACK_TRUNC_EXPR, >VEC_PACK_SAT_EXPR, > > > > > >VEC_PACK_FIX_TRUNC_EXPR, ># 1198 "../../gcc/tree.def" >VEC_WIDEN_LSHIFT_HI_EXPR, >VEC_WIDEN_LSHIFT_LO_EXPR, > > > > > > >PREDICT_EXPR, > > >OPTIMIZATION_NODE, > > >TARGET_OPTION_NODE, ># 2 "./all-tree.def" 2 >LAST_AND_UNUSED_TREE_CODE, ># 1 "../../gcc/c-family/c-common.def" 1 ># 41 "../../gcc/c-family/c-common.def" >C_MAYBE_CONST_EXPR, > > > > > > >EXCESS_PRECISION_EXPR, > > > > > >USERDEF_LITERAL, ># 4 "./all-tree.def" 2 ># 1 "../../gcc/ada/gcc-interface/ada-tree.def" 1 ># 29 "../../gcc/ada/gcc-interface/ada-tree.def" >UNCONSTRAINED_ARRAY_TYPE, > > > > > >UNCONSTRAINED_ARRAY_REF, > > > > >NULL_EXPR, > > > >PLUS_NOMOD_EXPR, > > > >MINUS_NOMOD_EXPR, > > > > >ATTR_ADDR_EXPR, ># 62 "../../gcc/ada/gcc-interface/ada-tree.def" >STMT_STMT, > > > > > >LOOP_STMT, > > > > > >EXIT_STMT, ># 5 "./all-tree.def" 2 ># 1 "../../gcc/cp/cp-tree.def" 1 ># 43 "../../gcc/cp/cp-tree.def" >OFFSET_REF, > > > > >PTRMEM_CST, > > > > > >NEW_EXPR, >VEC_NEW_EXPR, > > > > >DELETE_EXPR, >VEC_DELETE_EXPR, > > > > >SCOPE_REF, > > > > >MEMBER_REF, > > > >TYPE_EXPR, > > > > > > >AGGR_INIT_EXPR, > > > > >VEC_INIT_EXPR, > > > >THROW_EXPR, > > > >EMPTY_CLASS_EXPR, ># 109 "../../gcc/cp/cp-tree.def" >BASELINK, ># 126 "../../gcc/cp/cp-tree.def" >TEMPLATE_DECL, ># 161 "../../gcc/cp/cp-tree.def" >TEMPLATE_PARM_INDEX, ># 170 "../../gcc/cp/cp-tree.def" >TEMPLATE_TEMPLATE_PARM, ># 179 "../../gcc/cp/cp-tree.def" >TEMPLATE_TYPE_PARM, > > > > > >TYPENAME_TYPE, > > > >TYPEOF_TYPE, > > > > > >BOUND_TEMPLATE_TEMPLATE_PARM, > > > > > >UNBOUND_CLASS_TEMPLATE, > > > > > >USING_DECL, > > >USING_STMT, > > > > >DEFAULT_ARG, > > > > >DEFERRED_NOEXCEPT, > > > > > > >TEMPLATE_ID_EXPR, > > > >OVERLOAD, ># 243 "../../gcc/cp/cp-tree.def" >PSEUDO_DTOR_EXPR, > > > >MODOP_EXPR, >CAST_EXPR, >REINTERPRET_CAST_EXPR, >CONST_CAST_EXPR, >STATIC_CAST_EXPR, >DYNAMIC_CAST_EXPR, >IMPLICIT_CONV_EXPR, >DOTSTAR_EXPR, >TYPEID_EXPR, >NOEXCEPT_EXPR, ># 267 "../../gcc/cp/cp-tree.def" >NON_DEPENDENT_EXPR, > > > >CTOR_INITIALIZER, > >TRY_BLOCK, > >EH_SPEC_BLOCK, > > > > > >HANDLER, > > > > >MUST_NOT_THROW_EXPR, > > > > >CLEANUP_STMT, > > > > > >IF_STMT, > > > >FOR_STMT, > > > > >RANGE_FOR_STMT, > > > >WHILE_STMT, > > > >DO_STMT, > > >BREAK_STMT, > > >CONTINUE_STMT, > > > > >SWITCH_STMT, > > > >EXPR_STMT, > >TAG_DEFN, > > >OFFSETOF_EXPR, > > >SIZEOF_EXPR, > > >ARROW_EXPR, > > > >ALIGNOF_EXPR, > > > >AT_ENCODE_EXPR, > > > > >STMT_EXPR, > > > >UNARY_PLUS_EXPR, > > > > > > > >STATIC_ASSERT, ># 384 "../../gcc/cp/cp-tree.def" >TYPE_ARGUMENT_PACK, ># 393 "../../gcc/cp/cp-tree.def" >NONTYPE_ARGUMENT_PACK, ># 416 "../../gcc/cp/cp-tree.def" >TYPE_PACK_EXPANSION, > > > > > > >EXPR_PACK_EXPANSION, ># 435 "../../gcc/cp/cp-tree.def" >ARGUMENT_PACK_SELECT, > > > > >TRAIT_EXPR, ># 451 "../../gcc/cp/cp-tree.def" >LAMBDA_EXPR, ># 460 "../../gcc/cp/cp-tree.def" >DECLTYPE_TYPE, > > > >UNDERLYING_TYPE, > > > >BASES, ># 478 "../../gcc/cp/cp-tree.def" >TEMPLATE_INFO, ># 6 "./all-tree.def" 2 ># 1 "../../gcc/java/java-tree.def" 1 ># 23 "../../gcc/java/java-tree.def" >URSHIFT_EXPR, > > > >COMPARE_EXPR, > > >COMPARE_L_EXPR, > >COMPARE_G_EXPR, ># 7 "./all-tree.def" 2 ># 1 "../../gcc/objc/objc-tree.def" 1 ># 25 "../../gcc/objc/objc-tree.def" >CLASS_INTERFACE_TYPE, >CLASS_IMPLEMENTATION_TYPE, > >CATEGORY_INTERFACE_TYPE, >CATEGORY_IMPLEMENTATION_TYPE, > >PROTOCOL_INTERFACE_TYPE, > > >KEYWORD_DECL, >INSTANCE_METHOD_DECL, >CLASS_METHOD_DECL, >PROPERTY_DECL, > > >MESSAGE_SEND_EXPR, >CLASS_REFERENCE_EXPR, ># 71 "../../gcc/objc/objc-tree.def" >PROPERTY_REF, ># 7 "./all-tree.def" 2 ># 44 "../../gcc/tree.h" 2 >MAX_TREE_CODES >}; > > > > >extern unsigned char tree_contains_struct[MAX_TREE_CODES][64]; ># 121 "../../gcc/tree.h" >enum tree_code_class { > tcc_exceptional, > tcc_constant, > > tcc_type, > tcc_declaration, > tcc_reference, > tcc_comparison, > tcc_unary, > tcc_binary, > tcc_statement, > > tcc_vl_exp, > > tcc_expression >}; > > > > >extern const char *const tree_code_class_strings[]; > > > > > > >extern const enum tree_code_class tree_code_type[]; ># 235 "../../gcc/tree.h" >extern const unsigned char tree_code_length[]; > > > > >extern const char *const tree_code_name[]; ># 250 "../../gcc/tree.h" >typedef enum { > ALIAS_DIAG_NONE = 0x0, > ALIAS_DIAG_TO_UNDEF = 0x1, > ALIAS_DIAG_TO_EXTERN = 0x2 >} alias_diag_flags; > >typedef struct alias_pair >{ > tree decl; > tree target; > int emitted_diags; >} alias_pair; > > >typedef struct VEC_alias_pair_base { struct vec_prefix prefix; alias_pair vec[1]; } VEC_alias_pair_base; typedef struct VEC_alias_pair_none { VEC_alias_pair_base base; } VEC_alias_pair_none; static __inline__ unsigned VEC_alias_pair_base_length (const VEC_alias_pair_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ alias_pair *VEC_alias_pair_base_last (VEC_alias_pair_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return &vec_->vec[vec_->prefix.num - 1]; } static __inline__ alias_pair *VEC_alias_pair_base_index (VEC_alias_pair_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return &vec_->vec[ix_]; } static __inline__ int VEC_alias_pair_base_iterate (VEC_alias_pair_base *vec_, unsigned ix_, alias_pair **ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = &vec_->vec[ix_]; return 1; } else { *ptr = 0; return 0; } } static __inline__ size_t VEC_alias_pair_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_alias_pair_base, vec) + alloc_ * sizeof(alias_pair); } static __inline__ void VEC_alias_pair_base_embedded_init (VEC_alias_pair_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_alias_pair_base_space (VEC_alias_pair_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_alias_pair_base_splice (VEC_alias_pair_base *dst_, VEC_alias_pair_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (alias_pair)); dst_->prefix.num += len_; } } static __inline__ alias_pair *VEC_alias_pair_base_quick_push (VEC_alias_pair_base *vec_, const alias_pair *obj_ ) { alias_pair *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; if (obj_) *slot_ = *obj_; return slot_; } static __inline__ void VEC_alias_pair_base_pop (VEC_alias_pair_base *vec_ ) { (void)(vec_->prefix.num); --vec_->prefix.num; } static __inline__ void VEC_alias_pair_base_truncate (VEC_alias_pair_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ alias_pair *VEC_alias_pair_base_replace (VEC_alias_pair_base *vec_, unsigned ix_, const alias_pair *obj_ ) { alias_pair *slot_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; if (obj_) *slot_ = *obj_; return slot_; } static __inline__ alias_pair *VEC_alias_pair_base_quick_insert (VEC_alias_pair_base *vec_, unsigned ix_, const alias_pair *obj_ ) { alias_pair *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (alias_pair)); if (obj_) *slot_ = *obj_; return slot_; } static __inline__ void VEC_alias_pair_base_ordered_remove (VEC_alias_pair_base *vec_, unsigned ix_ ) { alias_pair *slot_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (alias_pair)); } static __inline__ void VEC_alias_pair_base_unordered_remove (VEC_alias_pair_base *vec_, unsigned ix_ ) { (void)(ix_ < vec_->prefix.num); vec_->vec[ix_] = vec_->vec[--vec_->prefix.num]; } static __inline__ void VEC_alias_pair_base_block_remove (VEC_alias_pair_base *vec_, unsigned ix_, unsigned len_ ) { alias_pair *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (alias_pair)); } static __inline__ alias_pair *VEC_alias_pair_base_address (VEC_alias_pair_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_alias_pair_base_lower_bound (VEC_alias_pair_base *vec_, const alias_pair *obj_, unsigned char (*lessthan_)(const alias_pair *, const alias_pair *) ) { unsigned int len_ = VEC_alias_pair_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { alias_pair *middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_alias_pair_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_alias_pair_gc { VEC_alias_pair_base base; } VEC_alias_pair_gc; static __inline__ VEC_alias_pair_gc *VEC_alias_pair_gc_alloc (int alloc_ ) { return (VEC_alias_pair_gc *) vec_gc_o_reserve_exact (((void *)0), alloc_, __builtin_offsetof (VEC_alias_pair_gc, base.vec), sizeof (alias_pair) ); } static __inline__ VEC_alias_pair_gc *VEC_alias_pair_gc_copy (VEC_alias_pair_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_alias_pair_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_alias_pair_gc *)(vec_gc_o_reserve_exact (((void *)0), len_, __builtin_offsetof (VEC_alias_pair_gc, base.vec), sizeof (alias_pair) )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (alias_pair) * len_); } return new_vec_; } static __inline__ void VEC_alias_pair_gc_free (VEC_alias_pair_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ int VEC_alias_pair_gc_reserve (VEC_alias_pair_gc **vec_, int alloc_ ) { int extend = !VEC_alias_pair_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_alias_pair_gc *) vec_gc_o_reserve (*vec_, alloc_, __builtin_offsetof (VEC_alias_pair_gc, base.vec), sizeof (alias_pair) ); return extend; } static __inline__ int VEC_alias_pair_gc_reserve_exact (VEC_alias_pair_gc **vec_, int alloc_ ) { int extend = !VEC_alias_pair_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_alias_pair_gc *) vec_gc_o_reserve_exact (*vec_, alloc_, __builtin_offsetof (VEC_alias_pair_gc, base.vec), sizeof (alias_pair) ); return extend; } static __inline__ void VEC_alias_pair_gc_safe_grow (VEC_alias_pair_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_alias_pair_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_alias_pair_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_alias_pair_gc_safe_grow_cleared (VEC_alias_pair_gc **vec_, int size_ ) { int oldsize = VEC_alias_pair_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_alias_pair_gc_safe_grow (vec_, size_ ); memset (&(VEC_alias_pair_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (alias_pair) * (size_ - oldsize)); } static __inline__ void VEC_alias_pair_gc_safe_splice (VEC_alias_pair_gc **dst_, VEC_alias_pair_base *src_ ) { if (src_) { VEC_alias_pair_gc_reserve_exact (dst_, src_->prefix.num ); VEC_alias_pair_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ alias_pair *VEC_alias_pair_gc_safe_push (VEC_alias_pair_gc **vec_, const alias_pair *obj_ ) { VEC_alias_pair_gc_reserve (vec_, 1 ); return VEC_alias_pair_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ alias_pair *VEC_alias_pair_gc_safe_insert (VEC_alias_pair_gc **vec_, unsigned ix_, const alias_pair *obj_ ) { VEC_alias_pair_gc_reserve (vec_, 1 ); return VEC_alias_pair_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; > >extern VEC_alias_pair_gc * alias_pairs; > > > > >enum built_in_class >{ > NOT_BUILT_IN = 0, > BUILT_IN_FRONTEND, > BUILT_IN_MD, > BUILT_IN_NORMAL >}; > > > > > > >extern const char *const built_in_class_names[4]; > > > > > >enum built_in_function >{ ># 1 "../../gcc/builtins.def" 1 ># 184 "../../gcc/builtins.def" >BUILT_IN_NONE, > > >BUILT_IN_ACOS, >BUILT_IN_ACOSF, >BUILT_IN_ACOSH, >BUILT_IN_ACOSHF, >BUILT_IN_ACOSHL, >BUILT_IN_ACOSL, >BUILT_IN_ASIN, >BUILT_IN_ASINF, >BUILT_IN_ASINH, >BUILT_IN_ASINHF, >BUILT_IN_ASINHL, >BUILT_IN_ASINL, >BUILT_IN_ATAN, >BUILT_IN_ATAN2, >BUILT_IN_ATAN2F, >BUILT_IN_ATAN2L, >BUILT_IN_ATANF, >BUILT_IN_ATANH, >BUILT_IN_ATANHF, >BUILT_IN_ATANHL, >BUILT_IN_ATANL, >BUILT_IN_CBRT, >BUILT_IN_CBRTF, >BUILT_IN_CBRTL, >BUILT_IN_CEIL, >BUILT_IN_CEILF, >BUILT_IN_CEILL, >BUILT_IN_COPYSIGN, >BUILT_IN_COPYSIGNF, >BUILT_IN_COPYSIGNL, >BUILT_IN_COS, >BUILT_IN_COSF, >BUILT_IN_COSH, >BUILT_IN_COSHF, >BUILT_IN_COSHL, >BUILT_IN_COSL, >BUILT_IN_DREM, >BUILT_IN_DREMF, >BUILT_IN_DREML, >BUILT_IN_ERF, >BUILT_IN_ERFC, >BUILT_IN_ERFCF, >BUILT_IN_ERFCL, >BUILT_IN_ERFF, >BUILT_IN_ERFL, >BUILT_IN_EXP, >BUILT_IN_EXP10, >BUILT_IN_EXP10F, >BUILT_IN_EXP10L, >BUILT_IN_EXP2, >BUILT_IN_EXP2F, >BUILT_IN_EXP2L, >BUILT_IN_EXPF, >BUILT_IN_EXPL, >BUILT_IN_EXPM1, >BUILT_IN_EXPM1F, >BUILT_IN_EXPM1L, >BUILT_IN_FABS, >BUILT_IN_FABSF, >BUILT_IN_FABSL, >BUILT_IN_FDIM, >BUILT_IN_FDIMF, >BUILT_IN_FDIML, >BUILT_IN_FLOOR, >BUILT_IN_FLOORF, >BUILT_IN_FLOORL, >BUILT_IN_FMA, >BUILT_IN_FMAF, >BUILT_IN_FMAL, >BUILT_IN_FMAX, >BUILT_IN_FMAXF, >BUILT_IN_FMAXL, >BUILT_IN_FMIN, >BUILT_IN_FMINF, >BUILT_IN_FMINL, >BUILT_IN_FMOD, >BUILT_IN_FMODF, >BUILT_IN_FMODL, >BUILT_IN_FREXP, >BUILT_IN_FREXPF, >BUILT_IN_FREXPL, >BUILT_IN_GAMMA, >BUILT_IN_GAMMAF, >BUILT_IN_GAMMAL, >BUILT_IN_GAMMA_R, >BUILT_IN_GAMMAF_R, >BUILT_IN_GAMMAL_R, >BUILT_IN_HUGE_VAL, >BUILT_IN_HUGE_VALF, >BUILT_IN_HUGE_VALL, >BUILT_IN_HYPOT, >BUILT_IN_HYPOTF, >BUILT_IN_HYPOTL, >BUILT_IN_ICEIL, >BUILT_IN_ICEILF, >BUILT_IN_ICEILL, >BUILT_IN_IFLOOR, >BUILT_IN_IFLOORF, >BUILT_IN_IFLOORL, >BUILT_IN_ILOGB, >BUILT_IN_ILOGBF, >BUILT_IN_ILOGBL, >BUILT_IN_INF, >BUILT_IN_INFF, >BUILT_IN_INFL, >BUILT_IN_INFD32, >BUILT_IN_INFD64, >BUILT_IN_INFD128, >BUILT_IN_IRINT, >BUILT_IN_IRINTF, >BUILT_IN_IRINTL, >BUILT_IN_IROUND, >BUILT_IN_IROUNDF, >BUILT_IN_IROUNDL, >BUILT_IN_J0, >BUILT_IN_J0F, >BUILT_IN_J0L, >BUILT_IN_J1, >BUILT_IN_J1F, >BUILT_IN_J1L, >BUILT_IN_JN, >BUILT_IN_JNF, >BUILT_IN_JNL, >BUILT_IN_LCEIL, >BUILT_IN_LCEILF, >BUILT_IN_LCEILL, >BUILT_IN_LDEXP, >BUILT_IN_LDEXPF, >BUILT_IN_LDEXPL, >BUILT_IN_LFLOOR, >BUILT_IN_LFLOORF, >BUILT_IN_LFLOORL, >BUILT_IN_LGAMMA, >BUILT_IN_LGAMMAF, >BUILT_IN_LGAMMAL, >BUILT_IN_LGAMMA_R, >BUILT_IN_LGAMMAF_R, >BUILT_IN_LGAMMAL_R, >BUILT_IN_LLCEIL, >BUILT_IN_LLCEILF, >BUILT_IN_LLCEILL, >BUILT_IN_LLFLOOR, >BUILT_IN_LLFLOORF, >BUILT_IN_LLFLOORL, >BUILT_IN_LLRINT, >BUILT_IN_LLRINTF, >BUILT_IN_LLRINTL, >BUILT_IN_LLROUND, >BUILT_IN_LLROUNDF, >BUILT_IN_LLROUNDL, >BUILT_IN_LOG, >BUILT_IN_LOG10, >BUILT_IN_LOG10F, >BUILT_IN_LOG10L, >BUILT_IN_LOG1P, >BUILT_IN_LOG1PF, >BUILT_IN_LOG1PL, >BUILT_IN_LOG2, >BUILT_IN_LOG2F, >BUILT_IN_LOG2L, >BUILT_IN_LOGB, >BUILT_IN_LOGBF, >BUILT_IN_LOGBL, >BUILT_IN_LOGF, >BUILT_IN_LOGL, >BUILT_IN_LRINT, >BUILT_IN_LRINTF, >BUILT_IN_LRINTL, >BUILT_IN_LROUND, >BUILT_IN_LROUNDF, >BUILT_IN_LROUNDL, >BUILT_IN_MODF, >BUILT_IN_MODFF, >BUILT_IN_MODFL, >BUILT_IN_NAN, >BUILT_IN_NANF, >BUILT_IN_NANL, >BUILT_IN_NAND32, >BUILT_IN_NAND64, >BUILT_IN_NAND128, >BUILT_IN_NANS, >BUILT_IN_NANSF, >BUILT_IN_NANSL, >BUILT_IN_NEARBYINT, >BUILT_IN_NEARBYINTF, >BUILT_IN_NEARBYINTL, >BUILT_IN_NEXTAFTER, >BUILT_IN_NEXTAFTERF, >BUILT_IN_NEXTAFTERL, >BUILT_IN_NEXTTOWARD, >BUILT_IN_NEXTTOWARDF, >BUILT_IN_NEXTTOWARDL, >BUILT_IN_POW, >BUILT_IN_POW10, >BUILT_IN_POW10F, >BUILT_IN_POW10L, >BUILT_IN_POWF, >BUILT_IN_POWI, >BUILT_IN_POWIF, >BUILT_IN_POWIL, >BUILT_IN_POWL, >BUILT_IN_REMAINDER, >BUILT_IN_REMAINDERF, >BUILT_IN_REMAINDERL, >BUILT_IN_REMQUO, >BUILT_IN_REMQUOF, >BUILT_IN_REMQUOL, >BUILT_IN_RINT, >BUILT_IN_RINTF, >BUILT_IN_RINTL, >BUILT_IN_ROUND, >BUILT_IN_ROUNDF, >BUILT_IN_ROUNDL, >BUILT_IN_SCALB, >BUILT_IN_SCALBF, >BUILT_IN_SCALBL, >BUILT_IN_SCALBLN, >BUILT_IN_SCALBLNF, >BUILT_IN_SCALBLNL, >BUILT_IN_SCALBN, >BUILT_IN_SCALBNF, >BUILT_IN_SCALBNL, >BUILT_IN_SIGNBIT, >BUILT_IN_SIGNBITF, >BUILT_IN_SIGNBITL, >BUILT_IN_SIGNBITD32, >BUILT_IN_SIGNBITD64, >BUILT_IN_SIGNBITD128, >BUILT_IN_SIGNIFICAND, >BUILT_IN_SIGNIFICANDF, >BUILT_IN_SIGNIFICANDL, >BUILT_IN_SIN, >BUILT_IN_SINCOS, >BUILT_IN_SINCOSF, >BUILT_IN_SINCOSL, >BUILT_IN_SINF, >BUILT_IN_SINH, >BUILT_IN_SINHF, >BUILT_IN_SINHL, >BUILT_IN_SINL, >BUILT_IN_SQRT, >BUILT_IN_SQRTF, >BUILT_IN_SQRTL, >BUILT_IN_TAN, >BUILT_IN_TANF, >BUILT_IN_TANH, >BUILT_IN_TANHF, >BUILT_IN_TANHL, >BUILT_IN_TANL, >BUILT_IN_TGAMMA, >BUILT_IN_TGAMMAF, >BUILT_IN_TGAMMAL, >BUILT_IN_TRUNC, >BUILT_IN_TRUNCF, >BUILT_IN_TRUNCL, >BUILT_IN_Y0, >BUILT_IN_Y0F, >BUILT_IN_Y0L, >BUILT_IN_Y1, >BUILT_IN_Y1F, >BUILT_IN_Y1L, >BUILT_IN_YN, >BUILT_IN_YNF, >BUILT_IN_YNL, > > >BUILT_IN_CABS, >BUILT_IN_CABSF, >BUILT_IN_CABSL, >BUILT_IN_CACOS, >BUILT_IN_CACOSF, >BUILT_IN_CACOSH, >BUILT_IN_CACOSHF, >BUILT_IN_CACOSHL, >BUILT_IN_CACOSL, >BUILT_IN_CARG, >BUILT_IN_CARGF, >BUILT_IN_CARGL, >BUILT_IN_CASIN, >BUILT_IN_CASINF, >BUILT_IN_CASINH, >BUILT_IN_CASINHF, >BUILT_IN_CASINHL, >BUILT_IN_CASINL, >BUILT_IN_CATAN, >BUILT_IN_CATANF, >BUILT_IN_CATANH, >BUILT_IN_CATANHF, >BUILT_IN_CATANHL, >BUILT_IN_CATANL, >BUILT_IN_CCOS, >BUILT_IN_CCOSF, >BUILT_IN_CCOSH, >BUILT_IN_CCOSHF, >BUILT_IN_CCOSHL, >BUILT_IN_CCOSL, >BUILT_IN_CEXP, >BUILT_IN_CEXPF, >BUILT_IN_CEXPL, >BUILT_IN_CEXPI, >BUILT_IN_CEXPIF, >BUILT_IN_CEXPIL, >BUILT_IN_CIMAG, >BUILT_IN_CIMAGF, >BUILT_IN_CIMAGL, >BUILT_IN_CLOG, >BUILT_IN_CLOGF, >BUILT_IN_CLOGL, >BUILT_IN_CLOG10, >BUILT_IN_CLOG10F, >BUILT_IN_CLOG10L, >BUILT_IN_CONJ, >BUILT_IN_CONJF, >BUILT_IN_CONJL, >BUILT_IN_CPOW, >BUILT_IN_CPOWF, >BUILT_IN_CPOWL, >BUILT_IN_CPROJ, >BUILT_IN_CPROJF, >BUILT_IN_CPROJL, >BUILT_IN_CREAL, >BUILT_IN_CREALF, >BUILT_IN_CREALL, >BUILT_IN_CSIN, >BUILT_IN_CSINF, >BUILT_IN_CSINH, >BUILT_IN_CSINHF, >BUILT_IN_CSINHL, >BUILT_IN_CSINL, >BUILT_IN_CSQRT, >BUILT_IN_CSQRTF, >BUILT_IN_CSQRTL, >BUILT_IN_CTAN, >BUILT_IN_CTANF, >BUILT_IN_CTANH, >BUILT_IN_CTANHF, >BUILT_IN_CTANHL, >BUILT_IN_CTANL, > > > > >BUILT_IN_BCMP, >BUILT_IN_BCOPY, >BUILT_IN_BZERO, >BUILT_IN_INDEX, >BUILT_IN_MEMCHR, >BUILT_IN_MEMCMP, >BUILT_IN_MEMCPY, >BUILT_IN_MEMMOVE, >BUILT_IN_MEMPCPY, >BUILT_IN_MEMSET, >BUILT_IN_RINDEX, >BUILT_IN_STPCPY, >BUILT_IN_STPNCPY, >BUILT_IN_STRCASECMP, >BUILT_IN_STRCAT, >BUILT_IN_STRCHR, >BUILT_IN_STRCMP, >BUILT_IN_STRCPY, >BUILT_IN_STRCSPN, >BUILT_IN_STRDUP, >BUILT_IN_STRNDUP, >BUILT_IN_STRLEN, >BUILT_IN_STRNCASECMP, >BUILT_IN_STRNCAT, >BUILT_IN_STRNCMP, >BUILT_IN_STRNCPY, >BUILT_IN_STRPBRK, >BUILT_IN_STRRCHR, >BUILT_IN_STRSPN, >BUILT_IN_STRSTR, > > >BUILT_IN_FPRINTF, >BUILT_IN_FPRINTF_UNLOCKED, >BUILT_IN_PUTC, >BUILT_IN_PUTC_UNLOCKED, >BUILT_IN_FPUTC, >BUILT_IN_FPUTC_UNLOCKED, >BUILT_IN_FPUTS, >BUILT_IN_FPUTS_UNLOCKED, >BUILT_IN_FSCANF, >BUILT_IN_FWRITE, >BUILT_IN_FWRITE_UNLOCKED, >BUILT_IN_PRINTF, >BUILT_IN_PRINTF_UNLOCKED, >BUILT_IN_PUTCHAR, >BUILT_IN_PUTCHAR_UNLOCKED, >BUILT_IN_PUTS, >BUILT_IN_PUTS_UNLOCKED, >BUILT_IN_SCANF, >BUILT_IN_SNPRINTF, >BUILT_IN_SPRINTF, >BUILT_IN_SSCANF, >BUILT_IN_VFPRINTF, >BUILT_IN_VFSCANF, >BUILT_IN_VPRINTF, >BUILT_IN_VSCANF, >BUILT_IN_VSNPRINTF, >BUILT_IN_VSPRINTF, >BUILT_IN_VSSCANF, > > >BUILT_IN_ISALNUM, >BUILT_IN_ISALPHA, >BUILT_IN_ISASCII, >BUILT_IN_ISBLANK, >BUILT_IN_ISCNTRL, >BUILT_IN_ISDIGIT, >BUILT_IN_ISGRAPH, >BUILT_IN_ISLOWER, >BUILT_IN_ISPRINT, >BUILT_IN_ISPUNCT, >BUILT_IN_ISSPACE, >BUILT_IN_ISUPPER, >BUILT_IN_ISXDIGIT, >BUILT_IN_TOASCII, >BUILT_IN_TOLOWER, >BUILT_IN_TOUPPER, > > >BUILT_IN_ISWALNUM, >BUILT_IN_ISWALPHA, >BUILT_IN_ISWBLANK, >BUILT_IN_ISWCNTRL, >BUILT_IN_ISWDIGIT, >BUILT_IN_ISWGRAPH, >BUILT_IN_ISWLOWER, >BUILT_IN_ISWPRINT, >BUILT_IN_ISWPUNCT, >BUILT_IN_ISWSPACE, >BUILT_IN_ISWUPPER, >BUILT_IN_ISWXDIGIT, >BUILT_IN_TOWLOWER, >BUILT_IN_TOWUPPER, > > >BUILT_IN_ABORT, >BUILT_IN_ABS, >BUILT_IN_AGGREGATE_INCOMING_ADDRESS, >BUILT_IN_ALLOCA, >BUILT_IN_APPLY, >BUILT_IN_APPLY_ARGS, >BUILT_IN_BSWAP32, >BUILT_IN_BSWAP64, >BUILT_IN_CLEAR_CACHE, > >BUILT_IN_CALLOC, >BUILT_IN_CLASSIFY_TYPE, >BUILT_IN_CLZ, >BUILT_IN_CLZIMAX, >BUILT_IN_CLZL, >BUILT_IN_CLZLL, >BUILT_IN_CONSTANT_P, >BUILT_IN_CTZ, >BUILT_IN_CTZIMAX, >BUILT_IN_CTZL, >BUILT_IN_CTZLL, >BUILT_IN_CLRSB, >BUILT_IN_CLRSBIMAX, >BUILT_IN_CLRSBL, >BUILT_IN_CLRSBLL, >BUILT_IN_DCGETTEXT, >BUILT_IN_DGETTEXT, >BUILT_IN_DWARF_CFA, >BUILT_IN_DWARF_SP_COLUMN, >BUILT_IN_EH_RETURN, >BUILT_IN_EH_RETURN_DATA_REGNO, >BUILT_IN_EXECL, >BUILT_IN_EXECLP, >BUILT_IN_EXECLE, >BUILT_IN_EXECV, >BUILT_IN_EXECVP, >BUILT_IN_EXECVE, >BUILT_IN_EXIT, >BUILT_IN_EXPECT, >BUILT_IN_ASSUME_ALIGNED, >BUILT_IN_EXTEND_POINTER, >BUILT_IN_EXTRACT_RETURN_ADDR, >BUILT_IN_FFS, >BUILT_IN_FFSIMAX, >BUILT_IN_FFSL, >BUILT_IN_FFSLL, >BUILT_IN_FORK, >BUILT_IN_FRAME_ADDRESS, > >BUILT_IN_FREE, >BUILT_IN_FROB_RETURN_ADDR, >BUILT_IN_GETTEXT, >BUILT_IN_IMAXABS, >BUILT_IN_INIT_DWARF_REG_SIZES, >BUILT_IN_FINITE, >BUILT_IN_FINITEF, >BUILT_IN_FINITEL, >BUILT_IN_FINITED32, >BUILT_IN_FINITED64, >BUILT_IN_FINITED128, >BUILT_IN_FPCLASSIFY, >BUILT_IN_ISFINITE, >BUILT_IN_ISINF_SIGN, >BUILT_IN_ISINF, >BUILT_IN_ISINFF, >BUILT_IN_ISINFL, >BUILT_IN_ISINFD32, >BUILT_IN_ISINFD64, >BUILT_IN_ISINFD128, >BUILT_IN_ISNAN, >BUILT_IN_ISNANF, >BUILT_IN_ISNANL, >BUILT_IN_ISNAND32, >BUILT_IN_ISNAND64, >BUILT_IN_ISNAND128, >BUILT_IN_ISNORMAL, >BUILT_IN_ISGREATER, >BUILT_IN_ISGREATEREQUAL, >BUILT_IN_ISLESS, >BUILT_IN_ISLESSEQUAL, >BUILT_IN_ISLESSGREATER, >BUILT_IN_ISUNORDERED, >BUILT_IN_LABS, >BUILT_IN_LLABS, >BUILT_IN_LONGJMP, > >BUILT_IN_MALLOC, >BUILT_IN_NEXT_ARG, >BUILT_IN_PARITY, >BUILT_IN_PARITYIMAX, >BUILT_IN_PARITYL, >BUILT_IN_PARITYLL, >BUILT_IN_POPCOUNT, >BUILT_IN_POPCOUNTIMAX, >BUILT_IN_POPCOUNTL, >BUILT_IN_POPCOUNTLL, >BUILT_IN_PREFETCH, >BUILT_IN_REALLOC, >BUILT_IN_RETURN, >BUILT_IN_RETURN_ADDRESS, >BUILT_IN_SAVEREGS, >BUILT_IN_SETJMP, >BUILT_IN_STRFMON, >BUILT_IN_STRFTIME, >BUILT_IN_TRAP, >BUILT_IN_UNREACHABLE, >BUILT_IN_UNWIND_INIT, >BUILT_IN_UPDATE_SETJMP_BUF, >BUILT_IN_VA_COPY, >BUILT_IN_VA_END, >BUILT_IN_VA_START, >BUILT_IN_VA_ARG_PACK, >BUILT_IN_VA_ARG_PACK_LEN, >BUILT_IN__EXIT, >BUILT_IN__EXIT2, > > >BUILT_IN_INIT_TRAMPOLINE, >BUILT_IN_INIT_HEAP_TRAMPOLINE, >BUILT_IN_ADJUST_TRAMPOLINE, >BUILT_IN_NONLOCAL_GOTO, > > >BUILT_IN_SETJMP_SETUP, >BUILT_IN_SETJMP_DISPATCHER, >BUILT_IN_SETJMP_RECEIVER, > > >BUILT_IN_STACK_SAVE, >BUILT_IN_STACK_RESTORE, >BUILT_IN_ALLOCA_WITH_ALIGN, > > >BUILT_IN_OBJECT_SIZE, >BUILT_IN_MEMCPY_CHK, >BUILT_IN_MEMMOVE_CHK, >BUILT_IN_MEMPCPY_CHK, >BUILT_IN_MEMSET_CHK, >BUILT_IN_STPCPY_CHK, >BUILT_IN_STPNCPY_CHK, >BUILT_IN_STRCAT_CHK, >BUILT_IN_STRCPY_CHK, >BUILT_IN_STRNCAT_CHK, >BUILT_IN_STRNCPY_CHK, >BUILT_IN_SNPRINTF_CHK, >BUILT_IN_SPRINTF_CHK, >BUILT_IN_VSNPRINTF_CHK, >BUILT_IN_VSPRINTF_CHK, >BUILT_IN_FPRINTF_CHK, >BUILT_IN_PRINTF_CHK, >BUILT_IN_VFPRINTF_CHK, >BUILT_IN_VPRINTF_CHK, > > >BUILT_IN_PROFILE_FUNC_ENTER, > >BUILT_IN_PROFILE_FUNC_EXIT, > > > >BUILT_IN_EMUTLS_GET_ADDRESS, > > > > >BUILT_IN_EMUTLS_REGISTER_COMMON, > > > > > > >BUILT_IN_UNWIND_RESUME, >BUILT_IN_CXA_END_CLEANUP, >BUILT_IN_EH_POINTER, >BUILT_IN_EH_FILTER, >BUILT_IN_EH_COPY_VALUES, > > ># 1 "../../gcc/sync-builtins.def" 1 ># 31 "../../gcc/sync-builtins.def" >BUILT_IN_SYNC_FETCH_AND_ADD_N, > >BUILT_IN_SYNC_FETCH_AND_ADD_1, > >BUILT_IN_SYNC_FETCH_AND_ADD_2, > >BUILT_IN_SYNC_FETCH_AND_ADD_4, > >BUILT_IN_SYNC_FETCH_AND_ADD_8, > >BUILT_IN_SYNC_FETCH_AND_ADD_16, > > >BUILT_IN_SYNC_FETCH_AND_SUB_N, > >BUILT_IN_SYNC_FETCH_AND_SUB_1, > >BUILT_IN_SYNC_FETCH_AND_SUB_2, > >BUILT_IN_SYNC_FETCH_AND_SUB_4, > >BUILT_IN_SYNC_FETCH_AND_SUB_8, > >BUILT_IN_SYNC_FETCH_AND_SUB_16, > > >BUILT_IN_SYNC_FETCH_AND_OR_N, > >BUILT_IN_SYNC_FETCH_AND_OR_1, > >BUILT_IN_SYNC_FETCH_AND_OR_2, > >BUILT_IN_SYNC_FETCH_AND_OR_4, > >BUILT_IN_SYNC_FETCH_AND_OR_8, > >BUILT_IN_SYNC_FETCH_AND_OR_16, > > >BUILT_IN_SYNC_FETCH_AND_AND_N, > >BUILT_IN_SYNC_FETCH_AND_AND_1, > >BUILT_IN_SYNC_FETCH_AND_AND_2, > >BUILT_IN_SYNC_FETCH_AND_AND_4, > >BUILT_IN_SYNC_FETCH_AND_AND_8, > >BUILT_IN_SYNC_FETCH_AND_AND_16, > > >BUILT_IN_SYNC_FETCH_AND_XOR_N, > >BUILT_IN_SYNC_FETCH_AND_XOR_1, > >BUILT_IN_SYNC_FETCH_AND_XOR_2, > >BUILT_IN_SYNC_FETCH_AND_XOR_4, > >BUILT_IN_SYNC_FETCH_AND_XOR_8, > >BUILT_IN_SYNC_FETCH_AND_XOR_16, > > >BUILT_IN_SYNC_FETCH_AND_NAND_N, > >BUILT_IN_SYNC_FETCH_AND_NAND_1, > >BUILT_IN_SYNC_FETCH_AND_NAND_2, > >BUILT_IN_SYNC_FETCH_AND_NAND_4, > >BUILT_IN_SYNC_FETCH_AND_NAND_8, > >BUILT_IN_SYNC_FETCH_AND_NAND_16, > > >BUILT_IN_SYNC_ADD_AND_FETCH_N, > >BUILT_IN_SYNC_ADD_AND_FETCH_1, > >BUILT_IN_SYNC_ADD_AND_FETCH_2, > >BUILT_IN_SYNC_ADD_AND_FETCH_4, > >BUILT_IN_SYNC_ADD_AND_FETCH_8, > >BUILT_IN_SYNC_ADD_AND_FETCH_16, > > >BUILT_IN_SYNC_SUB_AND_FETCH_N, > >BUILT_IN_SYNC_SUB_AND_FETCH_1, > >BUILT_IN_SYNC_SUB_AND_FETCH_2, > >BUILT_IN_SYNC_SUB_AND_FETCH_4, > >BUILT_IN_SYNC_SUB_AND_FETCH_8, > >BUILT_IN_SYNC_SUB_AND_FETCH_16, > > >BUILT_IN_SYNC_OR_AND_FETCH_N, > >BUILT_IN_SYNC_OR_AND_FETCH_1, > >BUILT_IN_SYNC_OR_AND_FETCH_2, > >BUILT_IN_SYNC_OR_AND_FETCH_4, > >BUILT_IN_SYNC_OR_AND_FETCH_8, > >BUILT_IN_SYNC_OR_AND_FETCH_16, > > >BUILT_IN_SYNC_AND_AND_FETCH_N, > >BUILT_IN_SYNC_AND_AND_FETCH_1, > >BUILT_IN_SYNC_AND_AND_FETCH_2, > >BUILT_IN_SYNC_AND_AND_FETCH_4, > >BUILT_IN_SYNC_AND_AND_FETCH_8, > >BUILT_IN_SYNC_AND_AND_FETCH_16, > > >BUILT_IN_SYNC_XOR_AND_FETCH_N, > >BUILT_IN_SYNC_XOR_AND_FETCH_1, > >BUILT_IN_SYNC_XOR_AND_FETCH_2, > >BUILT_IN_SYNC_XOR_AND_FETCH_4, > >BUILT_IN_SYNC_XOR_AND_FETCH_8, > >BUILT_IN_SYNC_XOR_AND_FETCH_16, > > >BUILT_IN_SYNC_NAND_AND_FETCH_N, > >BUILT_IN_SYNC_NAND_AND_FETCH_1, > >BUILT_IN_SYNC_NAND_AND_FETCH_2, > >BUILT_IN_SYNC_NAND_AND_FETCH_4, > >BUILT_IN_SYNC_NAND_AND_FETCH_8, > >BUILT_IN_SYNC_NAND_AND_FETCH_16, > > >BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_N, > > >BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_1, > > >BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_2, > > >BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_4, > > >BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_8, > > >BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_16, > > > >BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_N, > > >BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_1, > > >BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_2, > > >BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_4, > > >BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_8, > > >BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_16, > > > >BUILT_IN_SYNC_LOCK_TEST_AND_SET_N, > > >BUILT_IN_SYNC_LOCK_TEST_AND_SET_1, > > >BUILT_IN_SYNC_LOCK_TEST_AND_SET_2, > > >BUILT_IN_SYNC_LOCK_TEST_AND_SET_4, > > >BUILT_IN_SYNC_LOCK_TEST_AND_SET_8, > > >BUILT_IN_SYNC_LOCK_TEST_AND_SET_16, > > > >BUILT_IN_SYNC_LOCK_RELEASE_N, > >BUILT_IN_SYNC_LOCK_RELEASE_1, > >BUILT_IN_SYNC_LOCK_RELEASE_2, > >BUILT_IN_SYNC_LOCK_RELEASE_4, > >BUILT_IN_SYNC_LOCK_RELEASE_8, > >BUILT_IN_SYNC_LOCK_RELEASE_16, > > >BUILT_IN_SYNC_SYNCHRONIZE, > > > > >BUILT_IN_ATOMIC_TEST_AND_SET, > > >BUILT_IN_ATOMIC_CLEAR, > > >BUILT_IN_ATOMIC_EXCHANGE, > > >BUILT_IN_ATOMIC_EXCHANGE_N, > > >BUILT_IN_ATOMIC_EXCHANGE_1, > > >BUILT_IN_ATOMIC_EXCHANGE_2, > > >BUILT_IN_ATOMIC_EXCHANGE_4, > > >BUILT_IN_ATOMIC_EXCHANGE_8, > > >BUILT_IN_ATOMIC_EXCHANGE_16, > > > >BUILT_IN_ATOMIC_LOAD, > > >BUILT_IN_ATOMIC_LOAD_N, > > >BUILT_IN_ATOMIC_LOAD_1, > > >BUILT_IN_ATOMIC_LOAD_2, > > >BUILT_IN_ATOMIC_LOAD_4, > > >BUILT_IN_ATOMIC_LOAD_8, > > >BUILT_IN_ATOMIC_LOAD_16, > > > >BUILT_IN_ATOMIC_COMPARE_EXCHANGE, > > > >BUILT_IN_ATOMIC_COMPARE_EXCHANGE_N, > > >BUILT_IN_ATOMIC_COMPARE_EXCHANGE_1, > > >BUILT_IN_ATOMIC_COMPARE_EXCHANGE_2, > > >BUILT_IN_ATOMIC_COMPARE_EXCHANGE_4, > > >BUILT_IN_ATOMIC_COMPARE_EXCHANGE_8, > > >BUILT_IN_ATOMIC_COMPARE_EXCHANGE_16, > > > >BUILT_IN_ATOMIC_STORE, > > >BUILT_IN_ATOMIC_STORE_N, > > >BUILT_IN_ATOMIC_STORE_1, > > >BUILT_IN_ATOMIC_STORE_2, > > >BUILT_IN_ATOMIC_STORE_4, > > >BUILT_IN_ATOMIC_STORE_8, > > >BUILT_IN_ATOMIC_STORE_16, > > > >BUILT_IN_ATOMIC_ADD_FETCH_N, > > >BUILT_IN_ATOMIC_ADD_FETCH_1, > > >BUILT_IN_ATOMIC_ADD_FETCH_2, > > >BUILT_IN_ATOMIC_ADD_FETCH_4, > > >BUILT_IN_ATOMIC_ADD_FETCH_8, > > >BUILT_IN_ATOMIC_ADD_FETCH_16, > > > >BUILT_IN_ATOMIC_SUB_FETCH_N, > > >BUILT_IN_ATOMIC_SUB_FETCH_1, > > >BUILT_IN_ATOMIC_SUB_FETCH_2, > > >BUILT_IN_ATOMIC_SUB_FETCH_4, > > >BUILT_IN_ATOMIC_SUB_FETCH_8, > > >BUILT_IN_ATOMIC_SUB_FETCH_16, > > > >BUILT_IN_ATOMIC_AND_FETCH_N, > > >BUILT_IN_ATOMIC_AND_FETCH_1, > > >BUILT_IN_ATOMIC_AND_FETCH_2, > > >BUILT_IN_ATOMIC_AND_FETCH_4, > > >BUILT_IN_ATOMIC_AND_FETCH_8, > > >BUILT_IN_ATOMIC_AND_FETCH_16, > > > >BUILT_IN_ATOMIC_NAND_FETCH_N, > > >BUILT_IN_ATOMIC_NAND_FETCH_1, > > >BUILT_IN_ATOMIC_NAND_FETCH_2, > > >BUILT_IN_ATOMIC_NAND_FETCH_4, > > >BUILT_IN_ATOMIC_NAND_FETCH_8, > > >BUILT_IN_ATOMIC_NAND_FETCH_16, > > > >BUILT_IN_ATOMIC_XOR_FETCH_N, > > >BUILT_IN_ATOMIC_XOR_FETCH_1, > > >BUILT_IN_ATOMIC_XOR_FETCH_2, > > >BUILT_IN_ATOMIC_XOR_FETCH_4, > > >BUILT_IN_ATOMIC_XOR_FETCH_8, > > >BUILT_IN_ATOMIC_XOR_FETCH_16, > > > >BUILT_IN_ATOMIC_OR_FETCH_N, > > >BUILT_IN_ATOMIC_OR_FETCH_1, > > >BUILT_IN_ATOMIC_OR_FETCH_2, > > >BUILT_IN_ATOMIC_OR_FETCH_4, > > >BUILT_IN_ATOMIC_OR_FETCH_8, > > >BUILT_IN_ATOMIC_OR_FETCH_16, > > > >BUILT_IN_ATOMIC_FETCH_ADD_N, > > >BUILT_IN_ATOMIC_FETCH_ADD_1, > > >BUILT_IN_ATOMIC_FETCH_ADD_2, > > >BUILT_IN_ATOMIC_FETCH_ADD_4, > > >BUILT_IN_ATOMIC_FETCH_ADD_8, > > >BUILT_IN_ATOMIC_FETCH_ADD_16, > > > >BUILT_IN_ATOMIC_FETCH_SUB_N, > > >BUILT_IN_ATOMIC_FETCH_SUB_1, > > >BUILT_IN_ATOMIC_FETCH_SUB_2, > > >BUILT_IN_ATOMIC_FETCH_SUB_4, > > >BUILT_IN_ATOMIC_FETCH_SUB_8, > > >BUILT_IN_ATOMIC_FETCH_SUB_16, > > > >BUILT_IN_ATOMIC_FETCH_AND_N, > > >BUILT_IN_ATOMIC_FETCH_AND_1, > > >BUILT_IN_ATOMIC_FETCH_AND_2, > > >BUILT_IN_ATOMIC_FETCH_AND_4, > > >BUILT_IN_ATOMIC_FETCH_AND_8, > > >BUILT_IN_ATOMIC_FETCH_AND_16, > > > >BUILT_IN_ATOMIC_FETCH_NAND_N, > > >BUILT_IN_ATOMIC_FETCH_NAND_1, > > >BUILT_IN_ATOMIC_FETCH_NAND_2, > > >BUILT_IN_ATOMIC_FETCH_NAND_4, > > >BUILT_IN_ATOMIC_FETCH_NAND_8, > > >BUILT_IN_ATOMIC_FETCH_NAND_16, > > > >BUILT_IN_ATOMIC_FETCH_XOR_N, > > >BUILT_IN_ATOMIC_FETCH_XOR_1, > > >BUILT_IN_ATOMIC_FETCH_XOR_2, > > >BUILT_IN_ATOMIC_FETCH_XOR_4, > > >BUILT_IN_ATOMIC_FETCH_XOR_8, > > >BUILT_IN_ATOMIC_FETCH_XOR_16, > > > > >BUILT_IN_ATOMIC_FETCH_OR_N, > > >BUILT_IN_ATOMIC_FETCH_OR_1, > > >BUILT_IN_ATOMIC_FETCH_OR_2, > > >BUILT_IN_ATOMIC_FETCH_OR_4, > > >BUILT_IN_ATOMIC_FETCH_OR_8, > > >BUILT_IN_ATOMIC_FETCH_OR_16, > > > >BUILT_IN_ATOMIC_ALWAYS_LOCK_FREE, > > > >BUILT_IN_ATOMIC_IS_LOCK_FREE, > > > > >BUILT_IN_ATOMIC_THREAD_FENCE, > > > >BUILT_IN_ATOMIC_SIGNAL_FENCE, ># 805 "../../gcc/builtins.def" 2 > > ># 1 "../../gcc/omp-builtins.def" 1 ># 27 "../../gcc/omp-builtins.def" >BUILT_IN_OMP_GET_THREAD_NUM, > >BUILT_IN_OMP_GET_NUM_THREADS, > > >BUILT_IN_GOMP_ATOMIC_START, > >BUILT_IN_GOMP_ATOMIC_END, > >BUILT_IN_GOMP_BARRIER, > >BUILT_IN_GOMP_TASKWAIT, > >BUILT_IN_GOMP_TASKYIELD, > >BUILT_IN_GOMP_CRITICAL_START, > >BUILT_IN_GOMP_CRITICAL_END, > >BUILT_IN_GOMP_CRITICAL_NAME_START, > > >BUILT_IN_GOMP_CRITICAL_NAME_END, > > > > > >BUILT_IN_GOMP_LOOP_STATIC_START, > > > >BUILT_IN_GOMP_LOOP_DYNAMIC_START, > > > >BUILT_IN_GOMP_LOOP_GUIDED_START, > > > >BUILT_IN_GOMP_LOOP_RUNTIME_START, > > > >BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START, > > > >BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START, > > > >BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START, > > > >BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START, > > > >BUILT_IN_GOMP_LOOP_STATIC_NEXT, > >BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT, > >BUILT_IN_GOMP_LOOP_GUIDED_NEXT, > >BUILT_IN_GOMP_LOOP_RUNTIME_NEXT, > >BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT, > > >BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT, > > >BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT, > > >BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT, > > >BUILT_IN_GOMP_LOOP_ULL_STATIC_START, > > > >BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START, > > > >BUILT_IN_GOMP_LOOP_ULL_GUIDED_START, > > > >BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START, > > > >BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START, > > > >BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START, > > > >BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START, > > > >BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START, > > > >BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT, > >BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT, > >BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT, > >BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT, > >BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT, > > >BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT, > > >BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT, > > >BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT, > > > > > >BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START, > > > >BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START, > > > >BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START, > > > >BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START, > > > >BUILT_IN_GOMP_LOOP_END, > >BUILT_IN_GOMP_LOOP_END_NOWAIT, > >BUILT_IN_GOMP_ORDERED_START, > >BUILT_IN_GOMP_ORDERED_END, > >BUILT_IN_GOMP_PARALLEL_START, > >BUILT_IN_GOMP_PARALLEL_END, > >BUILT_IN_GOMP_TASK, > > >BUILT_IN_GOMP_SECTIONS_START, > >BUILT_IN_GOMP_SECTIONS_NEXT, > >BUILT_IN_GOMP_PARALLEL_SECTIONS_START, > > >BUILT_IN_GOMP_SECTIONS_END, > >BUILT_IN_GOMP_SECTIONS_END_NOWAIT, > > >BUILT_IN_GOMP_SINGLE_START, > >BUILT_IN_GOMP_SINGLE_COPY_START, > >BUILT_IN_GOMP_SINGLE_COPY_END, ># 808 "../../gcc/builtins.def" 2 > > ># 1 "../../gcc/gtm-builtins.def" 1 >BUILT_IN_TM_START, > > >BUILT_IN_TM_COMMIT, > >BUILT_IN_TM_COMMIT_EH, > >BUILT_IN_TM_ABORT, > >BUILT_IN_TM_IRREVOCABLE, > > >BUILT_IN_TM_MEMCPY, > >BUILT_IN_TM_MEMMOVE, > >BUILT_IN_TM_MEMSET, > > >BUILT_IN_TM_GETTMCLONE_IRR, > >BUILT_IN_TM_GETTMCLONE_SAFE, > > > >BUILT_IN_TM_MALLOC, > >BUILT_IN_TM_CALLOC, > >BUILT_IN_TM_FREE, > > > >BUILT_IN_TM_LOG_1, > >BUILT_IN_TM_LOG_2, > >BUILT_IN_TM_LOG_4, > >BUILT_IN_TM_LOG_8, > >BUILT_IN_TM_LOG_FLOAT, > >BUILT_IN_TM_LOG_DOUBLE, > >BUILT_IN_TM_LOG_LDOUBLE, > >BUILT_IN_TM_LOG, > > > >BUILT_IN_TM_LOG_M64, >BUILT_IN_TM_LOG_M128, >BUILT_IN_TM_LOG_M256, ># 63 "../../gcc/gtm-builtins.def" >BUILT_IN_TM_STORE_1, > >BUILT_IN_TM_STORE_WAR_1, > >BUILT_IN_TM_STORE_WAW_1, > > >BUILT_IN_TM_STORE_2, > >BUILT_IN_TM_STORE_WAR_2, > >BUILT_IN_TM_STORE_WAW_2, > > >BUILT_IN_TM_STORE_4, > >BUILT_IN_TM_STORE_WAR_4, > >BUILT_IN_TM_STORE_WAW_4, > > >BUILT_IN_TM_STORE_8, > >BUILT_IN_TM_STORE_WAR_8, > >BUILT_IN_TM_STORE_WAW_8, > > >BUILT_IN_TM_STORE_FLOAT, > >BUILT_IN_TM_STORE_WAR_FLOAT, > >BUILT_IN_TM_STORE_WAW_FLOAT, > > >BUILT_IN_TM_STORE_DOUBLE, > >BUILT_IN_TM_STORE_WAR_DOUBLE, > >BUILT_IN_TM_STORE_WAW_DOUBLE, > > > >BUILT_IN_TM_STORE_M64, >BUILT_IN_TM_STORE_WAR_M64, >BUILT_IN_TM_STORE_WAW_M64, >BUILT_IN_TM_STORE_M128, >BUILT_IN_TM_STORE_WAR_M128, >BUILT_IN_TM_STORE_WAW_M128, >BUILT_IN_TM_STORE_M256, >BUILT_IN_TM_STORE_WAR_M256, >BUILT_IN_TM_STORE_WAW_M256, > >BUILT_IN_TM_STORE_LDOUBLE, > >BUILT_IN_TM_STORE_WAR_LDOUBLE, > >BUILT_IN_TM_STORE_WAW_LDOUBLE, ># 129 "../../gcc/gtm-builtins.def" >BUILT_IN_TM_LOAD_1, > >BUILT_IN_TM_LOAD_RAR_1, > >BUILT_IN_TM_LOAD_RAW_1, > >BUILT_IN_TM_LOAD_RFW_1, > > >BUILT_IN_TM_LOAD_2, > >BUILT_IN_TM_LOAD_RAR_2, > >BUILT_IN_TM_LOAD_RAW_2, > >BUILT_IN_TM_LOAD_RFW_2, > > >BUILT_IN_TM_LOAD_4, > >BUILT_IN_TM_LOAD_RAR_4, > >BUILT_IN_TM_LOAD_RAW_4, > >BUILT_IN_TM_LOAD_RFW_4, > > >BUILT_IN_TM_LOAD_8, > >BUILT_IN_TM_LOAD_RAR_8, > >BUILT_IN_TM_LOAD_RAW_8, > >BUILT_IN_TM_LOAD_RFW_8, > > >BUILT_IN_TM_LOAD_FLOAT, > >BUILT_IN_TM_LOAD_RAR_FLOAT, > >BUILT_IN_TM_LOAD_RAW_FLOAT, > >BUILT_IN_TM_LOAD_RFW_FLOAT, > > >BUILT_IN_TM_LOAD_DOUBLE, > >BUILT_IN_TM_LOAD_RAR_DOUBLE, > >BUILT_IN_TM_LOAD_RAW_DOUBLE, > >BUILT_IN_TM_LOAD_RFW_DOUBLE, > > > >BUILT_IN_TM_LOAD_M64, >BUILT_IN_TM_LOAD_RAR_M64, >BUILT_IN_TM_LOAD_RAW_M64, >BUILT_IN_TM_LOAD_RFW_M64, >BUILT_IN_TM_LOAD_M128, >BUILT_IN_TM_LOAD_RAR_M128, >BUILT_IN_TM_LOAD_RAW_M128, >BUILT_IN_TM_LOAD_RFW_M128, >BUILT_IN_TM_LOAD_M256, >BUILT_IN_TM_LOAD_RAR_M256, >BUILT_IN_TM_LOAD_RAW_M256, >BUILT_IN_TM_LOAD_RFW_M256, > >BUILT_IN_TM_LOAD_LDOUBLE, > >BUILT_IN_TM_LOAD_RAR_LDOUBLE, > >BUILT_IN_TM_LOAD_RAW_LDOUBLE, > >BUILT_IN_TM_LOAD_RFW_LDOUBLE, ># 810 "../../gcc/builtins.def" 2 ># 294 "../../gcc/tree.h" 2 > > > > BUILT_IN_COMPLEX_MUL_MIN, > BUILT_IN_COMPLEX_MUL_MAX > = BUILT_IN_COMPLEX_MUL_MIN > + MAX_MODE_COMPLEX_FLOAT > - MIN_MODE_COMPLEX_FLOAT, > > BUILT_IN_COMPLEX_DIV_MIN, > BUILT_IN_COMPLEX_DIV_MAX > = BUILT_IN_COMPLEX_DIV_MIN > + MAX_MODE_COMPLEX_FLOAT > - MIN_MODE_COMPLEX_FLOAT, > > > END_BUILTINS >}; > > > >extern const char * built_in_names[(int) END_BUILTINS]; ># 342 "../../gcc/tree.h" >extern unsigned const char omp_clause_num_ops[]; >extern const char * const omp_clause_code_name[]; > > > >enum omp_clause_code >{ > > > OMP_CLAUSE_ERROR = 0, > > > OMP_CLAUSE_PRIVATE, > > > OMP_CLAUSE_SHARED, > > > OMP_CLAUSE_FIRSTPRIVATE, > > > OMP_CLAUSE_LASTPRIVATE, ># 372 "../../gcc/tree.h" > OMP_CLAUSE_REDUCTION, > > > OMP_CLAUSE_COPYIN, > > > OMP_CLAUSE_COPYPRIVATE, > > > OMP_CLAUSE_IF, > > > OMP_CLAUSE_NUM_THREADS, > > > OMP_CLAUSE_SCHEDULE, > > > OMP_CLAUSE_NOWAIT, > > > OMP_CLAUSE_ORDERED, > > > OMP_CLAUSE_DEFAULT, > > > OMP_CLAUSE_COLLAPSE, > > > OMP_CLAUSE_UNTIED, > > > OMP_CLAUSE_FINAL, > > > OMP_CLAUSE_MERGEABLE >}; ># 433 "../../gcc/tree.h" >struct tree_base { > __extension__ enum tree_code code : 16; > > unsigned side_effects_flag : 1; > unsigned constant_flag : 1; > unsigned addressable_flag : 1; > unsigned volatile_flag : 1; > unsigned readonly_flag : 1; > unsigned unsigned_flag : 1; > unsigned asm_written_flag: 1; > unsigned nowarning_flag : 1; > > unsigned used_flag : 1; > unsigned nothrow_flag : 1; > unsigned static_flag : 1; > unsigned public_flag : 1; > unsigned private_flag : 1; > unsigned protected_flag : 1; > unsigned deprecated_flag : 1; > unsigned saturating_flag : 1; > > unsigned default_def_flag : 1; > unsigned lang_flag_0 : 1; > unsigned lang_flag_1 : 1; > unsigned lang_flag_2 : 1; > unsigned lang_flag_3 : 1; > unsigned lang_flag_4 : 1; > unsigned lang_flag_5 : 1; > unsigned lang_flag_6 : 1; > > unsigned visited : 1; > unsigned packed_flag : 1; > unsigned user_align : 1; > unsigned nameless_flag : 1; > > unsigned spare : 12; > > > > > unsigned address_space : 8; >}; > >struct tree_typed { > struct tree_base base; > tree type; >}; > >struct tree_common { > struct tree_typed typed; > tree chain; >}; ># 712 "../../gcc/tree.h" >enum tree_node_structure_enum { ># 1 "../../gcc/treestruct.def" 1 ># 33 "../../gcc/treestruct.def" >TS_BASE, >TS_TYPED, >TS_COMMON, >TS_INT_CST, >TS_REAL_CST, >TS_FIXED_CST, >TS_VECTOR, >TS_STRING, >TS_COMPLEX, >TS_IDENTIFIER, >TS_DECL_MINIMAL, >TS_DECL_COMMON, >TS_DECL_WRTL, >TS_DECL_NON_COMMON, >TS_DECL_WITH_VIS, >TS_FIELD_DECL, >TS_VAR_DECL, >TS_PARM_DECL, >TS_LABEL_DECL, >TS_RESULT_DECL, >TS_CONST_DECL, >TS_TYPE_DECL, >TS_FUNCTION_DECL, >TS_TRANSLATION_UNIT_DECL, >TS_TYPE_COMMON, >TS_TYPE_WITH_LANG_SPECIFIC, >TS_TYPE_NON_COMMON, >TS_LIST, >TS_VEC, >TS_EXP, >TS_SSA_NAME, >TS_BLOCK, >TS_BINFO, >TS_STATEMENT_LIST, >TS_CONSTRUCTOR, >TS_OMP_CLAUSE, >TS_OPTIMIZATION, >TS_TARGET_OPTION, ># 714 "../../gcc/tree.h" 2 > LAST_TS_ENUM >}; ># 1012 "../../gcc/tree.h" ># 1 "./tree-check.h" 1 ># 1013 "../../gcc/tree.h" 2 ># 1484 "../../gcc/tree.h" >struct tree_int_cst { > struct tree_typed typed; > double_int int_cst; >}; > > > > >struct real_value; > > > > >struct tree_real_cst { > struct tree_typed typed; > struct real_value * real_cst_ptr; >}; > > >struct fixed_value; > > > > > >struct tree_fixed_cst { > struct tree_typed typed; > struct fixed_value * fixed_cst_ptr; >}; > > > > > > > >struct tree_string { > struct tree_typed typed; > int length; > char str[1]; >}; > > > > > >struct tree_complex { > struct tree_typed typed; > tree real; > tree imag; >}; > > > > >struct tree_vector { > struct tree_typed typed; > tree elements; >}; > ># 1 "../../gcc/../libcpp/include/symtab.h" 1 ># 22 "../../gcc/../libcpp/include/symtab.h" ># 1 "../../gcc/../include/obstack.h" 1 ># 157 "../../gcc/../include/obstack.h" >struct _obstack_chunk >{ > char *limit; > struct _obstack_chunk *prev; > char contents[4]; >}; > >struct obstack >{ > long chunk_size; > struct _obstack_chunk *chunk; > char *object_base; > char *next_free; > char *chunk_limit; > int temp; > int alignment_mask; > > > > struct _obstack_chunk *(*chunkfun) (void *, long); > void (*freefun) (void *, struct _obstack_chunk *); > void *extra_arg; > unsigned use_extra_arg:1; > unsigned maybe_empty_object:1; > > > > unsigned alloc_failed:1; > > >}; > > > >extern void _obstack_newchunk (struct obstack *, int); >extern void _obstack_free (struct obstack *, void *); >extern int _obstack_begin (struct obstack *, int, int, > void *(*) (long), void (*) (void *)); >extern int _obstack_begin_1 (struct obstack *, int, int, > void *(*) (void *, long), > void (*) (void *, void *), void *); >extern int _obstack_memory_used (struct obstack *); > > > > >void obstack_init (struct obstack *obstack); > >void * obstack_alloc (struct obstack *obstack, int size); > >void * obstack_copy (struct obstack *obstack, void *address, int size); >void * obstack_copy0 (struct obstack *obstack, void *address, int size); > >void obstack_free (struct obstack *obstack, void *block); > >void obstack_blank (struct obstack *obstack, int size); > >void obstack_grow (struct obstack *obstack, void *data, int size); >void obstack_grow0 (struct obstack *obstack, void *data, int size); > >void obstack_1grow (struct obstack *obstack, int data_char); >void obstack_ptr_grow (struct obstack *obstack, void *data); >void obstack_int_grow (struct obstack *obstack, int data); > >void * obstack_finish (struct obstack *obstack); > >int obstack_object_size (struct obstack *obstack); > >int obstack_room (struct obstack *obstack); >void obstack_make_room (struct obstack *obstack, int size); >void obstack_1grow_fast (struct obstack *obstack, int data_char); >void obstack_ptr_grow_fast (struct obstack *obstack, void *data); >void obstack_int_grow_fast (struct obstack *obstack, int data); >void obstack_blank_fast (struct obstack *obstack, int size); > >void * obstack_base (struct obstack *obstack); >void * obstack_next_free (struct obstack *obstack); >int obstack_alignment_mask (struct obstack *obstack); >int obstack_chunk_size (struct obstack *obstack); >int obstack_memory_used (struct obstack *obstack); > > > > >extern void (*obstack_alloc_failed_handler) (void); > > >extern int obstack_exit_failure; ># 23 "../../gcc/../libcpp/include/symtab.h" 2 > > > > > > > >typedef struct ht_identifier ht_identifier; >typedef struct ht_identifier *ht_identifier_ptr; >struct ht_identifier { > const unsigned char *str; > unsigned int len; > unsigned int hash_value; >}; > > > > >typedef struct ht hash_table; >typedef struct ht_identifier *hashnode; > >enum ht_lookup_option {HT_NO_INSERT = 0, HT_ALLOC}; > > >struct ht >{ > > struct obstack stack; > > hashnode *entries; > > hashnode (*alloc_node) (hash_table *); > > > void * (*alloc_subobject) (size_t); > > unsigned int nslots; > unsigned int nelements; > > > struct cpp_reader *pfile; > > > unsigned int searches; > unsigned int collisions; > > > unsigned char entries_owned; >}; > > >extern hash_table *ht_create (unsigned int order); > > >extern void ht_destroy (hash_table *); > >extern hashnode ht_lookup (hash_table *, const unsigned char *, > size_t, enum ht_lookup_option); >extern hashnode ht_lookup_with_hash (hash_table *, const unsigned char *, > size_t, unsigned int, > enum ht_lookup_option); > > > > > > >typedef int (*ht_cb) (struct cpp_reader *, hashnode, const void *); >extern void ht_forall (hash_table *, ht_cb, const void *); > > > >extern void ht_purge (hash_table *, ht_cb, const void *); > > >extern void ht_load (hash_table *ht, hashnode *entries, > unsigned int nslots, unsigned int nelements, unsigned char own); > > >extern void ht_dump_statistics (hash_table *); ># 1545 "../../gcc/tree.h" 2 ># 1562 "../../gcc/tree.h" >struct tree_identifier { > struct tree_common common; > struct ht_identifier id; >}; > > > > > >struct tree_list { > struct tree_common common; > tree purpose; > tree value; >}; ># 1584 "../../gcc/tree.h" >struct tree_vec { > struct tree_common common; > int length; > tree a[1]; >}; ># 1643 "../../gcc/tree.h" >typedef struct constructor_elt_d { > tree index; > tree value; >} constructor_elt; > >typedef struct VEC_constructor_elt_base { struct vec_prefix prefix; constructor_elt vec[1]; } VEC_constructor_elt_base; typedef struct VEC_constructor_elt_none { VEC_constructor_elt_base base; } VEC_constructor_elt_none; static __inline__ unsigned VEC_constructor_elt_base_length (const VEC_constructor_elt_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ constructor_elt *VEC_constructor_elt_base_last (VEC_constructor_elt_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return &vec_->vec[vec_->prefix.num - 1]; } static __inline__ constructor_elt *VEC_constructor_elt_base_index (VEC_constructor_elt_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return &vec_->vec[ix_]; } static __inline__ int VEC_constructor_elt_base_iterate (VEC_constructor_elt_base *vec_, unsigned ix_, constructor_elt **ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = &vec_->vec[ix_]; return 1; } else { *ptr = 0; return 0; } } static __inline__ size_t VEC_constructor_elt_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_constructor_elt_base, vec) + alloc_ * sizeof(constructor_elt); } static __inline__ void VEC_constructor_elt_base_embedded_init (VEC_constructor_elt_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_constructor_elt_base_space (VEC_constructor_elt_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_constructor_elt_base_splice (VEC_constructor_elt_base *dst_, VEC_constructor_elt_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (constructor_elt)); dst_->prefix.num += len_; } } static __inline__ constructor_elt *VEC_constructor_elt_base_quick_push (VEC_constructor_elt_base *vec_, const constructor_elt *obj_ ) { constructor_elt *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; if (obj_) *slot_ = *obj_; return slot_; } static __inline__ void VEC_constructor_elt_base_pop (VEC_constructor_elt_base *vec_ ) { (void)(vec_->prefix.num); --vec_->prefix.num; } static __inline__ void VEC_constructor_elt_base_truncate (VEC_constructor_elt_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ constructor_elt *VEC_constructor_elt_base_replace (VEC_constructor_elt_base *vec_, unsigned ix_, const constructor_elt *obj_ ) { constructor_elt *slot_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; if (obj_) *slot_ = *obj_; return slot_; } static __inline__ constructor_elt *VEC_constructor_elt_base_quick_insert (VEC_constructor_elt_base *vec_, unsigned ix_, const constructor_elt *obj_ ) { constructor_elt *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (constructor_elt)); if (obj_) *slot_ = *obj_; return slot_; } static __inline__ void VEC_constructor_elt_base_ordered_remove (VEC_constructor_elt_base *vec_, unsigned ix_ ) { constructor_elt *slot_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (constructor_elt)); } static __inline__ void VEC_constructor_elt_base_unordered_remove (VEC_constructor_elt_base *vec_, unsigned ix_ ) { (void)(ix_ < vec_->prefix.num); vec_->vec[ix_] = vec_->vec[--vec_->prefix.num]; } static __inline__ void VEC_constructor_elt_base_block_remove (VEC_constructor_elt_base *vec_, unsigned ix_, unsigned len_ ) { constructor_elt *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (constructor_elt)); } static __inline__ constructor_elt *VEC_constructor_elt_base_address (VEC_constructor_elt_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_constructor_elt_base_lower_bound (VEC_constructor_elt_base *vec_, const constructor_elt *obj_, unsigned char (*lessthan_)(const constructor_elt *, const constructor_elt *) ) { unsigned int len_ = VEC_constructor_elt_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { constructor_elt *middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_constructor_elt_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_constructor_elt_gc { VEC_constructor_elt_base base; } VEC_constructor_elt_gc; static __inline__ VEC_constructor_elt_gc *VEC_constructor_elt_gc_alloc (int alloc_ ) { return (VEC_constructor_elt_gc *) vec_gc_o_reserve_exact (((void *)0), alloc_, __builtin_offsetof (VEC_constructor_elt_gc, base.vec), sizeof (constructor_elt) ); } static __inline__ VEC_constructor_elt_gc *VEC_constructor_elt_gc_copy (VEC_constructor_elt_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_constructor_elt_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_constructor_elt_gc *)(vec_gc_o_reserve_exact (((void *)0), len_, __builtin_offsetof (VEC_constructor_elt_gc, base.vec), sizeof (constructor_elt) )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (constructor_elt) * len_); } return new_vec_; } static __inline__ void VEC_constructor_elt_gc_free (VEC_constructor_elt_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ int VEC_constructor_elt_gc_reserve (VEC_constructor_elt_gc **vec_, int alloc_ ) { int extend = !VEC_constructor_elt_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_constructor_elt_gc *) vec_gc_o_reserve (*vec_, alloc_, __builtin_offsetof (VEC_constructor_elt_gc, base.vec), sizeof (constructor_elt) ); return extend; } static __inline__ int VEC_constructor_elt_gc_reserve_exact (VEC_constructor_elt_gc **vec_, int alloc_ ) { int extend = !VEC_constructor_elt_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_constructor_elt_gc *) vec_gc_o_reserve_exact (*vec_, alloc_, __builtin_offsetof (VEC_constructor_elt_gc, base.vec), sizeof (constructor_elt) ); return extend; } static __inline__ void VEC_constructor_elt_gc_safe_grow (VEC_constructor_elt_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_constructor_elt_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_constructor_elt_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_constructor_elt_gc_safe_grow_cleared (VEC_constructor_elt_gc **vec_, int size_ ) { int oldsize = VEC_constructor_elt_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_constructor_elt_gc_safe_grow (vec_, size_ ); memset (&(VEC_constructor_elt_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (constructor_elt) * (size_ - oldsize)); } static __inline__ void VEC_constructor_elt_gc_safe_splice (VEC_constructor_elt_gc **dst_, VEC_constructor_elt_base *src_ ) { if (src_) { VEC_constructor_elt_gc_reserve_exact (dst_, src_->prefix.num ); VEC_constructor_elt_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ constructor_elt *VEC_constructor_elt_gc_safe_push (VEC_constructor_elt_gc **vec_, const constructor_elt *obj_ ) { VEC_constructor_elt_gc_reserve (vec_, 1 ); return VEC_constructor_elt_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ constructor_elt *VEC_constructor_elt_gc_safe_insert (VEC_constructor_elt_gc **vec_, unsigned ix_, const constructor_elt *obj_ ) { VEC_constructor_elt_gc_reserve (vec_, 1 ); return VEC_constructor_elt_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; > >struct tree_constructor { > struct tree_typed typed; > VEC_constructor_elt_gc *elts; >}; ># 1696 "../../gcc/tree.h" >extern void protected_set_expr_location (tree, location_t); ># 1928 "../../gcc/tree.h" >enum omp_clause_schedule_kind >{ > OMP_CLAUSE_SCHEDULE_STATIC, > OMP_CLAUSE_SCHEDULE_DYNAMIC, > OMP_CLAUSE_SCHEDULE_GUIDED, > OMP_CLAUSE_SCHEDULE_AUTO, > OMP_CLAUSE_SCHEDULE_RUNTIME >}; > > > > >enum omp_clause_default_kind >{ > OMP_CLAUSE_DEFAULT_UNSPECIFIED, > OMP_CLAUSE_DEFAULT_SHARED, > OMP_CLAUSE_DEFAULT_NONE, > OMP_CLAUSE_DEFAULT_PRIVATE, > OMP_CLAUSE_DEFAULT_FIRSTPRIVATE >}; > > > > >struct tree_exp { > struct tree_typed typed; > location_t locus; > tree block; > tree > > operands[1]; >}; ># 1999 "../../gcc/tree.h" >struct ptr_info_def; > > > >typedef struct ssa_use_operand_d { > struct ssa_use_operand_d* prev; > struct ssa_use_operand_d* next; > > > > > > union { gimple stmt; tree ssa_name; } loc; > tree * use; >} ssa_use_operand_t; > > > > >struct tree_ssa_name { > struct tree_typed typed; > > > tree var; > > > gimple def_stmt; > > > unsigned int version; > > > struct ptr_info_def *ptr_info; > > > struct ssa_use_operand_d imm_uses; >}; > >struct phi_arg_d { > > > struct ssa_use_operand_d imm_use; > tree def; > location_t locus; >}; ># 2058 "../../gcc/tree.h" >struct tree_omp_clause { > struct tree_common common; > location_t locus; > enum omp_clause_code code; > union omp_clause_subcode { > enum omp_clause_default_kind default_kind; > enum omp_clause_schedule_kind schedule_kind; > enum tree_code reduction_code; > } subcode; > > > > gimple_seq gimple_reduction_init; > gimple_seq gimple_reduction_merge; > > tree ops[1]; >}; ># 2130 "../../gcc/tree.h" >struct tree_block { > struct tree_base base; > tree chain; > > unsigned abstract_flag : 1; > unsigned block_num : 31; > > location_t locus; > > tree vars; > VEC_tree_gc *nonlocalized_vars; > > tree subblocks; > tree supercontext; > tree abstract_origin; > tree fragment_origin; > tree fragment_chain; >}; ># 2172 "../../gcc/tree.h" >extern enum machine_mode vector_type_mode (const_tree); ># 2282 "../../gcc/tree.h" >enum cv_qualifier > { > TYPE_UNQUALIFIED = 0x0, > TYPE_QUAL_CONST = 0x1, > TYPE_QUAL_VOLATILE = 0x2, > TYPE_QUAL_RESTRICT = 0x4 > }; ># 2405 "../../gcc/tree.h" >struct die_struct; > >struct tree_type_common { > struct tree_common common; > tree size; > tree size_unit; > tree attributes; > unsigned int uid; > > unsigned int precision : 10; > unsigned no_force_blk_flag : 1; > unsigned needs_constructing_flag : 1; > unsigned transparent_aggr_flag : 1; > unsigned restrict_flag : 1; > unsigned contains_placeholder_bits : 2; > > __extension__ enum machine_mode mode : 8; > > unsigned string_flag : 1; > unsigned lang_flag_0 : 1; > unsigned lang_flag_1 : 1; > unsigned lang_flag_2 : 1; > unsigned lang_flag_3 : 1; > unsigned lang_flag_4 : 1; > unsigned lang_flag_5 : 1; > unsigned lang_flag_6 : 1; > > unsigned int align; > alias_set_type alias_set; > tree pointer_to; > tree reference_to; > union tree_type_symtab { > int address; > const char * pointer; > struct die_struct * die; > } symtab; > tree name; > tree next_variant; > tree main_variant; > tree context; > tree canonical; >}; > > > > >struct tree_type_with_lang_specific { > struct tree_type_common common; > > struct lang_type *lang_specific; >}; ># 2499 "../../gcc/tree.h" >struct tree_type_non_common { > struct tree_type_with_lang_specific with_lang_specific; > tree values; > tree minval; > tree maxval; > tree binfo; >}; ># 2610 "../../gcc/tree.h" >struct tree_binfo { > struct tree_common common; > > tree offset; > tree vtable; > tree virtuals; > tree vptr_field; > VEC_tree_gc *base_accesses; > tree inheritance; > > tree vtt_subvtt; > tree vtt_vptr; > > VEC_tree_none base_binfos; >}; ># 2654 "../../gcc/tree.h" >struct function; ># 2709 "../../gcc/tree.h" >struct tree_decl_minimal { > struct tree_common common; > location_t locus; > unsigned int uid; > tree name; > tree context; >}; ># 2877 "../../gcc/tree.h" >struct tree_decl_common { > struct tree_decl_minimal common; > tree size; > > __extension__ enum machine_mode mode : 8; > > unsigned nonlocal_flag : 1; > unsigned virtual_flag : 1; > unsigned ignored_flag : 1; > unsigned abstract_flag : 1; > unsigned artificial_flag : 1; > unsigned preserve_flag: 1; > unsigned debug_expr_is_from : 1; > > unsigned lang_flag_0 : 1; > unsigned lang_flag_1 : 1; > unsigned lang_flag_2 : 1; > unsigned lang_flag_3 : 1; > unsigned lang_flag_4 : 1; > unsigned lang_flag_5 : 1; > unsigned lang_flag_6 : 1; > unsigned lang_flag_7 : 1; > unsigned lang_flag_8 : 1; > > > > unsigned decl_flag_0 : 1; > > > > unsigned decl_flag_1 : 1; > > > > unsigned decl_flag_2 : 1; > > > unsigned gimple_reg_flag : 1; > > unsigned decl_by_reference_flag : 1; > > unsigned decl_restricted_flag : 1; > > > > unsigned decl_read_flag : 1; > > > > unsigned decl_nonshareable_flag : 1; > > > unsigned int off_align : 8; > > > > > unsigned int align; > > > unsigned int pt_uid; > > tree size_unit; > tree initial; > tree attributes; > tree abstract_origin; > > > struct lang_decl *lang_specific; >}; > >extern tree decl_value_expr_lookup (tree); >extern void decl_value_expr_insert (tree, tree); ># 3004 "../../gcc/tree.h" >struct tree_decl_with_rtl { > struct tree_decl_common common; > rtx rtl; >}; ># 3077 "../../gcc/tree.h" >struct tree_field_decl { > struct tree_decl_common common; > > tree offset; > tree bit_field_type; > tree qualifier; > tree bit_offset; > tree fcontext; >}; ># 3103 "../../gcc/tree.h" >struct tree_label_decl { > struct tree_decl_with_rtl common; > int label_decl_uid; > int eh_landing_pad_nr; >}; > >struct var_ann_d; >struct tree_result_decl { > struct tree_decl_with_rtl common; > struct var_ann_d *ann; >}; > >struct tree_const_decl { > struct tree_decl_common common; >}; ># 3128 "../../gcc/tree.h" >struct tree_parm_decl { > struct tree_decl_with_rtl common; > rtx incoming_rtl; > struct var_ann_d *ann; >}; ># 3267 "../../gcc/tree.h" >struct tree_decl_with_vis { > struct tree_decl_with_rtl common; > tree assembler_name; > tree section_name; > tree comdat_group; > > > unsigned defer_output : 1; > unsigned hard_register : 1; > unsigned thread_local : 1; > unsigned common_flag : 1; > unsigned in_text_section : 1; > unsigned in_constant_pool : 1; > unsigned dllimport_flag : 1; > > unsigned weak_flag : 1; > > unsigned seen_in_bind_expr : 1; > unsigned comdat_flag : 1; > __extension__ enum symbol_visibility visibility : 2; > unsigned visibility_specified : 1; > > __extension__ enum tls_model tls_model : 3; > > > unsigned init_priority_p : 1; > > unsigned shadowed_for_var_p : 1; > > unsigned implicit_section_name_p : 1; > >}; > >extern tree decl_debug_expr_lookup (tree); >extern void decl_debug_expr_insert (tree, tree); ># 3312 "../../gcc/tree.h" >typedef unsigned short priority_type; > >extern priority_type decl_init_priority_lookup (tree); >extern priority_type decl_fini_priority_lookup (tree); >extern void decl_init_priority_insert (tree, priority_type); >extern void decl_fini_priority_insert (tree, priority_type); ># 3351 "../../gcc/tree.h" >struct tree_var_decl { > struct tree_decl_with_vis common; > struct var_ann_d *ann; >}; ># 3373 "../../gcc/tree.h" >struct > tree_decl_non_common { > struct tree_decl_with_vis common; > > tree saved_tree; > > tree arguments; > > tree result; > > tree vindex; >}; ># 3503 "../../gcc/tree.h" >extern VEC_tree_gc **decl_debug_args_lookup (tree); >extern VEC_tree_gc **decl_debug_args_insert (tree); ># 3545 "../../gcc/tree.h" >struct tree_function_decl { > struct tree_decl_non_common common; > > struct function *f; > > > tree personality; > > > tree function_specific_target; > tree function_specific_optimization; > > > > > > __extension__ enum built_in_function function_code : 11; > __extension__ enum built_in_class built_in_class : 2; > > unsigned static_ctor_flag : 1; > unsigned static_dtor_flag : 1; > unsigned uninlinable : 1; > > unsigned possibly_inlined : 1; > unsigned novops_flag : 1; > unsigned returns_twice_flag : 1; > unsigned malloc_flag : 1; > unsigned operator_new_flag : 1; > unsigned declared_inline_flag : 1; > unsigned regdecl_flag : 1; > unsigned no_inline_warning_flag : 1; > > unsigned no_instrument_function_entry_exit : 1; > unsigned no_limit_stack : 1; > unsigned disregard_inline_limits : 1; > unsigned pure_flag : 1; > unsigned looping_const_or_pure_flag : 1; > unsigned has_debug_args_flag : 1; > unsigned tm_clone_flag : 1; > > >}; > > > > > > > >struct tree_translation_unit_decl { > struct tree_decl_common common; > > const char * language; > > >}; > > >extern VEC_tree_gc *all_translation_units; ># 3620 "../../gcc/tree.h" >struct tree_type_decl { > struct tree_decl_non_common common; > >}; ># 3636 "../../gcc/tree.h" >struct tree_statement_list_node > { > struct tree_statement_list_node *prev; > struct tree_statement_list_node *next; > tree stmt; >}; > >struct tree_statement_list > { > struct tree_typed typed; > struct tree_statement_list_node *head; > struct tree_statement_list_node *tail; >}; > > > > >struct tree_optimization_option { > struct tree_common common; > > > struct cl_optimization opts; >}; > > > > > >extern tree build_optimization_node (void); > > > >struct tree_target_option { > struct tree_common common; > > > struct cl_target_option opts; >}; > > > > > >extern tree build_target_option_node (void); > > > > > > >union > tree_node { > struct tree_base base; > struct tree_typed typed; > struct tree_common common; > struct tree_int_cst int_cst; > struct tree_real_cst real_cst; > struct tree_fixed_cst fixed_cst; > struct tree_vector vector; > struct tree_string string; > struct tree_complex complex; > struct tree_identifier identifier; > struct tree_decl_minimal decl_minimal; > struct tree_decl_common decl_common; > struct tree_decl_with_rtl decl_with_rtl; > struct tree_decl_non_common decl_non_common; > struct tree_parm_decl parm_decl; > struct tree_decl_with_vis decl_with_vis; > struct tree_var_decl var_decl; > struct tree_field_decl field_decl; > struct tree_label_decl label_decl; > struct tree_result_decl result_decl; > struct tree_const_decl const_decl; > struct tree_type_decl type_decl; > struct tree_function_decl function_decl; > struct tree_translation_unit_decl > translation_unit_decl; > struct tree_type_common type_common; > struct tree_type_with_lang_specific > type_with_lang_specific; > struct tree_type_non_common > type_non_common; > struct tree_list list; > struct tree_vec vec; > struct tree_exp exp; > struct tree_ssa_name ssa_name; > struct tree_block block; > struct tree_binfo binfo; > struct tree_statement_list stmt_list; > struct tree_constructor constructor; > struct tree_omp_clause omp_clause; > struct tree_optimization_option optimization; > struct tree_target_option target_option; >}; > > > >enum tree_index >{ > TI_ERROR_MARK, > TI_INTQI_TYPE, > TI_INTHI_TYPE, > TI_INTSI_TYPE, > TI_INTDI_TYPE, > TI_INTTI_TYPE, > > TI_UINTQI_TYPE, > TI_UINTHI_TYPE, > TI_UINTSI_TYPE, > TI_UINTDI_TYPE, > TI_UINTTI_TYPE, > > TI_UINT32_TYPE, > TI_UINT64_TYPE, > > TI_INTEGER_ZERO, > TI_INTEGER_ONE, > TI_INTEGER_THREE, > TI_INTEGER_MINUS_ONE, > TI_NULL_POINTER, > > TI_SIZE_ZERO, > TI_SIZE_ONE, > > TI_BITSIZE_ZERO, > TI_BITSIZE_ONE, > TI_BITSIZE_UNIT, > > TI_PUBLIC, > TI_PROTECTED, > TI_PRIVATE, > > TI_BOOLEAN_FALSE, > TI_BOOLEAN_TRUE, > > TI_COMPLEX_INTEGER_TYPE, > TI_COMPLEX_FLOAT_TYPE, > TI_COMPLEX_DOUBLE_TYPE, > TI_COMPLEX_LONG_DOUBLE_TYPE, > > TI_FLOAT_TYPE, > TI_DOUBLE_TYPE, > TI_LONG_DOUBLE_TYPE, > > TI_FLOAT_PTR_TYPE, > TI_DOUBLE_PTR_TYPE, > TI_LONG_DOUBLE_PTR_TYPE, > TI_INTEGER_PTR_TYPE, > > TI_VOID_TYPE, > TI_PTR_TYPE, > TI_CONST_PTR_TYPE, > TI_SIZE_TYPE, > TI_PID_TYPE, > TI_PTRDIFF_TYPE, > TI_VA_LIST_TYPE, > TI_VA_LIST_GPR_COUNTER_FIELD, > TI_VA_LIST_FPR_COUNTER_FIELD, > TI_BOOLEAN_TYPE, > TI_FILEPTR_TYPE, > > TI_DFLOAT32_TYPE, > TI_DFLOAT64_TYPE, > TI_DFLOAT128_TYPE, > TI_DFLOAT32_PTR_TYPE, > TI_DFLOAT64_PTR_TYPE, > TI_DFLOAT128_PTR_TYPE, > > TI_VOID_LIST_NODE, > > TI_MAIN_IDENTIFIER, > > TI_SAT_SFRACT_TYPE, > TI_SAT_FRACT_TYPE, > TI_SAT_LFRACT_TYPE, > TI_SAT_LLFRACT_TYPE, > TI_SAT_USFRACT_TYPE, > TI_SAT_UFRACT_TYPE, > TI_SAT_ULFRACT_TYPE, > TI_SAT_ULLFRACT_TYPE, > TI_SFRACT_TYPE, > TI_FRACT_TYPE, > TI_LFRACT_TYPE, > TI_LLFRACT_TYPE, > TI_USFRACT_TYPE, > TI_UFRACT_TYPE, > TI_ULFRACT_TYPE, > TI_ULLFRACT_TYPE, > TI_SAT_SACCUM_TYPE, > TI_SAT_ACCUM_TYPE, > TI_SAT_LACCUM_TYPE, > TI_SAT_LLACCUM_TYPE, > TI_SAT_USACCUM_TYPE, > TI_SAT_UACCUM_TYPE, > TI_SAT_ULACCUM_TYPE, > TI_SAT_ULLACCUM_TYPE, > TI_SACCUM_TYPE, > TI_ACCUM_TYPE, > TI_LACCUM_TYPE, > TI_LLACCUM_TYPE, > TI_USACCUM_TYPE, > TI_UACCUM_TYPE, > TI_ULACCUM_TYPE, > TI_ULLACCUM_TYPE, > TI_QQ_TYPE, > TI_HQ_TYPE, > TI_SQ_TYPE, > TI_DQ_TYPE, > TI_TQ_TYPE, > TI_UQQ_TYPE, > TI_UHQ_TYPE, > TI_USQ_TYPE, > TI_UDQ_TYPE, > TI_UTQ_TYPE, > TI_SAT_QQ_TYPE, > TI_SAT_HQ_TYPE, > TI_SAT_SQ_TYPE, > TI_SAT_DQ_TYPE, > TI_SAT_TQ_TYPE, > TI_SAT_UQQ_TYPE, > TI_SAT_UHQ_TYPE, > TI_SAT_USQ_TYPE, > TI_SAT_UDQ_TYPE, > TI_SAT_UTQ_TYPE, > TI_HA_TYPE, > TI_SA_TYPE, > TI_DA_TYPE, > TI_TA_TYPE, > TI_UHA_TYPE, > TI_USA_TYPE, > TI_UDA_TYPE, > TI_UTA_TYPE, > TI_SAT_HA_TYPE, > TI_SAT_SA_TYPE, > TI_SAT_DA_TYPE, > TI_SAT_TA_TYPE, > TI_SAT_UHA_TYPE, > TI_SAT_USA_TYPE, > TI_SAT_UDA_TYPE, > TI_SAT_UTA_TYPE, > > TI_OPTIMIZATION_DEFAULT, > TI_OPTIMIZATION_CURRENT, > TI_TARGET_OPTION_DEFAULT, > TI_TARGET_OPTION_CURRENT, > TI_CURRENT_TARGET_PRAGMA, > TI_CURRENT_OPTIMIZE_PRAGMA, > > TI_MAX >}; > >extern tree global_trees[TI_MAX]; ># 4071 "../../gcc/tree.h" >enum integer_type_kind >{ > itk_char, > itk_signed_char, > itk_unsigned_char, > itk_short, > itk_unsigned_short, > itk_int, > itk_unsigned_int, > itk_long, > itk_unsigned_long, > itk_long_long, > itk_unsigned_long_long, > itk_int128, > itk_unsigned_int128, > itk_none >}; > >typedef enum integer_type_kind integer_type_kind; > > > >extern tree integer_types[itk_none]; ># 4130 "../../gcc/tree.h" >enum ptrmemfunc_vbit_where_t >{ > ptrmemfunc_vbit_in_pfn, > ptrmemfunc_vbit_in_delta >}; ># 4144 "../../gcc/tree.h" >extern tree decl_assembler_name (tree); >extern unsigned char decl_assembler_name_equal (tree decl, const_tree asmname); >extern hashval_t decl_assembler_name_hash (const_tree asmname); > > > > >extern size_t tree_size (const_tree); > > > > >extern size_t tree_code_size (enum tree_code); > > >extern int allocate_decl_uid (void); > > > > > >extern tree make_node_stat (enum tree_code ); > > > > >extern tree copy_node_stat (tree ); > > > > >extern tree copy_list (tree); > > > >extern tree build_case_label (tree, tree, tree); > > >extern tree make_tree_binfo_stat (unsigned ); > > > > >extern tree make_tree_vec_stat (int ); > > > > > >extern tree get_identifier (const char *); ># 4206 "../../gcc/tree.h" >extern tree get_identifier_with_length (const char *, size_t); > > > > > >extern tree maybe_get_identifier (const char *); > > > >extern tree build_nt (enum tree_code, ...); >extern tree build_nt_call_vec (tree, VEC_tree_gc *); > >extern tree build0_stat (enum tree_code, tree ); > >extern tree build1_stat (enum tree_code, tree, tree ); > >extern tree build2_stat (enum tree_code, tree, tree, tree ); > >extern tree build3_stat (enum tree_code, tree, tree, tree, tree ); > >extern tree build4_stat (enum tree_code, tree, tree, tree, tree, > tree ); > >extern tree build5_stat (enum tree_code, tree, tree, tree, tree, tree, > tree ); > >extern tree build6_stat (enum tree_code, tree, tree, tree, tree, tree, > tree, tree ); > > > > > >static __inline__ tree >build1_stat_loc (location_t loc, enum tree_code code, tree type, > tree arg1 ) >{ > tree t = build1_stat (code, type, arg1 ); > if (((t) && ((tree_code_type[(int) (((enum tree_code) (t)->base.code))]) >= tcc_reference && (tree_code_type[(int) (((enum tree_code) (t)->base.code))]) <= tcc_expression))) > ((t))->exp.locus = (loc); > return t; >} > > >static __inline__ tree >build2_stat_loc (location_t loc, enum tree_code code, tree type, tree arg0, > tree arg1 ) >{ > tree t = build2_stat (code, type, arg0, arg1 ); > if (((t) && ((tree_code_type[(int) (((enum tree_code) (t)->base.code))]) >= tcc_reference && (tree_code_type[(int) (((enum tree_code) (t)->base.code))]) <= tcc_expression))) > ((t))->exp.locus = (loc); > return t; >} > > >static __inline__ tree >build3_stat_loc (location_t loc, enum tree_code code, tree type, tree arg0, > tree arg1, tree arg2 ) >{ > tree t = build3_stat (code, type, arg0, arg1, arg2 ); > if (((t) && ((tree_code_type[(int) (((enum tree_code) (t)->base.code))]) >= tcc_reference && (tree_code_type[(int) (((enum tree_code) (t)->base.code))]) <= tcc_expression))) > ((t))->exp.locus = (loc); > return t; >} > > > >static __inline__ tree >build4_stat_loc (location_t loc, enum tree_code code, tree type, tree arg0, > tree arg1, tree arg2, tree arg3 ) >{ > tree t = build4_stat (code, type, arg0, arg1, arg2, arg3 ); > if (((t) && ((tree_code_type[(int) (((enum tree_code) (t)->base.code))]) >= tcc_reference && (tree_code_type[(int) (((enum tree_code) (t)->base.code))]) <= tcc_expression))) > ((t))->exp.locus = (loc); > return t; >} > > > >static __inline__ tree >build5_stat_loc (location_t loc, enum tree_code code, tree type, tree arg0, > tree arg1, tree arg2, tree arg3, tree arg4 ) >{ > tree t = build5_stat (code, type, arg0, arg1, arg2, arg3, > arg4 ); > if (((t) && ((tree_code_type[(int) (((enum tree_code) (t)->base.code))]) >= tcc_reference && (tree_code_type[(int) (((enum tree_code) (t)->base.code))]) <= tcc_expression))) > ((t))->exp.locus = (loc); > return t; >} > > > >static __inline__ tree >build6_stat_loc (location_t loc, enum tree_code code, tree type, tree arg0, > tree arg1, tree arg2, tree arg3, tree arg4, > tree arg5 ) >{ > tree t = build6_stat (code, type, arg0, arg1, arg2, arg3, arg4, > arg5 ); > if (((t) && ((tree_code_type[(int) (((enum tree_code) (t)->base.code))]) >= tcc_reference && (tree_code_type[(int) (((enum tree_code) (t)->base.code))]) <= tcc_expression))) > ((t))->exp.locus = (loc); > return t; >} > > > >extern tree build_var_debug_value_stat (tree, tree ); > > > > > >static __inline__ double_int >tree_to_double_int (const_tree cst) >{ > return ((cst)->int_cst.int_cst); >} > >extern tree double_int_to_tree (tree, double_int); >extern unsigned char double_int_fits_to_tree_p (const_tree, double_int); >extern tree force_fit_type_double (tree, double_int, int, unsigned char); > > > >static __inline__ tree >build_int_cstu (tree type, unsigned long long cst) >{ > return double_int_to_tree (type, uhwi_to_double_int (cst)); >} > >extern tree build_int_cst (tree, long long); >extern tree build_int_cst_type (tree, long long); >extern tree build_int_cst_wide (tree, unsigned long long, long long); >extern tree build_vector (tree, tree); >extern tree build_vector_from_ctor (tree, VEC_constructor_elt_gc *); >extern tree build_vector_from_val (tree, tree); >extern tree build_constructor (tree, VEC_constructor_elt_gc *); >extern tree build_constructor_single (tree, tree, tree); >extern tree build_constructor_from_list (tree, tree); >extern tree build_real_from_int_cst (tree, const_tree); >extern tree build_complex (tree, tree, tree); >extern tree build_one_cst (tree); >extern tree build_zero_cst (tree); >extern tree build_string (int, const char *); >extern tree build_tree_list_stat (tree, tree ); > >extern tree build_tree_list_vec_stat (const VEC_tree_gc * ); > >extern tree build_decl_stat (location_t, enum tree_code, > tree, tree ); >extern tree build_fn_decl (const char *, tree); > >extern tree build_translation_unit_decl (tree); >extern tree build_block (tree, tree, tree, tree); >extern tree build_empty_stmt (location_t); >extern tree build_omp_clause (location_t, enum omp_clause_code); > >extern tree build_vl_exp_stat (enum tree_code, int ); > > >extern tree build_call_nary (tree, tree, int, ...); >extern tree build_call_valist (tree, tree, int, va_list); > > >extern tree build_call_array_loc (location_t, tree, tree, int, const tree *); >extern tree build_call_vec (tree, tree, VEC_tree_gc *); > > > >extern tree make_signed_type (int); >extern tree make_unsigned_type (int); >extern tree signed_or_unsigned_type_for (int, tree); >extern tree signed_type_for (tree); >extern tree unsigned_type_for (tree); >extern void initialize_sizetypes (void); >extern void fixup_unsigned_type (tree); >extern tree build_pointer_type_for_mode (tree, enum machine_mode, unsigned char); >extern tree build_pointer_type (tree); >extern tree build_reference_type_for_mode (tree, enum machine_mode, unsigned char); >extern tree build_reference_type (tree); >extern tree build_vector_type_for_mode (tree, enum machine_mode); >extern tree build_vector_type (tree innertype, int nunits); >extern tree build_opaque_vector_type (tree innertype, int nunits); >extern tree build_type_no_quals (tree); >extern tree build_index_type (tree); >extern tree build_array_type (tree, tree); >extern tree build_nonshared_array_type (tree, tree); >extern tree build_array_type_nelts (tree, unsigned long long); >extern tree build_function_type (tree, tree); >extern tree build_function_type_list (tree, ...); >extern tree build_function_decl_skip_args (tree, bitmap, unsigned char); >extern tree build_varargs_function_type_list (tree, ...); >extern tree build_function_type_array (tree, int, tree *); >extern tree build_varargs_function_type_array (tree, int, tree *); > > > > > >extern tree build_method_type_directly (tree, tree, tree); >extern tree build_method_type (tree, tree); >extern tree build_offset_type (tree, tree); >extern tree build_complex_type (tree); >extern tree array_type_nelts (const_tree); >extern unsigned char in_array_bounds_p (tree); >extern unsigned char range_in_array_bounds_p (tree); > >extern tree value_member (tree, tree); >extern tree purpose_member (const_tree, tree); >extern unsigned char vec_member (const_tree, VEC_tree_gc *); >extern tree chain_index (int, tree); > >extern int attribute_list_equal (const_tree, const_tree); >extern int attribute_list_contained (const_tree, const_tree); >extern int tree_int_cst_equal (const_tree, const_tree); >extern int tree_int_cst_lt (const_tree, const_tree); >extern int tree_int_cst_compare (const_tree, const_tree); >extern int host_integerp (const_tree, int) > > __attribute__ ((__pure__)) > > ; >extern long long tree_low_cst (const_tree, int); > >extern __inline__ __attribute__ ((__gnu_inline__)) long long >tree_low_cst (const_tree t, int pos) >{ > ((void)(!(host_integerp (t, pos)) ? fancy_abort ("../../gcc/tree.h", 4434, __FUNCTION__), 0 : 0)); > return (((t)->int_cst.int_cst).low); >} > >extern long long size_low_cst (const_tree); >extern int tree_int_cst_sgn (const_tree); >extern int tree_int_cst_sign_bit (const_tree); >extern unsigned int tree_int_cst_min_precision (tree, unsigned char); >extern unsigned char tree_expr_nonnegative_p (tree); >extern unsigned char tree_expr_nonnegative_warnv_p (tree, unsigned char *); >extern unsigned char may_negate_without_overflow_p (const_tree); >extern tree strip_array_types (tree); >extern tree excess_precision_type (tree); > > > >extern tree make_fract_type (int, int, int); >extern tree make_accum_type (int, int, int); ># 4483 "../../gcc/tree.h" >extern tree make_tree (tree, rtx); > > > > > > > >extern tree build_type_attribute_variant (tree, tree); >extern tree build_decl_attribute_variant (tree, tree); >extern tree build_type_attribute_qual_variant (tree, tree, int); > > > > >extern int comp_type_attributes (const_tree, const_tree); > > >struct attribute_spec >{ > > > const char *const name; > > const int min_length; > > > const int max_length; > > > > > > > > const unsigned char decl_required; > > > const unsigned char type_required; > > > > > const unsigned char function_type_required; ># 4541 "../../gcc/tree.h" > tree (*const handler) (tree *node, tree name, tree args, > int flags, unsigned char *no_add_attrs); > > const unsigned char affects_type_identity; >}; > > > >enum attribute_flags >{ > > > > ATTR_FLAG_DECL_NEXT = 1, > > > > ATTR_FLAG_FUNCTION_NEXT = 2, > > > > ATTR_FLAG_ARRAY_NEXT = 4, > > > ATTR_FLAG_TYPE_IN_PLACE = 8, > > > > ATTR_FLAG_BUILT_IN = 16 >}; > > > >extern tree merge_decl_attributes (tree, tree); >extern tree merge_type_attributes (tree, tree); > > > >extern tree private_lookup_attribute (const char *, size_t, tree); ># 4589 "../../gcc/tree.h" >static __inline__ tree >lookup_attribute (const char *attr_name, tree list) >{ > ((void)(0 && (attr_name[0] != '_'))); > > if (list == (tree) ((void *)0)) > return (tree) ((void *)0); > else > > > > return private_lookup_attribute (attr_name, strlen (attr_name), list); >} > > > >extern unsigned char private_is_attribute_p (const char *, size_t, const_tree); > > > > > > >static __inline__ unsigned char >is_attribute_p (const char *attr_name, const_tree ident) >{ > ((void)(0 && (attr_name[0] != '_'))); > > > > return private_is_attribute_p (attr_name, strlen (attr_name), ident); >} > > > > > >extern tree remove_attribute (const char *, tree); > > > >extern tree merge_attributes (tree, tree); ># 4644 "../../gcc/tree.h" >extern unsigned char check_qualified_type (const_tree, const_tree, int); > > > > > >extern tree get_qualified_type (tree, int); > > > > >extern tree build_qualified_type (tree, int); > > > >extern tree build_aligned_type (tree, unsigned int); ># 4673 "../../gcc/tree.h" >extern tree build_distinct_type_copy (tree); >extern tree build_variant_type_copy (tree); > > > > >extern void finish_builtin_struct (tree, const char *, > tree, tree); > > > > > >extern void layout_type (tree); ># 4695 "../../gcc/tree.h" >typedef struct record_layout_info_s >{ > > tree t; > > > tree offset; > > unsigned int offset_align; > > tree bitpos; > > unsigned int record_align; > > > unsigned int unpacked_align; > > tree prev_field; > > > VEC_tree_gc *pending_statics; > > int remaining_in_alignment; > > > int packed_maybe_necessary; >} *record_layout_info; > >extern record_layout_info start_record_layout (tree); >extern tree bit_from_pos (tree, tree); >extern tree byte_from_pos (tree, tree); >extern void pos_from_bit (tree *, tree *, unsigned int, tree); >extern void normalize_offset (tree *, tree *, unsigned int); >extern tree rli_size_unit_so_far (record_layout_info); >extern tree rli_size_so_far (record_layout_info); >extern void normalize_rli (record_layout_info); >extern void place_field (record_layout_info, tree); >extern void compute_record_mode (tree); >extern void finish_record_layout (record_layout_info, int); > > > > > > >extern tree type_hash_canon (unsigned int, tree); ># 4750 "../../gcc/tree.h" >extern void layout_decl (tree, unsigned); > > > > >extern void relayout_decl (tree); > > > > > > >extern enum machine_mode mode_for_size_tree (const_tree, enum mode_class, int); > > > > >extern tree non_lvalue_loc (location_t, tree); > >extern tree convert (tree, tree); >extern unsigned int expr_align (const_tree); >extern tree expr_first (tree); >extern tree expr_last (tree); >extern tree size_in_bytes (const_tree); >extern long long int_size_in_bytes (const_tree); >extern long long max_int_size_in_bytes (const_tree); >extern tree tree_expr_size (const_tree); >extern tree bit_position (const_tree); >extern long long int_bit_position (const_tree); >extern tree byte_position (const_tree); >extern long long int_byte_position (const_tree); > > > > >enum size_type_kind >{ > SIZETYPE, > SSIZETYPE, > BITSIZETYPE, > SBITSIZETYPE, > TYPE_KIND_LAST}; > >extern tree sizetype_tab[(int) TYPE_KIND_LAST]; > > > > > > >extern tree size_int_kind (long long, enum size_type_kind); > > >extern tree size_binop_loc (location_t, enum tree_code, tree, tree); > > >extern tree size_diffop_loc (location_t, tree, tree); > > > > > > > >extern tree round_up_loc (location_t, tree, int); > >extern tree round_down_loc (location_t, tree, int); >extern void finalize_size_functions (void); ># 4827 "../../gcc/tree.h" >extern unsigned int maximum_field_alignment; > > > > > >extern tree chainon (tree, tree); > > > >extern tree tree_cons_stat (tree, tree, tree ); > > > > >extern tree tree_last (tree); > > > >extern tree nreverse (tree); > > > > >extern int list_length (const_tree); > > > >extern int fields_length (const_tree); > > > >extern tree first_field (const_tree); > > > > >extern unsigned char initializer_zerop (const_tree); > > > >extern VEC_tree_gc *ctor_to_vec (tree); > >extern unsigned char categorize_ctor_elements (const_tree, long long *, > long long *, unsigned char *); > >extern unsigned char complete_ctor_at_level_p (const_tree, long long, const_tree); > > > >extern int integer_zerop (const_tree); > > > >extern int integer_onep (const_tree); > > > > >extern int integer_all_onesp (const_tree); > > > > >extern int integer_pow2p (const_tree); > > > > >extern int integer_nonzerop (const_tree); > >extern unsigned char cst_and_fits_in_hwi (const_tree); >extern tree num_ending_zeros (const_tree); > > > > >extern int fixed_zerop (const_tree); > > > > >extern tree staticp (tree); > > > > > >extern tree save_expr (tree); > > > > >extern tree skip_simple_arithmetic (tree); > > > >enum tree_node_structure_enum tree_node_structure (const_tree); > > > > >extern unsigned char contains_placeholder_p (const_tree); ># 4941 "../../gcc/tree.h" >extern unsigned char type_contains_placeholder_p (tree); ># 4950 "../../gcc/tree.h" >extern void find_placeholder_in_expr (tree, VEC_tree_heap **); ># 4968 "../../gcc/tree.h" >extern tree substitute_in_expr (tree, tree, tree); ># 4979 "../../gcc/tree.h" >extern tree substitute_placeholder_in_expr (tree, tree); ># 4994 "../../gcc/tree.h" >extern tree variable_size (tree); > > > > > >extern tree stabilize_reference (tree); > > > > > >extern tree stabilize_reference_1 (tree); > > > > > > >extern tree get_unwidened (tree, tree); > > > > > > >extern tree get_narrower (tree, int *); > > > >static __inline__ unsigned char >handled_component_p (const_tree t) >{ > switch (((enum tree_code) (t)->base.code)) > { > case BIT_FIELD_REF: > case COMPONENT_REF: > case ARRAY_REF: > case ARRAY_RANGE_REF: > case VIEW_CONVERT_EXPR: > case REALPART_EXPR: > case IMAGPART_EXPR: > return 1; > > default: > return 0; > } >} > > > > > >extern tree get_inner_reference (tree, long long *, long long *, > tree *, enum machine_mode *, int *, int *, > unsigned char); > > > > > >extern unsigned char contains_packed_reference (const_tree exp); > > > > >extern tree array_ref_element_size (tree); > > > > >extern tree array_ref_low_bound (tree); > > > > >extern tree array_ref_up_bound (tree); > > > > >extern tree component_ref_field_offset (tree); > > > > >extern tree get_containing_scope (const_tree); > > > >extern tree decl_function_context (const_tree); > > > >extern tree decl_type_context (const_tree); > > >extern int real_zerop (const_tree); > > > > > > >extern int pedantic_lvalues; > > > >extern tree current_function_decl; > > >extern const char * current_function_func_begin_label; > > >typedef struct { > tree next; >} function_args_iterator; > > > >static __inline__ void >function_args_iter_init (function_args_iterator *i, const_tree fntype) >{ > i->next = ((fntype)->type_non_common.values); >} > > > > >static __inline__ tree * >function_args_iter_cond_ptr (function_args_iterator *i) >{ > return (i->next) ? &((i->next)->list.value) : ((void *)0); >} > > > > >static __inline__ tree >function_args_iter_cond (function_args_iterator *i) >{ > return (i->next) ? ((i->next)->list.value) : (tree) ((void *)0); >} > > >static __inline__ void >function_args_iter_next (function_args_iterator *i) >{ > ((void)(!(i->next != (tree) ((void *)0)) ? fancy_abort ("../../gcc/tree.h", 5142, __FUNCTION__), 0 : 0)); > i->next = ((i->next)->common.chain); >} > > > >static __inline__ unsigned char >inlined_function_outer_scope_p (const_tree block) >{ > return ((block)->block.locus) != ((source_location) 0); >} ># 5173 "../../gcc/tree.h" >extern unsigned crc32_string (unsigned, const char *); >extern unsigned crc32_byte (unsigned, char); >extern void clean_symbol_name (char *); >extern tree get_file_function_name (const char *); >extern tree get_callee_fndecl (const_tree); >extern int type_num_arguments (const_tree); >extern unsigned char associative_tree_code (enum tree_code); >extern unsigned char commutative_tree_code (enum tree_code); >extern unsigned char commutative_ternary_tree_code (enum tree_code); >extern tree upper_bound_in_type (tree, tree); >extern tree lower_bound_in_type (tree, tree); >extern int operand_equal_for_phi_arg_p (const_tree, const_tree); >extern tree create_artificial_label (location_t); >extern const char *get_name (tree); >extern unsigned char stdarg_p (const_tree); >extern unsigned char prototype_p (tree); >extern unsigned char is_typedef_decl (tree x); >extern unsigned char typedef_variant_p (tree); >extern unsigned char auto_var_in_fn_p (const_tree, const_tree); >extern tree build_low_bits_mask (tree, unsigned); >extern tree tree_strip_nop_conversions (tree); >extern tree tree_strip_sign_nop_conversions (tree); >extern const_tree strip_invariant_refs (const_tree); >extern tree lhd_gcc_personality (void); >extern void assign_assembler_name_if_neeeded (tree); >extern void warn_deprecated_use (tree, tree); > > > >extern void change_decl_assembler_name (tree, tree); > > >extern tree unshare_expr (tree); > > > >extern void expand_expr_stmt (tree); >extern int warn_if_unused_value (const_tree, location_t); >extern void expand_label (tree); >extern void expand_goto (tree); > >extern rtx expand_stack_save (void); >extern void expand_stack_restore (tree); >extern void expand_return (tree); > > >extern void using_eh_for_cleanups (void); > > > > > >static __inline__ int >struct_ptr_eq (const void *a, const void *b) >{ > const void * const * x = (const void * const *) a; > const void * const * y = (const void * const *) b; > return *x == *y; >} > >static __inline__ hashval_t >struct_ptr_hash (const void *a) >{ > const void * const * x = (const void * const *) a; > return (intptr_t)*x >> 4; >} > > > > > >extern int folding_initializer; > > >extern int native_encode_expr (const_tree, unsigned char *, int); >extern tree native_interpret_expr (tree, const unsigned char *, int); > > > > > > > >extern tree fold (tree); > > >extern tree fold_unary_loc (location_t, enum tree_code, tree, tree); > > >extern tree fold_unary_ignore_overflow_loc (location_t, enum tree_code, tree, tree); > > >extern tree fold_binary_loc (location_t, enum tree_code, tree, tree, tree); > > >extern tree fold_ternary_loc (location_t, enum tree_code, tree, tree, tree, tree); > > > > >extern tree fold_build1_stat_loc (location_t, enum tree_code, tree, > tree ); > > > > >extern tree fold_build2_stat_loc (location_t, enum tree_code, tree, tree, > tree ); > > > > >extern tree fold_build3_stat_loc (location_t, enum tree_code, tree, tree, tree, > tree ); >extern tree fold_build1_initializer_loc (location_t, enum tree_code, tree, tree); >extern tree fold_build2_initializer_loc (location_t, enum tree_code, tree, tree, tree); >extern tree fold_build3_initializer_loc (location_t, enum tree_code, tree, tree, tree, tree); > > >extern tree fold_build_call_array_loc (location_t, tree, tree, int, tree *); > > >extern tree fold_build_call_array_initializer_loc (location_t, tree, tree, int, tree *); >extern unsigned char fold_convertible_p (const_tree, const_tree); > > >extern tree fold_convert_loc (location_t, tree, tree); >extern tree fold_single_bit_test (location_t, enum tree_code, tree, tree, tree); >extern tree fold_ignored_result (tree); >extern tree fold_abs_const (tree, tree); >extern tree fold_indirect_ref_1 (location_t, tree, tree); >extern void fold_defer_overflow_warnings (void); >extern void fold_undefer_overflow_warnings (unsigned char, const_gimple, int); >extern void fold_undefer_and_ignore_overflow_warnings (void); >extern unsigned char fold_deferring_overflow_warnings_p (void); >extern tree fold_fma (location_t, tree, tree, tree, tree); > >enum operand_equal_flag >{ > OEP_ONLY_CONST = 1, > OEP_PURE_SAME = 2, > OEP_CONSTANT_ADDRESS_OF = 4 >}; > >extern int operand_equal_p (const_tree, const_tree, unsigned int); >extern int multiple_of_p (tree, const_tree, const_tree); > > >extern tree omit_one_operand_loc (location_t, tree, tree, tree); > > >extern tree omit_two_operands_loc (location_t, tree, tree, tree, tree); > > >extern tree invert_truthvalue_loc (location_t, tree); >extern tree fold_truth_not_expr (location_t, tree); >extern tree fold_unary_to_constant (enum tree_code, tree, tree); >extern tree fold_binary_to_constant (enum tree_code, tree, tree, tree); >extern tree fold_read_from_constant_string (tree); >extern tree int_const_binop (enum tree_code, const_tree, const_tree); > > >extern tree build_fold_addr_expr_loc (location_t, tree); > > >extern tree build_fold_addr_expr_with_type_loc (location_t, tree, tree); >extern tree fold_build_cleanup_point_expr (tree type, tree expr); >extern tree fold_strip_sign_ops (tree); > > >extern tree build_fold_indirect_ref_loc (location_t, tree); > > >extern tree fold_indirect_ref_loc (location_t, tree); >extern tree build_simple_mem_ref_loc (location_t, tree); > > >extern double_int mem_ref_offset (const_tree); >extern tree reference_alias_ptr_type (const_tree); >extern tree build_invariant_address (tree, tree, long long); >extern tree constant_boolean_node (unsigned char, tree); >extern tree div_if_zero_remainder (enum tree_code, const_tree, const_tree); > >extern unsigned char tree_swap_operands_p (const_tree, const_tree, unsigned char); >extern enum tree_code swap_tree_comparison (enum tree_code); > >extern unsigned char ptr_difference_const (tree, tree, long long *); >extern enum tree_code invert_tree_comparison (enum tree_code, unsigned char); > >extern unsigned char tree_expr_nonzero_p (tree); >extern unsigned char tree_unary_nonzero_warnv_p (enum tree_code, tree, tree, unsigned char *); >extern unsigned char tree_binary_nonzero_warnv_p (enum tree_code, tree, tree, tree op1, > unsigned char *); >extern unsigned char tree_single_nonzero_warnv_p (tree, unsigned char *); >extern unsigned char tree_unary_nonnegative_warnv_p (enum tree_code, tree, tree, unsigned char *); >extern unsigned char tree_binary_nonnegative_warnv_p (enum tree_code, tree, tree, tree, > unsigned char *); >extern unsigned char tree_single_nonnegative_warnv_p (tree t, unsigned char *strict_overflow_p); >extern unsigned char tree_invalid_nonnegative_warnv_p (tree t, unsigned char *strict_overflow_p); >extern unsigned char tree_call_nonnegative_warnv_p (tree, tree, tree, tree, unsigned char *); > >extern unsigned char tree_expr_nonzero_warnv_p (tree, unsigned char *); > >extern unsigned char fold_real_zero_addition_p (const_tree, const_tree, int); >extern tree combine_comparisons (location_t, enum tree_code, enum tree_code, > enum tree_code, tree, tree, tree); >extern void debug_fold_checksum (const_tree); > > >static __inline__ unsigned char >truth_value_p (enum tree_code code) >{ > return (tree_code_type[(int) (code)] == tcc_comparison > || code == TRUTH_AND_EXPR || code == TRUTH_ANDIF_EXPR > || code == TRUTH_OR_EXPR || code == TRUTH_ORIF_EXPR > || code == TRUTH_XOR_EXPR || code == TRUTH_NOT_EXPR); >} > > > >static __inline__ unsigned char >ptrofftype_p (tree type) >{ > return ((((enum tree_code) (type)->base.code) == ENUMERAL_TYPE || ((enum tree_code) (type)->base.code) == BOOLEAN_TYPE || ((enum tree_code) (type)->base.code) == INTEGER_TYPE) > && ((type)->type_common.precision) == ((sizetype_tab[(int) SIZETYPE])->type_common.precision) > && ((type)->base.unsigned_flag) == ((sizetype_tab[(int) SIZETYPE])->base.unsigned_flag)); >} > > > >static __inline__ tree >convert_to_ptrofftype_loc (location_t loc, tree off) >{ > return fold_convert_loc (loc, sizetype_tab[(int) SIZETYPE], off); >} > > > >static __inline__ tree >fold_build_pointer_plus_loc (location_t loc, tree ptr, tree off) >{ > return fold_build2_stat_loc (loc, POINTER_PLUS_EXPR, ((ptr)->typed.type), ptr, fold_convert_loc (loc, sizetype_tab[(int) SIZETYPE], off) ) > ; >} > > > > >static __inline__ tree >fold_build_pointer_plus_hwi_loc (location_t loc, tree ptr, long long off) >{ > return fold_build2_stat_loc (loc, POINTER_PLUS_EXPR, ((ptr)->typed.type), ptr, size_int_kind (off, SIZETYPE) ) > ; >} > > > > >extern unsigned char avoid_folding_inline_builtin (tree); >extern tree fold_call_expr (location_t, tree, unsigned char); >extern tree fold_builtin_fputs (location_t, tree, tree, unsigned char, unsigned char, tree); >extern tree fold_builtin_strcpy (location_t, tree, tree, tree, tree); >extern tree fold_builtin_strncpy (location_t, tree, tree, tree, tree, tree); >extern tree fold_builtin_memory_chk (location_t, tree, tree, tree, tree, tree, tree, unsigned char, > enum built_in_function); >extern tree fold_builtin_stxcpy_chk (location_t, tree, tree, tree, tree, tree, unsigned char, > enum built_in_function); >extern tree fold_builtin_stxncpy_chk (location_t, tree, tree, tree, tree, tree, unsigned char, > enum built_in_function); >extern tree fold_builtin_snprintf_chk (location_t, tree, tree, enum built_in_function); >extern unsigned char fold_builtin_next_arg (tree, unsigned char); >extern enum built_in_function builtin_mathfn_code (const_tree); >extern tree fold_builtin_call_array (location_t, tree, tree, int, tree *); >extern tree build_call_expr_loc_array (location_t, tree, int, tree *); >extern tree build_call_expr_loc_vec (location_t, tree, VEC_tree_gc *); >extern tree build_call_expr_loc (location_t, tree, int, ...); >extern tree build_call_expr (tree, int, ...); >extern tree mathfn_built_in (tree, enum built_in_function fn); >extern tree c_strlen (tree, int); >extern tree std_gimplify_va_arg_expr (tree, tree, gimple_seq *, gimple_seq *); >extern tree build_va_arg_indirect_ref (tree); >extern tree build_string_literal (int, const char *); >extern unsigned char validate_arglist (const_tree, ...); >extern rtx builtin_memset_read_str (void *, long long, enum machine_mode); >extern unsigned char is_builtin_fn (tree); >extern unsigned int get_object_alignment_1 (tree, unsigned long long *); >extern unsigned int get_object_alignment (tree); >extern unsigned int get_object_or_type_alignment (tree); >extern unsigned int get_pointer_alignment_1 (tree, unsigned long long *); >extern unsigned int get_pointer_alignment (tree); >extern tree fold_call_stmt (gimple, unsigned char); >extern tree gimple_fold_builtin_snprintf_chk (gimple, tree, enum built_in_function); >extern tree make_range (tree, int *, tree *, tree *, unsigned char *); >extern tree make_range_step (location_t, enum tree_code, tree, tree, tree, > tree *, tree *, int *, unsigned char *); >extern tree build_range_check (location_t, tree, tree, int, tree, tree); >extern unsigned char merge_ranges (int *, tree *, tree *, int, tree, tree, int, > tree, tree); >extern void set_builtin_user_assembler_name (tree decl, const char *asmspec); >extern unsigned char is_simple_builtin (tree); >extern unsigned char is_inexpensive_builtin (tree); > > >extern tree strip_float_extensions (tree); > > >extern int really_constant_p (const_tree); >extern unsigned char decl_address_invariant_p (const_tree); >extern unsigned char decl_address_ip_invariant_p (const_tree); >extern unsigned char int_fits_type_p (const_tree, const_tree); > >extern void get_type_static_bounds (const_tree, mpz_t, mpz_t); > >extern unsigned char variably_modified_type_p (tree, tree); >extern int tree_log2 (const_tree); >extern int tree_floor_log2 (const_tree); >extern int simple_cst_equal (const_tree, const_tree); >extern hashval_t iterative_hash_expr (const_tree, hashval_t); >extern hashval_t iterative_hash_exprs_commutative (const_tree, > const_tree, hashval_t); >extern hashval_t iterative_hash_host_wide_int (long long, hashval_t); >extern hashval_t iterative_hash_hashval_t (hashval_t, hashval_t); >extern hashval_t iterative_hash_host_wide_int (long long, hashval_t); >extern int compare_tree_int (const_tree, unsigned long long); >extern int type_list_equal (const_tree, const_tree); >extern int chain_member (const_tree, const_tree); >extern tree type_hash_lookup (unsigned int, tree); >extern void type_hash_add (unsigned int, tree); >extern int simple_cst_list_equal (const_tree, const_tree); >extern void dump_tree_statistics (void); >extern void recompute_tree_invariant_for_addr_expr (tree); >extern unsigned char needs_to_live_in_memory (const_tree); >extern tree reconstruct_complex_type (tree, tree); > >extern int real_onep (const_tree); >extern int real_twop (const_tree); >extern int real_minus_onep (const_tree); >extern void init_ttree (void); >extern void build_common_tree_nodes (unsigned char, unsigned char); >extern void build_common_builtin_nodes (void); >extern tree build_nonstandard_integer_type (unsigned long long, int); >extern tree build_range_type (tree, tree, tree); >extern tree build_nonshared_range_type (tree, tree, tree); >extern unsigned char subrange_type_for_debug_p (const_tree, tree *, tree *); >extern long long int_cst_value (const_tree); >extern long long widest_int_cst_value (const_tree); > >extern tree *tree_block (tree); >extern location_t *block_nonartificial_location (tree); >extern location_t tree_nonartificial_location (tree); > >extern tree block_ultimate_origin (const_tree); > >extern tree get_binfo_at_offset (tree, long long, tree); > > >extern tree build_addr (tree, tree); > > >extern void expand_main_function (void); >extern void expand_function_end (void); >extern void expand_function_start (tree); >extern void stack_protect_prologue (void); >extern void stack_protect_epilogue (void); >extern void init_dummy_function_start (void); >extern void expand_dummy_function_end (void); >extern unsigned int init_function_for_compilation (void); >extern void allocate_struct_function (tree, unsigned char); >extern void push_struct_function (tree fndecl); >extern void init_function_start (tree); >extern unsigned char use_register_for_decl (const_tree); >extern void generate_setjmp_warnings (void); >extern void init_temp_slots (void); >extern void free_temp_slots (void); >extern void pop_temp_slots (void); >extern void push_temp_slots (void); >extern void preserve_temp_slots (rtx); >extern int aggregate_value_p (const_tree, const_tree); >extern void push_function_context (void); >extern void pop_function_context (void); >extern gimple_seq gimplify_parameters (void); > > > >extern void print_rtl (FILE *, const_rtx); > > > >extern void debug_tree (tree); >extern void debug_vec_tree (VEC_tree_gc *); > >extern void dump_addr (FILE*, const char *, const void *); >extern void print_node (FILE *, const char *, tree, int); >extern void print_vec_tree (FILE *, const char *, VEC_tree_gc *, int); >extern void print_node_brief (FILE *, const char *, const_tree, int); >extern void indent_to (FILE *, int); > > > >extern unsigned char debug_find_tree (tree, tree); > > >extern tree unsave_expr_now (tree); >extern tree build_duplicate_type (tree); ># 5615 "../../gcc/tree.h" >extern int flags_from_decl_or_type (const_tree); >extern int call_expr_flags (const_tree); ># 5642 "../../gcc/tree.h" >extern int setjmp_call_p (const_tree); >extern unsigned char gimple_alloca_call_p (const_gimple); >extern unsigned char alloca_call_p (const_tree); >extern unsigned char must_pass_in_stack_var_size (enum machine_mode, const_tree); >extern unsigned char must_pass_in_stack_var_size_or_pad (enum machine_mode, const_tree); > > > >extern const struct attribute_spec *lookup_attribute_spec (const_tree); > >extern void init_attributes (void); ># 5662 "../../gcc/tree.h" >extern tree decl_attributes (tree *, tree, int); > >extern void apply_tm_attr (tree, tree); > > >extern void set_decl_abstract_flags (tree, int); >extern void set_decl_origin_self (tree); > > >extern void set_min_and_max_values_for_integral_type (tree, int, unsigned char); >extern void fixup_signed_type (tree); >extern void internal_reference_types (void); >extern unsigned int update_alignment_for_field (record_layout_info, tree, > unsigned int); > >extern tree tree_output_constant_def (tree); >extern void make_decl_rtl (tree); >extern rtx make_decl_rtl_for_debug (tree); >extern void make_decl_one_only (tree, tree); >extern int supports_one_only (void); >extern void resolve_unique_section (tree, int, int); >extern void mark_referenced (tree); >extern void mark_decl_referenced (tree); >extern void notice_global_symbol (tree); >extern void set_user_assembler_name (tree, const char *); >extern void process_pending_assemble_externals (void); >extern void finish_aliases_1 (void); >extern void finish_aliases_2 (void); >extern void remove_unreachable_alias_pairs (void); >extern unsigned char decl_replaceable_p (tree); >extern unsigned char decl_binds_to_current_def_p (tree); > > > > > >typedef struct pointer_set_t symbol_alias_set_t; > >extern void symbol_alias_set_destroy (symbol_alias_set_t *); >extern int symbol_alias_set_contains (const symbol_alias_set_t *, tree); >extern symbol_alias_set_t * propagate_aliases_backward (unsigned char (*) > (tree, tree, void *), > void *); > > >extern void expand_computed_goto (tree); >extern unsigned char parse_output_constraint (const char **, int, int, int, > unsigned char *, unsigned char *, unsigned char *); >extern unsigned char parse_input_constraint (const char **, int, int, int, int, > const char * const *, unsigned char *, unsigned char *); >extern void expand_asm_stmt (gimple); >extern tree resolve_asm_operand_names (tree, tree, tree, tree); >extern unsigned char expand_switch_using_bit_tests_p (tree, tree, unsigned int, > unsigned int); >extern void expand_case (gimple); >extern void expand_decl (tree); ># 5728 "../../gcc/tree.h" >struct pointer_set_t; > > > >typedef tree (*walk_tree_fn) (tree *, int *, void *); > > > >typedef tree (*walk_tree_lh) (tree *, int *, tree (*) (tree *, int *, void *), > void *, struct pointer_set_t*); > >extern tree walk_tree_1 (tree*, walk_tree_fn, void*, struct pointer_set_t*, > walk_tree_lh); >extern tree walk_tree_without_duplicates_1 (tree*, walk_tree_fn, void*, > walk_tree_lh); ># 5751 "../../gcc/tree.h" >extern void set_decl_rtl (tree, rtx); >extern void set_decl_incoming_rtl (tree, rtx, unsigned char); > > > >typedef enum >{ > d_kind, > t_kind, > b_kind, > s_kind, > r_kind, > e_kind, > c_kind, > id_kind, > vec_kind, > binfo_kind, > ssa_name_kind, > constr_kind, > x_kind, > lang_decl, > lang_type, > omp_clause_kind, > all_kinds >} tree_node_kind; > >extern int tree_node_counts[]; >extern int tree_node_sizes[]; > > > > >extern unsigned char in_gimple_form; > > >extern tree get_base_address (tree t); >extern void mark_addressable (tree); > > > >struct tree_map_base { > tree from; >}; > >extern int tree_map_base_eq (const void *, const void *); >extern unsigned int tree_map_base_hash (const void *); >extern int tree_map_base_marked_p (const void *); >extern unsigned char list_equal_p (const_tree, const_tree); > > > >struct tree_map { > struct tree_map_base base; > unsigned int hash; > tree to; >}; > > >extern unsigned int tree_map_hash (const void *); > > > > >struct tree_decl_map { > struct tree_map_base base; > tree to; >}; > > >extern unsigned int tree_decl_map_hash (const void *); > > > > >struct tree_int_map { > struct tree_map_base base; > unsigned int to; >}; > > > > > > > >struct tree_priority_map { > struct tree_map_base base; > priority_type init; > priority_type fini; >}; > > > > > > > >struct tree_vec_map { > struct tree_map_base base; > VEC_tree_gc *to; >}; > > > > > > > >tree target_for_debug_bind (tree); > > >extern tree tree_mem_ref_addr (tree, tree); >extern void copy_mem_ref_info (tree, tree); >extern void copy_ref_info (tree, tree); > > >extern unsigned char ssa_name_nonnegative_p (const_tree); > > >extern void init_object_sizes (void); >extern void fini_object_sizes (void); >extern unsigned long long compute_builtin_object_size (tree, int); > > >extern unsigned long long highest_pow2_factor (const_tree); >extern tree build_personality_function (const char *); > > >extern tree build_tm_abort_call (location_t, unsigned char); >extern unsigned char is_tm_safe (const_tree); >extern unsigned char is_tm_pure (const_tree); >extern unsigned char is_tm_may_cancel_outer (tree); >extern unsigned char is_tm_ending_fndecl (tree); >extern void record_tm_replacement (tree, tree); >extern void tm_malloc_replacement (tree); > >static __inline__ unsigned char >is_tm_safe_or_pure (const_tree x) >{ > return is_tm_safe (x) || is_tm_pure (x); >} > > > >void init_inline_once (void); > > > > >static __inline__ int >tree_operand_length (const_tree node) >{ > if ((tree_code_type[(int) (((enum tree_code) (node)->base.code))] == tcc_vl_exp)) > return ((int)((((node)->exp.operands[0])->int_cst.int_cst).low)); > else > return tree_code_length[(int) (((enum tree_code) (node)->base.code))]; >} > > > > > > >typedef struct call_expr_arg_iterator_d { > tree t; > int n; > int i; >} call_expr_arg_iterator; > >typedef struct const_call_expr_arg_iterator_d { > const_tree t; > int n; > int i; >} const_call_expr_arg_iterator; > > > >static __inline__ void >init_call_expr_arg_iterator (tree exp, call_expr_arg_iterator *iter) >{ > iter->t = exp; > iter->n = (((int)((((exp)->exp.operands[0])->int_cst.int_cst).low)) - 3); > iter->i = 0; >} > >static __inline__ void >init_const_call_expr_arg_iterator (const_tree exp, const_call_expr_arg_iterator *iter) >{ > iter->t = exp; > iter->n = (((int)((((exp)->exp.operands[0])->int_cst.int_cst).low)) - 3); > iter->i = 0; >} > > > >static __inline__ tree >next_call_expr_arg (call_expr_arg_iterator *iter) >{ > tree result; > if (iter->i >= iter->n) > return (tree) ((void *)0); > result = (((iter->t))->exp.operands[(iter->i) + 3]); > iter->i++; > return result; >} > >static __inline__ const_tree >next_const_call_expr_arg (const_call_expr_arg_iterator *iter) >{ > const_tree result; > if (iter->i >= iter->n) > return (tree) ((void *)0); > result = (((iter->t))->exp.operands[(iter->i) + 3]); > iter->i++; > return result; >} > > > > > >static __inline__ tree >first_call_expr_arg (tree exp, call_expr_arg_iterator *iter) >{ > init_call_expr_arg_iterator (exp, iter); > return next_call_expr_arg (iter); >} > >static __inline__ const_tree >first_const_call_expr_arg (const_tree exp, const_call_expr_arg_iterator *iter) >{ > init_const_call_expr_arg_iterator (exp, iter); > return next_const_call_expr_arg (iter); >} > > > >static __inline__ unsigned char >more_call_expr_args_p (const call_expr_arg_iterator *iter) >{ > return (iter->i < iter->n); >} > >static __inline__ unsigned char >more_const_call_expr_args_p (const const_call_expr_arg_iterator *iter) >{ > return (iter->i < iter->n); >} ># 6011 "../../gcc/tree.h" >static __inline__ unsigned char >is_lang_specific (tree t) >{ > return ((enum tree_code) (t)->base.code) == LANG_TYPE || ((enum tree_code) (t)->base.code) >= ((int) LAST_AND_UNUSED_TREE_CODE); >} > > >extern unsigned char block_may_fallthru (const_tree); ># 6027 "../../gcc/tree.h" >typedef struct builtin_info_type_d { > tree decl[(int)END_BUILTINS]; > unsigned char implicit_p[(int)END_BUILTINS]; >} builtin_info_type; > >extern builtin_info_type builtin_info; > > > > > > >static __inline__ tree >builtin_decl_explicit (enum built_in_function fncode) >{ > ((void)(0 && ((((unsigned long long) ((int)fncode) - (unsigned long long) (((int)BUILT_IN_NONE) + 1) <= (unsigned long long) (((int) END_BUILTINS) - 1) - (unsigned long long) (((int)BUILT_IN_NONE) + 1)))))); > > return builtin_info.decl[(size_t)fncode]; >} > > >static __inline__ tree >builtin_decl_implicit (enum built_in_function fncode) >{ > size_t uns_fncode = (size_t)fncode; > ((void)(0 && ((((unsigned long long) ((int)fncode) - (unsigned long long) (((int)BUILT_IN_NONE) + 1) <= (unsigned long long) (((int) END_BUILTINS) - 1) - (unsigned long long) (((int)BUILT_IN_NONE) + 1)))))); > > if (!builtin_info.implicit_p[uns_fncode]) > return (tree) ((void *)0); > > return builtin_info.decl[uns_fncode]; >} > > > > >static __inline__ void >set_builtin_decl (enum built_in_function fncode, tree decl, unsigned char implicit_p) >{ > size_t ufncode = (size_t)fncode; > > ((void)(0 && ((((unsigned long long) ((int)fncode) - (unsigned long long) (((int)BUILT_IN_NONE) + 1) <= (unsigned long long) (((int) END_BUILTINS) - 1) - (unsigned long long) (((int)BUILT_IN_NONE) + 1))) && (decl != (tree) ((void *)0) || !implicit_p)))) > ; > > builtin_info.decl[ufncode] = decl; > builtin_info.implicit_p[ufncode] = implicit_p; >} > > > >static __inline__ void >set_builtin_decl_implicit_p (enum built_in_function fncode, unsigned char implicit_p) >{ > size_t uns_fncode = (size_t)fncode; > > ((void)(0 && ((((unsigned long long) ((int)fncode) - (unsigned long long) (((int)BUILT_IN_NONE) + 1) <= (unsigned long long) (((int) END_BUILTINS) - 1) - (unsigned long long) (((int)BUILT_IN_NONE) + 1))) && builtin_info.decl[uns_fncode] != (tree) ((void *)0)))) > ; > > builtin_info.implicit_p[uns_fncode] = implicit_p; >} > > > > >static __inline__ unsigned char >builtin_decl_explicit_p (enum built_in_function fncode) >{ > ((void)(0 && ((((unsigned long long) ((int)fncode) - (unsigned long long) (((int)BUILT_IN_NONE) + 1) <= (unsigned long long) (((int) END_BUILTINS) - 1) - (unsigned long long) (((int)BUILT_IN_NONE) + 1)))))); > return (builtin_info.decl[(size_t)fncode] != (tree) ((void *)0)); >} > > > >static __inline__ unsigned char >builtin_decl_implicit_p (enum built_in_function fncode) >{ > size_t uns_fncode = (size_t)fncode; > > ((void)(0 && ((((unsigned long long) ((int)fncode) - (unsigned long long) (((int)BUILT_IN_NONE) + 1) <= (unsigned long long) (((int) END_BUILTINS) - 1) - (unsigned long long) (((int)BUILT_IN_NONE) + 1)))))); > return (builtin_info.decl[uns_fncode] != (tree) ((void *)0) > && builtin_info.implicit_p[uns_fncode]); >} ># 84 "../../gcc/combine.c" 2 ># 1 "./tm_p.h" 1 > > > ># 1 "../../gcc/config/rs6000/rs6000-protos.h" 1 ># 31 "../../gcc/config/rs6000/rs6000-protos.h" >extern void init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx, int, int, int, > tree, enum machine_mode); > > >extern unsigned char easy_altivec_constant (rtx, enum machine_mode); >extern long long const_vector_elt_as_int (rtx, unsigned int); >extern unsigned char macho_lo_sum_memory_operand (rtx, enum machine_mode); >extern int num_insns_constant (rtx, enum machine_mode); >extern int num_insns_constant_wide (long long); >extern int small_data_operand (rtx, enum machine_mode); >extern unsigned char toc_relative_expr_p (rtx); >extern unsigned char invalid_e500_subreg (rtx, enum machine_mode); >extern void validate_condition_mode (enum rtx_code, enum machine_mode); >extern unsigned char legitimate_constant_pool_address_p (const_rtx, enum machine_mode, > unsigned char); >extern unsigned char legitimate_indirect_address_p (rtx, int); >extern unsigned char legitimate_indexed_address_p (rtx, int); >extern unsigned char avoiding_indexed_address_p (enum machine_mode); > >extern rtx rs6000_got_register (rtx); >extern rtx find_addr_reg (rtx); >extern rtx gen_easy_altivec_constant (rtx); >extern const char *output_vec_const_move (rtx *); >extern void rs6000_expand_vector_init (rtx, rtx); >extern void paired_expand_vector_init (rtx, rtx); >extern void rs6000_expand_vector_set (rtx, rtx, int); >extern void rs6000_expand_vector_extract (rtx, rtx, int); >extern unsigned char altivec_expand_vec_perm_const (rtx op[4]); >extern unsigned char rs6000_expand_vec_perm_const (rtx op[4]); >extern void rs6000_expand_extract_even (rtx, rtx, rtx); >extern void rs6000_expand_interleave (rtx, rtx, rtx, unsigned char); >extern void build_mask64_2_operands (rtx, rtx *); >extern int expand_block_clear (rtx[]); >extern int expand_block_move (rtx[]); >extern const char * rs6000_output_load_multiple (rtx[]); >extern int includes_lshift_p (rtx, rtx); >extern int includes_rshift_p (rtx, rtx); >extern int includes_rldic_lshift_p (rtx, rtx); >extern int includes_rldicr_lshift_p (rtx, rtx); >extern int insvdi_rshift_rlwimi_p (rtx, rtx, rtx); >extern int registers_ok_for_quad_peep (rtx, rtx); >extern int mems_ok_for_quad_peep (rtx, rtx); >extern unsigned char gpr_or_gpr_p (rtx, rtx); >extern enum reg_class (*rs6000_preferred_reload_class_ptr) (rtx, > enum reg_class); >extern enum reg_class (*rs6000_secondary_reload_class_ptr) (enum reg_class, > enum machine_mode, > rtx); >extern unsigned char (*rs6000_secondary_memory_needed_ptr) (enum reg_class, > enum reg_class, > enum machine_mode); >extern unsigned char (*rs6000_cannot_change_mode_class_ptr) (enum machine_mode, > enum machine_mode, > enum reg_class); >extern void rs6000_secondary_reload_inner (rtx, rtx, rtx, unsigned char); >extern void rs6000_secondary_reload_ppc64 (rtx, rtx, rtx, unsigned char); >extern int paired_emit_vector_cond_expr (rtx, rtx, rtx, > rtx, rtx, rtx); >extern void paired_expand_vector_move (rtx operands[]); > > >extern int ccr_bit (rtx, int); >extern int extract_MB (rtx); >extern int extract_ME (rtx); >extern void rs6000_output_function_entry (FILE *, const char *); >extern void print_operand (FILE *, rtx, int); >extern void print_operand_address (FILE *, rtx); >extern enum rtx_code rs6000_reverse_condition (enum machine_mode, > enum rtx_code); >extern void rs6000_emit_sISEL (enum machine_mode, rtx[]); >extern void rs6000_emit_sCOND (enum machine_mode, rtx[]); >extern void rs6000_emit_cbranch (enum machine_mode, rtx[]); >extern char * output_cbranch (rtx, const char *, int, rtx); >extern char * output_e500_flip_gt_bit (rtx, rtx); >extern const char * output_probe_stack_range (rtx, rtx); >extern rtx rs6000_emit_set_const (rtx, enum machine_mode, rtx, int); >extern int rs6000_emit_cmove (rtx, rtx, rtx, rtx); >extern int rs6000_emit_vector_cond_expr (rtx, rtx, rtx, rtx, rtx, rtx); >extern void rs6000_emit_minmax (rtx, enum rtx_code, rtx, rtx); >extern void rs6000_expand_atomic_compare_and_swap (rtx op[]); >extern void rs6000_expand_atomic_exchange (rtx op[]); >extern void rs6000_expand_atomic_op (enum rtx_code, rtx, rtx, rtx, rtx, rtx); >extern void rs6000_emit_swdiv (rtx, rtx, rtx, unsigned char); >extern void rs6000_emit_swrsqrt (rtx, rtx); >extern void output_toc (FILE *, rtx, int, enum machine_mode); >extern rtx rs6000_longcall_ref (rtx); >extern void rs6000_fatal_bad_address (rtx); >extern rtx create_TOC_reference (rtx, rtx); >extern void rs6000_split_multireg_move (rtx, rtx); >extern void rs6000_emit_move (rtx, rtx, enum machine_mode); >extern rtx rs6000_secondary_memory_needed_rtx (enum machine_mode); >extern rtx (*rs6000_legitimize_reload_address_ptr) (rtx, enum machine_mode, > int, int, int, int *); >extern unsigned char rs6000_legitimate_offset_address_p (enum machine_mode, rtx, int); >extern rtx rs6000_find_base_term (rtx); >extern unsigned char rs6000_offsettable_memref_p (rtx); >extern rtx rs6000_return_addr (int, rtx); >extern void rs6000_output_symbol_ref (FILE*, rtx); >extern long long rs6000_initial_elimination_offset (int, int); >extern void rs6000_emit_popcount (rtx, rtx); >extern void rs6000_emit_parity (rtx, rtx); > >extern rtx rs6000_machopic_legitimize_pic_address (rtx, enum machine_mode, > rtx); >extern rtx rs6000_address_for_fpconvert (rtx); >extern rtx rs6000_address_for_altivec (rtx); >extern rtx rs6000_allocate_stack_temp (enum machine_mode, unsigned char, unsigned char); >extern int rs6000_loop_align (rtx); > > > >extern unsigned int rs6000_special_round_type_align (tree, unsigned int, > unsigned int); >extern unsigned int darwin_rs6000_special_round_type_align (tree, unsigned int, > unsigned int); >extern tree altivec_resolve_overloaded_builtin (location_t, tree, void *); >extern rtx rs6000_libcall_value (enum machine_mode); >extern rtx rs6000_va_arg (tree, tree); >extern int function_ok_for_sibcall (tree); >extern void rs6000_elf_declare_function_name (FILE *, const char *, tree); >extern unsigned char rs6000_elf_in_small_data_p (const_tree); > > > > > > > >extern int direct_return (void); >extern int first_reg_to_save (void); >extern int first_fp_reg_to_save (void); >extern void output_ascii (FILE *, const char *, int); >extern void rs6000_gen_section_name (char **, const char *, const char *); >extern void output_function_profiler (FILE *, int); >extern void output_profile_hook (int); >extern int rs6000_trampoline_size (void); >extern alias_set_type get_TOC_alias_set (void); >extern void rs6000_emit_prologue (void); >extern void rs6000_emit_load_toc_table (int); >extern unsigned int rs6000_dbx_register_number (unsigned int); >extern void rs6000_emit_epilogue (int); >extern void rs6000_emit_eh_reg_restore (rtx, rtx); >extern const char * output_isel (rtx *); >extern void rs6000_call_indirect_aix (rtx, rtx, rtx); >extern void rs6000_aix_asm_output_dwarf_table_ref (char *); >extern void get_ppc476_thunk_name (char name[32]); >extern unsigned char rs6000_overloaded_builtin_p (enum rs6000_builtins); >extern unsigned rs6000_builtin_mask_calculate (void); > > > >extern void rs6000_pragma_longcall (struct cpp_reader *); >extern void rs6000_cpu_cpp_builtins (struct cpp_reader *); > >extern unsigned char rs6000_pragma_target_parse (tree, tree); > >extern void rs6000_target_modify_macros (unsigned char, int, unsigned); >extern void (*rs6000_target_modify_macros_ptr) (unsigned char, int, unsigned); > > > > > > >const char * rs6000_xcoff_strip_dollar (const char *); > > >void rs6000_final_prescan_insn (rtx, rtx *operand, int num_operands); > >extern unsigned char rs6000_hard_regno_mode_ok_p[][114]; >extern unsigned char rs6000_class_max_nregs[][LIM_REG_CLASSES]; >extern unsigned char rs6000_hard_regno_nregs[][114]; ># 5 "./tm_p.h" 2 ># 1 "./tm-preds.h" 1 > > > > > > > >extern int general_operand (rtx, enum machine_mode); >extern int address_operand (rtx, enum machine_mode); >extern int register_operand (rtx, enum machine_mode); >extern int pmode_register_operand (rtx, enum machine_mode); >extern int scratch_operand (rtx, enum machine_mode); >extern int immediate_operand (rtx, enum machine_mode); >extern int const_int_operand (rtx, enum machine_mode); >extern int const_double_operand (rtx, enum machine_mode); >extern int nonimmediate_operand (rtx, enum machine_mode); >extern int nonmemory_operand (rtx, enum machine_mode); >extern int push_operand (rtx, enum machine_mode); >extern int pop_operand (rtx, enum machine_mode); >extern int memory_operand (rtx, enum machine_mode); >extern int indirect_operand (rtx, enum machine_mode); >extern int ordered_comparison_operator (rtx, enum machine_mode); >extern int comparison_operator (rtx, enum machine_mode); >extern int any_operand (rtx, enum machine_mode); >extern int any_parallel_operand (rtx, enum machine_mode); >extern int count_register_operand (rtx, enum machine_mode); >extern int altivec_register_operand (rtx, enum machine_mode); >extern int vsx_register_operand (rtx, enum machine_mode); >extern int vfloat_operand (rtx, enum machine_mode); >extern int vint_operand (rtx, enum machine_mode); >extern int vlogical_operand (rtx, enum machine_mode); >extern int ca_operand (rtx, enum machine_mode); >extern int s5bit_cint_operand (rtx, enum machine_mode); >extern int u5bit_cint_operand (rtx, enum machine_mode); >extern int s8bit_cint_operand (rtx, enum machine_mode); >extern int short_cint_operand (rtx, enum machine_mode); >extern int u_short_cint_operand (rtx, enum machine_mode); >extern int non_short_cint_operand (rtx, enum machine_mode); >extern int exact_log2_cint_operand (rtx, enum machine_mode); >extern int const_0_to_1_operand (rtx, enum machine_mode); >extern int const_2_to_3_operand (rtx, enum machine_mode); >extern int gpc_reg_operand (rtx, enum machine_mode); >extern int cc_reg_operand (rtx, enum machine_mode); >extern int cc_reg_not_cr0_operand (rtx, enum machine_mode); >extern int cc_reg_not_micro_cr0_operand (rtx, enum machine_mode); >extern int reg_or_short_operand (rtx, enum machine_mode); >extern int reg_or_neg_short_operand (rtx, enum machine_mode); >extern int reg_or_aligned_short_operand (rtx, enum machine_mode); >extern int reg_or_u_short_operand (rtx, enum machine_mode); >extern int reg_or_cint_operand (rtx, enum machine_mode); >extern int reg_or_add_cint_operand (rtx, enum machine_mode); >extern int reg_or_sub_cint_operand (rtx, enum machine_mode); >extern int reg_or_logical_cint_operand (rtx, enum machine_mode); >extern int easy_fp_constant (rtx, enum machine_mode); >extern int easy_vector_constant (rtx, enum machine_mode); >extern int easy_vector_constant_add_self (rtx, enum machine_mode); >extern int easy_vector_constant_msb (rtx, enum machine_mode); >extern int zero_constant (rtx, enum machine_mode); >extern int zero_fp_constant (rtx, enum machine_mode); >extern int volatile_mem_operand (rtx, enum machine_mode); >extern int offsettable_mem_operand (rtx, enum machine_mode); >extern int word_offset_memref_operand (rtx, enum machine_mode); >extern int indexed_or_indirect_operand (rtx, enum machine_mode); >extern int altivec_indexed_or_indirect_operand (rtx, enum machine_mode); >extern int indexed_or_indirect_address (rtx, enum machine_mode); >extern int fix_trunc_dest_operand (rtx, enum machine_mode); >extern int add_operand (rtx, enum machine_mode); >extern int non_add_cint_operand (rtx, enum machine_mode); >extern int logical_const_operand (rtx, enum machine_mode); >extern int logical_operand (rtx, enum machine_mode); >extern int non_logical_cint_operand (rtx, enum machine_mode); >extern int mask_operand (rtx, enum machine_mode); >extern int mask_operand_wrap (rtx, enum machine_mode); >extern int mask64_operand (rtx, enum machine_mode); >extern int mask64_2_operand (rtx, enum machine_mode); >extern int and64_2_operand (rtx, enum machine_mode); >extern int and_operand (rtx, enum machine_mode); >extern int scc_eq_operand (rtx, enum machine_mode); >extern int reg_or_mem_operand (rtx, enum machine_mode); >extern int reg_or_none500mem_operand (rtx, enum machine_mode); >extern int zero_reg_mem_operand (rtx, enum machine_mode); >extern int lwa_operand (rtx, enum machine_mode); >extern int symbol_ref_operand (rtx, enum machine_mode); >extern int got_operand (rtx, enum machine_mode); >extern int got_no_const_operand (rtx, enum machine_mode); >extern int rs6000_tls_symbol_ref (rtx, enum machine_mode); >extern int call_operand (rtx, enum machine_mode); >extern int current_file_function_operand (rtx, enum machine_mode); >extern int input_operand (rtx, enum machine_mode); >extern int splat_input_operand (rtx, enum machine_mode); >extern int rs6000_nonimmediate_operand (rtx, enum machine_mode); >extern int boolean_operator (rtx, enum machine_mode); >extern int boolean_or_operator (rtx, enum machine_mode); >extern int equality_operator (rtx, enum machine_mode); >extern int min_max_operator (rtx, enum machine_mode); >extern int branch_comparison_operator (rtx, enum machine_mode); >extern int rs6000_cbranch_operator (rtx, enum machine_mode); >extern int scc_comparison_operator (rtx, enum machine_mode); >extern int scc_rev_comparison_operator (rtx, enum machine_mode); >extern int branch_positive_comparison_operator (rtx, enum machine_mode); >extern int load_multiple_operation (rtx, enum machine_mode); >extern int store_multiple_operation (rtx, enum machine_mode); >extern int save_world_operation (rtx, enum machine_mode); >extern int restore_world_operation (rtx, enum machine_mode); >extern int vrsave_operation (rtx, enum machine_mode); >extern int mfcr_operation (rtx, enum machine_mode); >extern int mtcrf_operation (rtx, enum machine_mode); >extern int lmw_operation (rtx, enum machine_mode); >extern int stmw_operation (rtx, enum machine_mode); > > > >enum constraint_num >{ > CONSTRAINT__UNKNOWN = 0, > CONSTRAINT_f, > CONSTRAINT_d, > CONSTRAINT_b, > CONSTRAINT_h, > CONSTRAINT_q, > CONSTRAINT_c, > CONSTRAINT_l, > CONSTRAINT_v, > CONSTRAINT_x, > CONSTRAINT_y, > CONSTRAINT_z, > CONSTRAINT_wd, > CONSTRAINT_wf, > CONSTRAINT_ws, > CONSTRAINT_wa, > CONSTRAINT_wZ, > CONSTRAINT_I, > CONSTRAINT_J, > CONSTRAINT_K, > CONSTRAINT_L, > CONSTRAINT_M, > CONSTRAINT_N, > CONSTRAINT_O, > CONSTRAINT_P, > CONSTRAINT_G, > CONSTRAINT_H, > CONSTRAINT_es, > CONSTRAINT_Q, > CONSTRAINT_Y, > CONSTRAINT_Z, > CONSTRAINT_a, > CONSTRAINT_R, > CONSTRAINT_S, > CONSTRAINT_T, > CONSTRAINT_U, > CONSTRAINT_t, > CONSTRAINT_W, > CONSTRAINT_j, > CONSTRAINT__LIMIT >}; > >extern enum constraint_num lookup_constraint (const char *); >extern unsigned char constraint_satisfied_p (rtx, enum constraint_num); > >static __inline__ size_t >insn_constraint_len (char fc, const char *str __attribute__ ((__unused__))) >{ > switch (fc) > { > case 'e': return 2; > case 'w': return 2; > default: break; > } > return 1; >} > > > >extern enum reg_class regclass_for_constraint (enum constraint_num); > > > > > >extern unsigned char insn_const_int_ok_for_constraint (long long, enum constraint_num); ># 190 "./tm-preds.h" >extern unsigned char insn_extra_memory_constraint (enum constraint_num); > > >extern unsigned char insn_extra_address_constraint (enum constraint_num); ># 6 "./tm_p.h" 2 ># 85 "../../gcc/combine.c" 2 > ># 1 "../../gcc/regs.h" 1 ># 26 "../../gcc/regs.h" ># 1 "../../gcc/hard-reg-set.h" 1 ># 42 "../../gcc/hard-reg-set.h" >typedef unsigned long HARD_REG_ELT_TYPE; ># 53 "../../gcc/hard-reg-set.h" >typedef HARD_REG_ELT_TYPE HARD_REG_SET[((114 + (8 * 4) - 1) / (8 * 4))]; > > > > > > >struct hard_reg_set_container >{ > HARD_REG_SET set; >}; ># 361 "../../gcc/hard-reg-set.h" >static __inline__ unsigned char >hard_reg_set_subset_p (const HARD_REG_SET x, const HARD_REG_SET y) >{ > return ((x[0] & ~y[0]) == 0 > && (x[1] & ~y[1]) == 0 > && (x[2] & ~y[2]) == 0 > && (x[3] & ~y[3]) == 0); >} > >static __inline__ unsigned char >hard_reg_set_equal_p (const HARD_REG_SET x, const HARD_REG_SET y) >{ > return x[0] == y[0] && x[1] == y[1] && x[2] == y[2] && x[3] == y[3]; >} > >static __inline__ unsigned char >hard_reg_set_intersect_p (const HARD_REG_SET x, const HARD_REG_SET y) >{ > return ((x[0] & y[0]) != 0 > || (x[1] & y[1]) != 0 > || (x[2] & y[2]) != 0 > || (x[3] & y[3]) != 0); >} > >static __inline__ unsigned char >hard_reg_set_empty_p (const HARD_REG_SET x) >{ > return x[0] == 0 && x[1] == 0 && x[2] == 0 && x[3] == 0; >} ># 492 "../../gcc/hard-reg-set.h" >typedef struct >{ > > HARD_REG_ELT_TYPE *pelt; > > > unsigned short length; > > > unsigned short word_no; > > > > > HARD_REG_ELT_TYPE bits; >} hard_reg_set_iterator; > > > > > >static __inline__ void >hard_reg_set_iter_init (hard_reg_set_iterator *iter, HARD_REG_SET set, > unsigned min, unsigned *regno) >{ > > iter->pelt = set; > iter->length = ((114 + (8 * 4) - 1) / (8 * 4)); > > > > > iter->word_no = min / ((unsigned) (8 * 4)); > if (iter->word_no < iter->length) > { > iter->bits = iter->pelt[iter->word_no]; > iter->bits >>= min % ((unsigned) (8 * 4)); > > > min += !iter->bits; > } > *regno = min; >} > >static __inline__ unsigned char >hard_reg_set_iter_set (hard_reg_set_iterator *iter, unsigned *regno) >{ > while (1) > { > > if (iter->word_no >= iter->length) > return 0; > > if (iter->bits) > { > > while (!(iter->bits & 1)) > { > iter->bits >>= 1; > *regno += 1; > } > return (*regno < 114); > } > > > *regno = (*regno + ((unsigned) (8 * 4)) - 1); > *regno -= *regno % ((unsigned) (8 * 4)); > > > while (++iter->word_no < iter->length) > { > iter->bits = iter->pelt[iter->word_no]; > if (iter->bits) > break; > *regno += ((unsigned) (8 * 4)); > } > } >} > >static __inline__ void >hard_reg_set_iter_next (hard_reg_set_iterator *iter, unsigned *regno) >{ > iter->bits >>= 1; > *regno += 1; >} ># 591 "../../gcc/hard-reg-set.h" >extern char global_regs[114]; > >struct target_hard_regs { > > HARD_REG_SET x_accessible_reg_set; > > > > HARD_REG_SET x_operand_reg_set; > > > > > > char x_fixed_regs[114]; > > > HARD_REG_SET x_fixed_reg_set; > > > > > > char x_call_used_regs[114]; > > char x_call_really_used_regs[114]; > > > HARD_REG_SET x_call_used_reg_set; > > > > > > HARD_REG_SET x_call_fixed_reg_set; > > > > > > > > HARD_REG_SET x_regs_invalidated_by_call; > > > > HARD_REG_SET x_no_caller_save_reg_set; > > > int x_reg_alloc_order[114]; > > > int x_inv_reg_alloc_order[114]; > > > HARD_REG_SET x_reg_class_contents[(int) LIM_REG_CLASSES]; > > > > unsigned char x_class_only_fixed_regs[(int) LIM_REG_CLASSES]; > > > unsigned int x_reg_class_size[(int) LIM_REG_CLASSES]; > > > enum reg_class x_reg_class_subclasses[(int) LIM_REG_CLASSES][(int) LIM_REG_CLASSES]; > > > > enum reg_class x_reg_class_subunion[(int) LIM_REG_CLASSES][(int) LIM_REG_CLASSES]; > > > > enum reg_class x_reg_class_superunion[(int) LIM_REG_CLASSES][(int) LIM_REG_CLASSES]; > > > const char *x_reg_names[114]; >}; > >extern struct target_hard_regs default_target_hard_regs; ># 718 "../../gcc/hard-reg-set.h" >extern const char * reg_class_names[]; ># 27 "../../gcc/regs.h" 2 ># 41 "../../gcc/regs.h" >extern int max_regno; ># 63 "../../gcc/regs.h" >struct regstat_n_sets_and_refs_t >{ > int sets; > int refs; >}; > >extern struct regstat_n_sets_and_refs_t *regstat_n_sets_and_refs; > > >static __inline__ int >REG_N_REFS(int regno) >{ > return regstat_n_sets_and_refs[regno].refs; >} > > > > > > >static __inline__ int >REG_N_SETS (int regno) >{ > return regstat_n_sets_and_refs[regno].sets; >} > > > > > > > >extern void regstat_init_n_sets_and_refs (void); >extern void regstat_free_n_sets_and_refs (void); >extern void regstat_compute_ri (void); >extern void regstat_free_ri (void); >extern bitmap regstat_get_setjmp_crosses (void); >extern void regstat_compute_calls_crossed (void); >extern void regstat_free_calls_crossed (void); > > > > > >struct reg_info_t >{ > int freq; > int deaths; > int live_length; > int calls_crossed; > int freq_calls_crossed; > int throw_calls_crossed; > int basic_block; >}; > >extern struct reg_info_t *reg_info_p; > > >extern size_t reg_info_p_size; ># 215 "../../gcc/regs.h" >extern short *reg_renumber; > > > > >extern int caller_save_needed; ># 242 "../../gcc/regs.h" >typedef unsigned short move_table[(int) LIM_REG_CLASSES]; > > >struct target_regs { > > > unsigned char x_hard_regno_nregs[114][MAX_MACHINE_MODE]; > > > > > > enum machine_mode x_reg_raw_mode[114]; > > > > unsigned char x_have_regs_of_mode[MAX_MACHINE_MODE]; > > > char x_contains_reg_of_mode[(int) LIM_REG_CLASSES][MAX_MACHINE_MODE]; > > > > move_table *x_move_cost[MAX_MACHINE_MODE]; > > > > move_table *x_may_move_in_cost[MAX_MACHINE_MODE]; > > > > move_table *x_may_move_out_cost[MAX_MACHINE_MODE]; > > > int x_last_mode_for_init_move_cost; > > > > > char x_direct_load[NUM_MACHINE_MODES]; > char x_direct_store[NUM_MACHINE_MODES]; > > > unsigned char x_float_extend_from_mem[NUM_MACHINE_MODES][NUM_MACHINE_MODES]; >}; > >extern struct target_regs default_target_regs; ># 319 "../../gcc/regs.h" >static __inline__ unsigned int >end_hard_regno (enum machine_mode mode, unsigned int regno) >{ > return regno + ((&default_target_regs)->x_hard_regno_nregs)[regno][(int) mode]; >} ># 336 "../../gcc/regs.h" >static __inline__ void >add_to_hard_reg_set (HARD_REG_SET *regs, enum machine_mode mode, > unsigned int regno) >{ > unsigned int end_regno; > > end_regno = end_hard_regno (mode, regno); > do > ((*regs)[(regno) / ((unsigned) (8 * 4))] |= ((HARD_REG_ELT_TYPE) (1)) << ((regno) % ((unsigned) (8 * 4)))); > while (++regno < end_regno); >} > > > >static __inline__ void >remove_from_hard_reg_set (HARD_REG_SET *regs, enum machine_mode mode, > unsigned int regno) >{ > unsigned int end_regno; > > end_regno = end_hard_regno (mode, regno); > do > ((*regs)[(regno) / ((unsigned) (8 * 4))] &= ~(((HARD_REG_ELT_TYPE) (1)) << ((regno) % ((unsigned) (8 * 4))))); > while (++regno < end_regno); >} > > > >static __inline__ unsigned char >in_hard_reg_set_p (const HARD_REG_SET regs, enum machine_mode mode, > unsigned int regno) >{ > unsigned int end_regno; > > if (!(!!((regs)[(regno) / ((unsigned) (8 * 4))] & (((HARD_REG_ELT_TYPE) (1)) << ((regno) % ((unsigned) (8 * 4))))))) > return 0; > > end_regno = end_hard_regno (mode, regno); > while (++regno < end_regno) > if (!(!!((regs)[(regno) / ((unsigned) (8 * 4))] & (((HARD_REG_ELT_TYPE) (1)) << ((regno) % ((unsigned) (8 * 4))))))) > return 0; > > return 1; >} > > > >static __inline__ unsigned char >overlaps_hard_reg_set_p (const HARD_REG_SET regs, enum machine_mode mode, > unsigned int regno) >{ > unsigned int end_regno; > > if ((!!((regs)[(regno) / ((unsigned) (8 * 4))] & (((HARD_REG_ELT_TYPE) (1)) << ((regno) % ((unsigned) (8 * 4))))))) > return 1; > > end_regno = end_hard_regno (mode, regno); > while (++regno < end_regno) > if ((!!((regs)[(regno) / ((unsigned) (8 * 4))] & (((HARD_REG_ELT_TYPE) (1)) << ((regno) % ((unsigned) (8 * 4))))))) > return 1; > > return 0; >} > > > > >static __inline__ void >add_range_to_hard_reg_set (HARD_REG_SET *regs, unsigned int regno, > int nregs) >{ > while (nregs-- > 0) > ((*regs)[(regno + nregs) / ((unsigned) (8 * 4))] |= ((HARD_REG_ELT_TYPE) (1)) << ((regno + nregs) % ((unsigned) (8 * 4)))); >} > > > >static __inline__ void >remove_range_from_hard_reg_set (HARD_REG_SET *regs, unsigned int regno, > int nregs) >{ > while (nregs-- > 0) > ((*regs)[(regno + nregs) / ((unsigned) (8 * 4))] &= ~(((HARD_REG_ELT_TYPE) (1)) << ((regno + nregs) % ((unsigned) (8 * 4))))); >} > > > >static __inline__ unsigned char >range_overlaps_hard_reg_set_p (const HARD_REG_SET set, unsigned regno, > int nregs) >{ > while (nregs-- > 0) > if ((!!((set)[(regno + nregs) / ((unsigned) (8 * 4))] & (((HARD_REG_ELT_TYPE) (1)) << ((regno + nregs) % ((unsigned) (8 * 4))))))) > return 1; > return 0; >} > > > >static __inline__ unsigned char >range_in_hard_reg_set_p (const HARD_REG_SET set, unsigned regno, int nregs) >{ > while (nregs-- > 0) > if (!(!!((set)[(regno + nregs) / ((unsigned) (8 * 4))] & (((HARD_REG_ELT_TYPE) (1)) << ((regno + nregs) % ((unsigned) (8 * 4))))))) > return 0; > return 1; >} ># 87 "../../gcc/combine.c" 2 > ># 1 "../../gcc/basic-block.h" 1 ># 24 "../../gcc/basic-block.h" ># 1 "../../gcc/predict.h" 1 ># 25 "../../gcc/predict.h" >enum br_predictor >{ ># 1 "../../gcc/predict.def" 1 ># 38 "../../gcc/predict.def" >PRED_COMBINED, > > >PRED_DS_THEORY, > > > >PRED_FIRST_MATCH, > > >PRED_NO_PREDICTION, > > >PRED_UNCONDITIONAL, > > > > > >PRED_LOOP_ITERATIONS, > > > >PRED_BUILTIN_EXPECT, > > > >PRED_LOOP_ITERATIONS_GUESSED, > > > >PRED_CONTINUE, > > >PRED_NORETURN, > > > >PRED_COLD_FUNCTION, > > > >PRED_LOOP_BRANCH, > > > >PRED_LOOP_EXIT, > > > >PRED_POINTER, >PRED_TREE_POINTER, > > >PRED_OPCODE_POSITIVE, >PRED_OPCODE_NONEQUAL, >PRED_FPOPCODE, >PRED_TREE_OPCODE_POSITIVE, >PRED_TREE_OPCODE_NONEQUAL, >PRED_TREE_FPOPCODE, > > >PRED_CALL, > > >PRED_TREE_EARLY_RETURN, > > >PRED_GOTO, > > >PRED_CONST_RETURN, > > >PRED_NEGATIVE_RETURN, > > >PRED_NULL_RETURN, > > >PRED_MUDFLAP, ># 28 "../../gcc/predict.h" 2 > > > END_PREDICTORS >}; > >enum prediction >{ > NOT_TAKEN, > TAKEN >}; > >extern void predict_insn_def (rtx, enum br_predictor, enum prediction); >extern int counts_to_freqs (void); >extern void estimate_bb_frequencies (void); >extern const char *predictor_name (enum br_predictor); >extern tree build_predict_expr (enum br_predictor, enum prediction); >extern void tree_estimate_probability (void); >extern void compute_function_frequency (void); >extern void rebuild_frequencies (void); ># 25 "../../gcc/basic-block.h" 2 > ># 1 "../../gcc/function.h" 1 ># 27 "../../gcc/function.h" ># 1 "../../gcc/vecprim.h" 1 ># 23 "../../gcc/vecprim.h" >static __inline__ void VEC_char_must_be_integral_type (void) { (void)~(char)0; } typedef struct VEC_char_base { struct vec_prefix prefix; char vec[1]; } VEC_char_base; typedef struct VEC_char_none { VEC_char_base base; } VEC_char_none; static __inline__ unsigned VEC_char_base_length (const VEC_char_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ char VEC_char_base_last (const VEC_char_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ char VEC_char_base_index (const VEC_char_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_char_base_iterate (const VEC_char_base *vec_, unsigned ix_, char *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (char) 0; return 0; } } static __inline__ size_t VEC_char_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_char_base, vec) + alloc_ * sizeof(char); } static __inline__ void VEC_char_base_embedded_init (VEC_char_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_char_base_space (VEC_char_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_char_base_splice (VEC_char_base *dst_, VEC_char_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (char)); dst_->prefix.num += len_; } } static __inline__ char *VEC_char_base_quick_push (VEC_char_base *vec_, char obj_ ) { char *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ char VEC_char_base_pop (VEC_char_base *vec_ ) { char obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_char_base_truncate (VEC_char_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ char VEC_char_base_replace (VEC_char_base *vec_, unsigned ix_, char obj_ ) { char old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ char *VEC_char_base_quick_insert (VEC_char_base *vec_, unsigned ix_, char obj_ ) { char *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (char)); *slot_ = obj_; return slot_; } static __inline__ char VEC_char_base_ordered_remove (VEC_char_base *vec_, unsigned ix_ ) { char *slot_; char obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (char)); return obj_; } static __inline__ char VEC_char_base_unordered_remove (VEC_char_base *vec_, unsigned ix_ ) { char *slot_; char obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_char_base_block_remove (VEC_char_base *vec_, unsigned ix_, unsigned len_ ) { char *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (char)); } static __inline__ char *VEC_char_base_address (VEC_char_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_char_base_lower_bound (VEC_char_base *vec_, const char obj_, unsigned char (*lessthan_)(const char, const char) ) { unsigned int len_ = VEC_char_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { char middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_char_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_char_heap { VEC_char_base base; } VEC_char_heap; static __inline__ VEC_char_heap *VEC_char_heap_alloc (int alloc_ ) { return (VEC_char_heap *) vec_heap_o_reserve_exact (((void *)0), alloc_, __builtin_offsetof (VEC_char_heap, base.vec), sizeof (char) ); } static __inline__ VEC_char_heap *VEC_char_heap_copy (VEC_char_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_char_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_char_heap *)(vec_heap_o_reserve_exact (((void *)0), len_, __builtin_offsetof (VEC_char_heap, base.vec), sizeof (char) )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (char) * len_); } return new_vec_; } static __inline__ void VEC_char_heap_free (VEC_char_heap **vec_) { if (*vec_) (free) (*vec_); *vec_ = ((void *)0); } static __inline__ int VEC_char_heap_reserve (VEC_char_heap **vec_, int alloc_ ) { int extend = !VEC_char_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_char_heap *) vec_heap_o_reserve (*vec_, alloc_, __builtin_offsetof (VEC_char_heap, base.vec), sizeof (char) ); return extend; } static __inline__ int VEC_char_heap_reserve_exact (VEC_char_heap **vec_, int alloc_ ) { int extend = !VEC_char_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_char_heap *) vec_heap_o_reserve_exact (*vec_, alloc_, __builtin_offsetof (VEC_char_heap, base.vec), sizeof (char) ); return extend; } static __inline__ void VEC_char_heap_safe_grow (VEC_char_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_char_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_char_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_char_heap_safe_grow_cleared (VEC_char_heap **vec_, int size_ ) { int oldsize = VEC_char_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_char_heap_safe_grow (vec_, size_ ); memset (&(VEC_char_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (char) * (size_ - oldsize)); } static __inline__ void VEC_char_heap_safe_splice (VEC_char_heap **dst_, VEC_char_base *src_ ) { if (src_) { VEC_char_heap_reserve_exact (dst_, src_->prefix.num ); VEC_char_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ char *VEC_char_heap_safe_push (VEC_char_heap **vec_, const char obj_ ) { VEC_char_heap_reserve (vec_, 1 ); return VEC_char_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ char *VEC_char_heap_safe_insert (VEC_char_heap **vec_, unsigned ix_, const char obj_ ) { VEC_char_heap_reserve (vec_, 1 ); return VEC_char_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; > >typedef unsigned char uchar; >static __inline__ void VEC_uchar_must_be_integral_type (void) { (void)~(uchar)0; } typedef struct VEC_uchar_base { struct vec_prefix prefix; uchar vec[1]; } VEC_uchar_base; typedef struct VEC_uchar_none { VEC_uchar_base base; } VEC_uchar_none; static __inline__ unsigned VEC_uchar_base_length (const VEC_uchar_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ uchar VEC_uchar_base_last (const VEC_uchar_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ uchar VEC_uchar_base_index (const VEC_uchar_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_uchar_base_iterate (const VEC_uchar_base *vec_, unsigned ix_, uchar *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (uchar) 0; return 0; } } static __inline__ size_t VEC_uchar_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_uchar_base, vec) + alloc_ * sizeof(uchar); } static __inline__ void VEC_uchar_base_embedded_init (VEC_uchar_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_uchar_base_space (VEC_uchar_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_uchar_base_splice (VEC_uchar_base *dst_, VEC_uchar_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (uchar)); dst_->prefix.num += len_; } } static __inline__ uchar *VEC_uchar_base_quick_push (VEC_uchar_base *vec_, uchar obj_ ) { uchar *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ uchar VEC_uchar_base_pop (VEC_uchar_base *vec_ ) { uchar obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_uchar_base_truncate (VEC_uchar_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ uchar VEC_uchar_base_replace (VEC_uchar_base *vec_, unsigned ix_, uchar obj_ ) { uchar old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ uchar *VEC_uchar_base_quick_insert (VEC_uchar_base *vec_, unsigned ix_, uchar obj_ ) { uchar *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (uchar)); *slot_ = obj_; return slot_; } static __inline__ uchar VEC_uchar_base_ordered_remove (VEC_uchar_base *vec_, unsigned ix_ ) { uchar *slot_; uchar obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (uchar)); return obj_; } static __inline__ uchar VEC_uchar_base_unordered_remove (VEC_uchar_base *vec_, unsigned ix_ ) { uchar *slot_; uchar obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_uchar_base_block_remove (VEC_uchar_base *vec_, unsigned ix_, unsigned len_ ) { uchar *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (uchar)); } static __inline__ uchar *VEC_uchar_base_address (VEC_uchar_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_uchar_base_lower_bound (VEC_uchar_base *vec_, const uchar obj_, unsigned char (*lessthan_)(const uchar, const uchar) ) { unsigned int len_ = VEC_uchar_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { uchar middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_uchar_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_uchar_heap { VEC_uchar_base base; } VEC_uchar_heap; static __inline__ VEC_uchar_heap *VEC_uchar_heap_alloc (int alloc_ ) { return (VEC_uchar_heap *) vec_heap_o_reserve_exact (((void *)0), alloc_, __builtin_offsetof (VEC_uchar_heap, base.vec), sizeof (uchar) ); } static __inline__ VEC_uchar_heap *VEC_uchar_heap_copy (VEC_uchar_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_uchar_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_uchar_heap *)(vec_heap_o_reserve_exact (((void *)0), len_, __builtin_offsetof (VEC_uchar_heap, base.vec), sizeof (uchar) )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (uchar) * len_); } return new_vec_; } static __inline__ void VEC_uchar_heap_free (VEC_uchar_heap **vec_) { if (*vec_) (free) (*vec_); *vec_ = ((void *)0); } static __inline__ int VEC_uchar_heap_reserve (VEC_uchar_heap **vec_, int alloc_ ) { int extend = !VEC_uchar_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_uchar_heap *) vec_heap_o_reserve (*vec_, alloc_, __builtin_offsetof (VEC_uchar_heap, base.vec), sizeof (uchar) ); return extend; } static __inline__ int VEC_uchar_heap_reserve_exact (VEC_uchar_heap **vec_, int alloc_ ) { int extend = !VEC_uchar_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_uchar_heap *) vec_heap_o_reserve_exact (*vec_, alloc_, __builtin_offsetof (VEC_uchar_heap, base.vec), sizeof (uchar) ); return extend; } static __inline__ void VEC_uchar_heap_safe_grow (VEC_uchar_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_uchar_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_uchar_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_uchar_heap_safe_grow_cleared (VEC_uchar_heap **vec_, int size_ ) { int oldsize = VEC_uchar_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_uchar_heap_safe_grow (vec_, size_ ); memset (&(VEC_uchar_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (uchar) * (size_ - oldsize)); } static __inline__ void VEC_uchar_heap_safe_splice (VEC_uchar_heap **dst_, VEC_uchar_base *src_ ) { if (src_) { VEC_uchar_heap_reserve_exact (dst_, src_->prefix.num ); VEC_uchar_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ uchar *VEC_uchar_heap_safe_push (VEC_uchar_heap **vec_, const uchar obj_ ) { VEC_uchar_heap_reserve (vec_, 1 ); return VEC_uchar_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ uchar *VEC_uchar_heap_safe_insert (VEC_uchar_heap **vec_, unsigned ix_, const uchar obj_ ) { VEC_uchar_heap_reserve (vec_, 1 ); return VEC_uchar_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; >typedef struct VEC_uchar_gc { VEC_uchar_base base; } VEC_uchar_gc; static __inline__ VEC_uchar_gc *VEC_uchar_gc_alloc (int alloc_ ) { return (VEC_uchar_gc *) vec_gc_o_reserve_exact (((void *)0), alloc_, __builtin_offsetof (VEC_uchar_gc, base.vec), sizeof (uchar) ); } static __inline__ VEC_uchar_gc *VEC_uchar_gc_copy (VEC_uchar_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_uchar_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_uchar_gc *)(vec_gc_o_reserve_exact (((void *)0), len_, __builtin_offsetof (VEC_uchar_gc, base.vec), sizeof (uchar) )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (uchar) * len_); } return new_vec_; } static __inline__ void VEC_uchar_gc_free (VEC_uchar_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ int VEC_uchar_gc_reserve (VEC_uchar_gc **vec_, int alloc_ ) { int extend = !VEC_uchar_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_uchar_gc *) vec_gc_o_reserve (*vec_, alloc_, __builtin_offsetof (VEC_uchar_gc, base.vec), sizeof (uchar) ); return extend; } static __inline__ int VEC_uchar_gc_reserve_exact (VEC_uchar_gc **vec_, int alloc_ ) { int extend = !VEC_uchar_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_uchar_gc *) vec_gc_o_reserve_exact (*vec_, alloc_, __builtin_offsetof (VEC_uchar_gc, base.vec), sizeof (uchar) ); return extend; } static __inline__ void VEC_uchar_gc_safe_grow (VEC_uchar_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_uchar_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_uchar_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_uchar_gc_safe_grow_cleared (VEC_uchar_gc **vec_, int size_ ) { int oldsize = VEC_uchar_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_uchar_gc_safe_grow (vec_, size_ ); memset (&(VEC_uchar_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (uchar) * (size_ - oldsize)); } static __inline__ void VEC_uchar_gc_safe_splice (VEC_uchar_gc **dst_, VEC_uchar_base *src_ ) { if (src_) { VEC_uchar_gc_reserve_exact (dst_, src_->prefix.num ); VEC_uchar_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ uchar *VEC_uchar_gc_safe_push (VEC_uchar_gc **vec_, const uchar obj_ ) { VEC_uchar_gc_reserve (vec_, 1 ); return VEC_uchar_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ uchar *VEC_uchar_gc_safe_insert (VEC_uchar_gc **vec_, unsigned ix_, const uchar obj_ ) { VEC_uchar_gc_reserve (vec_, 1 ); return VEC_uchar_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; > >static __inline__ void VEC_int_must_be_integral_type (void) { (void)~(int)0; } typedef struct VEC_int_base { struct vec_prefix prefix; int vec[1]; } VEC_int_base; typedef struct VEC_int_none { VEC_int_base base; } VEC_int_none; static __inline__ unsigned VEC_int_base_length (const VEC_int_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ int VEC_int_base_last (const VEC_int_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ int VEC_int_base_index (const VEC_int_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_int_base_iterate (const VEC_int_base *vec_, unsigned ix_, int *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (int) 0; return 0; } } static __inline__ size_t VEC_int_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_int_base, vec) + alloc_ * sizeof(int); } static __inline__ void VEC_int_base_embedded_init (VEC_int_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_int_base_space (VEC_int_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_int_base_splice (VEC_int_base *dst_, VEC_int_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (int)); dst_->prefix.num += len_; } } static __inline__ int *VEC_int_base_quick_push (VEC_int_base *vec_, int obj_ ) { int *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ int VEC_int_base_pop (VEC_int_base *vec_ ) { int obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_int_base_truncate (VEC_int_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ int VEC_int_base_replace (VEC_int_base *vec_, unsigned ix_, int obj_ ) { int old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ int *VEC_int_base_quick_insert (VEC_int_base *vec_, unsigned ix_, int obj_ ) { int *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (int)); *slot_ = obj_; return slot_; } static __inline__ int VEC_int_base_ordered_remove (VEC_int_base *vec_, unsigned ix_ ) { int *slot_; int obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (int)); return obj_; } static __inline__ int VEC_int_base_unordered_remove (VEC_int_base *vec_, unsigned ix_ ) { int *slot_; int obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_int_base_block_remove (VEC_int_base *vec_, unsigned ix_, unsigned len_ ) { int *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (int)); } static __inline__ int *VEC_int_base_address (VEC_int_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_int_base_lower_bound (VEC_int_base *vec_, const int obj_, unsigned char (*lessthan_)(const int, const int) ) { unsigned int len_ = VEC_int_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { int middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_int_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_int_heap { VEC_int_base base; } VEC_int_heap; static __inline__ VEC_int_heap *VEC_int_heap_alloc (int alloc_ ) { return (VEC_int_heap *) vec_heap_o_reserve_exact (((void *)0), alloc_, __builtin_offsetof (VEC_int_heap, base.vec), sizeof (int) ); } static __inline__ VEC_int_heap *VEC_int_heap_copy (VEC_int_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_int_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_int_heap *)(vec_heap_o_reserve_exact (((void *)0), len_, __builtin_offsetof (VEC_int_heap, base.vec), sizeof (int) )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (int) * len_); } return new_vec_; } static __inline__ void VEC_int_heap_free (VEC_int_heap **vec_) { if (*vec_) (free) (*vec_); *vec_ = ((void *)0); } static __inline__ int VEC_int_heap_reserve (VEC_int_heap **vec_, int alloc_ ) { int extend = !VEC_int_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_int_heap *) vec_heap_o_reserve (*vec_, alloc_, __builtin_offsetof (VEC_int_heap, base.vec), sizeof (int) ); return extend; } static __inline__ int VEC_int_heap_reserve_exact (VEC_int_heap **vec_, int alloc_ ) { int extend = !VEC_int_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_int_heap *) vec_heap_o_reserve_exact (*vec_, alloc_, __builtin_offsetof (VEC_int_heap, base.vec), sizeof (int) ); return extend; } static __inline__ void VEC_int_heap_safe_grow (VEC_int_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_int_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_int_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_int_heap_safe_grow_cleared (VEC_int_heap **vec_, int size_ ) { int oldsize = VEC_int_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_int_heap_safe_grow (vec_, size_ ); memset (&(VEC_int_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (int) * (size_ - oldsize)); } static __inline__ void VEC_int_heap_safe_splice (VEC_int_heap **dst_, VEC_int_base *src_ ) { if (src_) { VEC_int_heap_reserve_exact (dst_, src_->prefix.num ); VEC_int_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ int *VEC_int_heap_safe_push (VEC_int_heap **vec_, const int obj_ ) { VEC_int_heap_reserve (vec_, 1 ); return VEC_int_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ int *VEC_int_heap_safe_insert (VEC_int_heap **vec_, unsigned ix_, const int obj_ ) { VEC_int_heap_reserve (vec_, 1 ); return VEC_int_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; > >static __inline__ void VEC_unsigned_must_be_integral_type (void) { (void)~(unsigned)0; } typedef struct VEC_unsigned_base { struct vec_prefix prefix; unsigned vec[1]; } VEC_unsigned_base; typedef struct VEC_unsigned_none { VEC_unsigned_base base; } VEC_unsigned_none; static __inline__ unsigned VEC_unsigned_base_length (const VEC_unsigned_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ unsigned VEC_unsigned_base_last (const VEC_unsigned_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ unsigned VEC_unsigned_base_index (const VEC_unsigned_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_unsigned_base_iterate (const VEC_unsigned_base *vec_, unsigned ix_, unsigned *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (unsigned) 0; return 0; } } static __inline__ size_t VEC_unsigned_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_unsigned_base, vec) + alloc_ * sizeof(unsigned); } static __inline__ void VEC_unsigned_base_embedded_init (VEC_unsigned_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_unsigned_base_space (VEC_unsigned_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_unsigned_base_splice (VEC_unsigned_base *dst_, VEC_unsigned_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (unsigned)); dst_->prefix.num += len_; } } static __inline__ unsigned *VEC_unsigned_base_quick_push (VEC_unsigned_base *vec_, unsigned obj_ ) { unsigned *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ unsigned VEC_unsigned_base_pop (VEC_unsigned_base *vec_ ) { unsigned obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_unsigned_base_truncate (VEC_unsigned_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ unsigned VEC_unsigned_base_replace (VEC_unsigned_base *vec_, unsigned ix_, unsigned obj_ ) { unsigned old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ unsigned *VEC_unsigned_base_quick_insert (VEC_unsigned_base *vec_, unsigned ix_, unsigned obj_ ) { unsigned *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (unsigned)); *slot_ = obj_; return slot_; } static __inline__ unsigned VEC_unsigned_base_ordered_remove (VEC_unsigned_base *vec_, unsigned ix_ ) { unsigned *slot_; unsigned obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (unsigned)); return obj_; } static __inline__ unsigned VEC_unsigned_base_unordered_remove (VEC_unsigned_base *vec_, unsigned ix_ ) { unsigned *slot_; unsigned obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_unsigned_base_block_remove (VEC_unsigned_base *vec_, unsigned ix_, unsigned len_ ) { unsigned *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (unsigned)); } static __inline__ unsigned *VEC_unsigned_base_address (VEC_unsigned_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_unsigned_base_lower_bound (VEC_unsigned_base *vec_, const unsigned obj_, unsigned char (*lessthan_)(const unsigned, const unsigned) ) { unsigned int len_ = VEC_unsigned_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { unsigned middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_unsigned_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_unsigned_heap { VEC_unsigned_base base; } VEC_unsigned_heap; static __inline__ VEC_unsigned_heap *VEC_unsigned_heap_alloc (int alloc_ ) { return (VEC_unsigned_heap *) vec_heap_o_reserve_exact (((void *)0), alloc_, __builtin_offsetof (VEC_unsigned_heap, base.vec), sizeof (unsigned) ); } static __inline__ VEC_unsigned_heap *VEC_unsigned_heap_copy (VEC_unsigned_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_unsigned_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_unsigned_heap *)(vec_heap_o_reserve_exact (((void *)0), len_, __builtin_offsetof (VEC_unsigned_heap, base.vec), sizeof (unsigned) )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (unsigned) * len_); } return new_vec_; } static __inline__ void VEC_unsigned_heap_free (VEC_unsigned_heap **vec_) { if (*vec_) (free) (*vec_); *vec_ = ((void *)0); } static __inline__ int VEC_unsigned_heap_reserve (VEC_unsigned_heap **vec_, int alloc_ ) { int extend = !VEC_unsigned_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_unsigned_heap *) vec_heap_o_reserve (*vec_, alloc_, __builtin_offsetof (VEC_unsigned_heap, base.vec), sizeof (unsigned) ); return extend; } static __inline__ int VEC_unsigned_heap_reserve_exact (VEC_unsigned_heap **vec_, int alloc_ ) { int extend = !VEC_unsigned_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_unsigned_heap *) vec_heap_o_reserve_exact (*vec_, alloc_, __builtin_offsetof (VEC_unsigned_heap, base.vec), sizeof (unsigned) ); return extend; } static __inline__ void VEC_unsigned_heap_safe_grow (VEC_unsigned_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_unsigned_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_unsigned_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_unsigned_heap_safe_grow_cleared (VEC_unsigned_heap **vec_, int size_ ) { int oldsize = VEC_unsigned_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_unsigned_heap_safe_grow (vec_, size_ ); memset (&(VEC_unsigned_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (unsigned) * (size_ - oldsize)); } static __inline__ void VEC_unsigned_heap_safe_splice (VEC_unsigned_heap **dst_, VEC_unsigned_base *src_ ) { if (src_) { VEC_unsigned_heap_reserve_exact (dst_, src_->prefix.num ); VEC_unsigned_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ unsigned *VEC_unsigned_heap_safe_push (VEC_unsigned_heap **vec_, const unsigned obj_ ) { VEC_unsigned_heap_reserve (vec_, 1 ); return VEC_unsigned_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ unsigned *VEC_unsigned_heap_safe_insert (VEC_unsigned_heap **vec_, unsigned ix_, const unsigned obj_ ) { VEC_unsigned_heap_reserve (vec_, 1 ); return VEC_unsigned_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; ># 28 "../../gcc/function.h" 2 ># 36 "../../gcc/function.h" >struct sequence_stack { > > rtx first; > rtx last; > struct sequence_stack *next; >}; > >struct emit_status { > > > int x_reg_rtx_no; > > > int x_first_label_num; > > > > > > > rtx x_first_insn; > rtx x_last_insn; > > > > > > struct sequence_stack *sequence_stack; > > > > int x_cur_insn_uid; > > > > int x_cur_debug_insn_uid; > > > > location_t x_last_location; > > > > > > int regno_pointer_align_length; > > > > > unsigned char * regno_pointer_align; >}; ># 98 "../../gcc/function.h" >extern rtx * regno_reg_rtx; > > > > > > > >struct expr_status { > > > int x_pending_stack_adjust; ># 126 "../../gcc/function.h" > int x_inhibit_defer_pop; > > > > > > int x_stack_pointer_delta; > > > > > rtx x_saveregs_value; > > > rtx x_apply_args_value; > > > rtx x_forced_labels; >}; > >typedef struct call_site_record_d *call_site_record; >static __inline__ void VEC_call_site_record_must_be_pointer_type (void) { (void)((call_site_record)1 == (void *)1); } typedef struct VEC_call_site_record_base { struct vec_prefix prefix; call_site_record vec[1]; } VEC_call_site_record_base; typedef struct VEC_call_site_record_none { VEC_call_site_record_base base; } VEC_call_site_record_none; static __inline__ unsigned VEC_call_site_record_base_length (const VEC_call_site_record_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ call_site_record VEC_call_site_record_base_last (const VEC_call_site_record_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ call_site_record VEC_call_site_record_base_index (const VEC_call_site_record_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_call_site_record_base_iterate (const VEC_call_site_record_base *vec_, unsigned ix_, call_site_record *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (call_site_record) 0; return 0; } } static __inline__ size_t VEC_call_site_record_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_call_site_record_base, vec) + alloc_ * sizeof(call_site_record); } static __inline__ void VEC_call_site_record_base_embedded_init (VEC_call_site_record_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_call_site_record_base_space (VEC_call_site_record_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_call_site_record_base_splice (VEC_call_site_record_base *dst_, VEC_call_site_record_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (call_site_record)); dst_->prefix.num += len_; } } static __inline__ call_site_record *VEC_call_site_record_base_quick_push (VEC_call_site_record_base *vec_, call_site_record obj_ ) { call_site_record *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ call_site_record VEC_call_site_record_base_pop (VEC_call_site_record_base *vec_ ) { call_site_record obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_call_site_record_base_truncate (VEC_call_site_record_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ call_site_record VEC_call_site_record_base_replace (VEC_call_site_record_base *vec_, unsigned ix_, call_site_record obj_ ) { call_site_record old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ call_site_record *VEC_call_site_record_base_quick_insert (VEC_call_site_record_base *vec_, unsigned ix_, call_site_record obj_ ) { call_site_record *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (call_site_record)); *slot_ = obj_; return slot_; } static __inline__ call_site_record VEC_call_site_record_base_ordered_remove (VEC_call_site_record_base *vec_, unsigned ix_ ) { call_site_record *slot_; call_site_record obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (call_site_record)); return obj_; } static __inline__ call_site_record VEC_call_site_record_base_unordered_remove (VEC_call_site_record_base *vec_, unsigned ix_ ) { call_site_record *slot_; call_site_record obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_call_site_record_base_block_remove (VEC_call_site_record_base *vec_, unsigned ix_, unsigned len_ ) { call_site_record *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (call_site_record)); } static __inline__ call_site_record *VEC_call_site_record_base_address (VEC_call_site_record_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_call_site_record_base_lower_bound (VEC_call_site_record_base *vec_, const call_site_record obj_, unsigned char (*lessthan_)(const call_site_record, const call_site_record) ) { unsigned int len_ = VEC_call_site_record_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { call_site_record middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_call_site_record_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_call_site_record_gc { VEC_call_site_record_base base; } VEC_call_site_record_gc; static __inline__ VEC_call_site_record_gc *VEC_call_site_record_gc_alloc (int alloc_ ) { return (VEC_call_site_record_gc *) vec_gc_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_call_site_record_gc_free (VEC_call_site_record_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_call_site_record_gc *VEC_call_site_record_gc_copy (VEC_call_site_record_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_call_site_record_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_call_site_record_gc *)(vec_gc_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (call_site_record) * len_); } return new_vec_; } static __inline__ int VEC_call_site_record_gc_reserve (VEC_call_site_record_gc **vec_, int alloc_ ) { int extend = !VEC_call_site_record_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_call_site_record_gc *) vec_gc_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_call_site_record_gc_reserve_exact (VEC_call_site_record_gc **vec_, int alloc_ ) { int extend = !VEC_call_site_record_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_call_site_record_gc *) vec_gc_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_call_site_record_gc_safe_grow (VEC_call_site_record_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_call_site_record_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_call_site_record_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_call_site_record_gc_safe_grow_cleared (VEC_call_site_record_gc **vec_, int size_ ) { int oldsize = VEC_call_site_record_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_call_site_record_gc_safe_grow (vec_, size_ ); memset (&(VEC_call_site_record_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (call_site_record) * (size_ - oldsize)); } static __inline__ void VEC_call_site_record_gc_safe_splice (VEC_call_site_record_gc **dst_, VEC_call_site_record_base *src_ ) { if (src_) { VEC_call_site_record_gc_reserve_exact (dst_, src_->prefix.num ); VEC_call_site_record_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ call_site_record *VEC_call_site_record_gc_safe_push (VEC_call_site_record_gc **vec_, call_site_record obj_ ) { VEC_call_site_record_gc_reserve (vec_, 1 ); return VEC_call_site_record_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ call_site_record *VEC_call_site_record_gc_safe_insert (VEC_call_site_record_gc **vec_, unsigned ix_, call_site_record obj_ ) { VEC_call_site_record_gc_reserve (vec_, 1 ); return VEC_call_site_record_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; > > >struct rtl_eh { > rtx ehr_stackadj; > rtx ehr_handler; > rtx ehr_label; > > rtx sjlj_fc; > rtx sjlj_exit_after; > > VEC_uchar_gc *action_record_data; > > VEC_call_site_record_gc *call_site_record[2]; >}; ># 171 "../../gcc/function.h" >struct gimple_df; >struct temp_slot; >typedef struct temp_slot *temp_slot_p; >struct call_site_record_d; >struct dw_fde_struct; > >static __inline__ void VEC_temp_slot_p_must_be_pointer_type (void) { (void)((temp_slot_p)1 == (void *)1); } typedef struct VEC_temp_slot_p_base { struct vec_prefix prefix; temp_slot_p vec[1]; } VEC_temp_slot_p_base; typedef struct VEC_temp_slot_p_none { VEC_temp_slot_p_base base; } VEC_temp_slot_p_none; static __inline__ unsigned VEC_temp_slot_p_base_length (const VEC_temp_slot_p_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ temp_slot_p VEC_temp_slot_p_base_last (const VEC_temp_slot_p_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ temp_slot_p VEC_temp_slot_p_base_index (const VEC_temp_slot_p_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_temp_slot_p_base_iterate (const VEC_temp_slot_p_base *vec_, unsigned ix_, temp_slot_p *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (temp_slot_p) 0; return 0; } } static __inline__ size_t VEC_temp_slot_p_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_temp_slot_p_base, vec) + alloc_ * sizeof(temp_slot_p); } static __inline__ void VEC_temp_slot_p_base_embedded_init (VEC_temp_slot_p_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_temp_slot_p_base_space (VEC_temp_slot_p_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_temp_slot_p_base_splice (VEC_temp_slot_p_base *dst_, VEC_temp_slot_p_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (temp_slot_p)); dst_->prefix.num += len_; } } static __inline__ temp_slot_p *VEC_temp_slot_p_base_quick_push (VEC_temp_slot_p_base *vec_, temp_slot_p obj_ ) { temp_slot_p *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ temp_slot_p VEC_temp_slot_p_base_pop (VEC_temp_slot_p_base *vec_ ) { temp_slot_p obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_temp_slot_p_base_truncate (VEC_temp_slot_p_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ temp_slot_p VEC_temp_slot_p_base_replace (VEC_temp_slot_p_base *vec_, unsigned ix_, temp_slot_p obj_ ) { temp_slot_p old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ temp_slot_p *VEC_temp_slot_p_base_quick_insert (VEC_temp_slot_p_base *vec_, unsigned ix_, temp_slot_p obj_ ) { temp_slot_p *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (temp_slot_p)); *slot_ = obj_; return slot_; } static __inline__ temp_slot_p VEC_temp_slot_p_base_ordered_remove (VEC_temp_slot_p_base *vec_, unsigned ix_ ) { temp_slot_p *slot_; temp_slot_p obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (temp_slot_p)); return obj_; } static __inline__ temp_slot_p VEC_temp_slot_p_base_unordered_remove (VEC_temp_slot_p_base *vec_, unsigned ix_ ) { temp_slot_p *slot_; temp_slot_p obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_temp_slot_p_base_block_remove (VEC_temp_slot_p_base *vec_, unsigned ix_, unsigned len_ ) { temp_slot_p *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (temp_slot_p)); } static __inline__ temp_slot_p *VEC_temp_slot_p_base_address (VEC_temp_slot_p_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_temp_slot_p_base_lower_bound (VEC_temp_slot_p_base *vec_, const temp_slot_p obj_, unsigned char (*lessthan_)(const temp_slot_p, const temp_slot_p) ) { unsigned int len_ = VEC_temp_slot_p_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { temp_slot_p middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_temp_slot_p_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_temp_slot_p_gc { VEC_temp_slot_p_base base; } VEC_temp_slot_p_gc; static __inline__ VEC_temp_slot_p_gc *VEC_temp_slot_p_gc_alloc (int alloc_ ) { return (VEC_temp_slot_p_gc *) vec_gc_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_temp_slot_p_gc_free (VEC_temp_slot_p_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_temp_slot_p_gc *VEC_temp_slot_p_gc_copy (VEC_temp_slot_p_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_temp_slot_p_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_temp_slot_p_gc *)(vec_gc_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (temp_slot_p) * len_); } return new_vec_; } static __inline__ int VEC_temp_slot_p_gc_reserve (VEC_temp_slot_p_gc **vec_, int alloc_ ) { int extend = !VEC_temp_slot_p_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_temp_slot_p_gc *) vec_gc_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_temp_slot_p_gc_reserve_exact (VEC_temp_slot_p_gc **vec_, int alloc_ ) { int extend = !VEC_temp_slot_p_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_temp_slot_p_gc *) vec_gc_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_temp_slot_p_gc_safe_grow (VEC_temp_slot_p_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_temp_slot_p_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_temp_slot_p_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_temp_slot_p_gc_safe_grow_cleared (VEC_temp_slot_p_gc **vec_, int size_ ) { int oldsize = VEC_temp_slot_p_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_temp_slot_p_gc_safe_grow (vec_, size_ ); memset (&(VEC_temp_slot_p_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (temp_slot_p) * (size_ - oldsize)); } static __inline__ void VEC_temp_slot_p_gc_safe_splice (VEC_temp_slot_p_gc **dst_, VEC_temp_slot_p_base *src_ ) { if (src_) { VEC_temp_slot_p_gc_reserve_exact (dst_, src_->prefix.num ); VEC_temp_slot_p_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ temp_slot_p *VEC_temp_slot_p_gc_safe_push (VEC_temp_slot_p_gc **vec_, temp_slot_p obj_ ) { VEC_temp_slot_p_gc_reserve (vec_, 1 ); return VEC_temp_slot_p_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ temp_slot_p *VEC_temp_slot_p_gc_safe_insert (VEC_temp_slot_p_gc **vec_, unsigned ix_, temp_slot_p obj_ ) { VEC_temp_slot_p_gc_reserve (vec_, 1 ); return VEC_temp_slot_p_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; >struct ipa_opt_pass_d; >typedef struct ipa_opt_pass_d *ipa_opt_pass; > >static __inline__ void VEC_ipa_opt_pass_must_be_pointer_type (void) { (void)((ipa_opt_pass)1 == (void *)1); } typedef struct VEC_ipa_opt_pass_base { struct vec_prefix prefix; ipa_opt_pass vec[1]; } VEC_ipa_opt_pass_base; typedef struct VEC_ipa_opt_pass_none { VEC_ipa_opt_pass_base base; } VEC_ipa_opt_pass_none; static __inline__ unsigned VEC_ipa_opt_pass_base_length (const VEC_ipa_opt_pass_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ ipa_opt_pass VEC_ipa_opt_pass_base_last (const VEC_ipa_opt_pass_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ ipa_opt_pass VEC_ipa_opt_pass_base_index (const VEC_ipa_opt_pass_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_ipa_opt_pass_base_iterate (const VEC_ipa_opt_pass_base *vec_, unsigned ix_, ipa_opt_pass *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (ipa_opt_pass) 0; return 0; } } static __inline__ size_t VEC_ipa_opt_pass_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_ipa_opt_pass_base, vec) + alloc_ * sizeof(ipa_opt_pass); } static __inline__ void VEC_ipa_opt_pass_base_embedded_init (VEC_ipa_opt_pass_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_ipa_opt_pass_base_space (VEC_ipa_opt_pass_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_ipa_opt_pass_base_splice (VEC_ipa_opt_pass_base *dst_, VEC_ipa_opt_pass_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (ipa_opt_pass)); dst_->prefix.num += len_; } } static __inline__ ipa_opt_pass *VEC_ipa_opt_pass_base_quick_push (VEC_ipa_opt_pass_base *vec_, ipa_opt_pass obj_ ) { ipa_opt_pass *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ ipa_opt_pass VEC_ipa_opt_pass_base_pop (VEC_ipa_opt_pass_base *vec_ ) { ipa_opt_pass obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_ipa_opt_pass_base_truncate (VEC_ipa_opt_pass_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ ipa_opt_pass VEC_ipa_opt_pass_base_replace (VEC_ipa_opt_pass_base *vec_, unsigned ix_, ipa_opt_pass obj_ ) { ipa_opt_pass old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ ipa_opt_pass *VEC_ipa_opt_pass_base_quick_insert (VEC_ipa_opt_pass_base *vec_, unsigned ix_, ipa_opt_pass obj_ ) { ipa_opt_pass *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (ipa_opt_pass)); *slot_ = obj_; return slot_; } static __inline__ ipa_opt_pass VEC_ipa_opt_pass_base_ordered_remove (VEC_ipa_opt_pass_base *vec_, unsigned ix_ ) { ipa_opt_pass *slot_; ipa_opt_pass obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (ipa_opt_pass)); return obj_; } static __inline__ ipa_opt_pass VEC_ipa_opt_pass_base_unordered_remove (VEC_ipa_opt_pass_base *vec_, unsigned ix_ ) { ipa_opt_pass *slot_; ipa_opt_pass obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_ipa_opt_pass_base_block_remove (VEC_ipa_opt_pass_base *vec_, unsigned ix_, unsigned len_ ) { ipa_opt_pass *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (ipa_opt_pass)); } static __inline__ ipa_opt_pass *VEC_ipa_opt_pass_base_address (VEC_ipa_opt_pass_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_ipa_opt_pass_base_lower_bound (VEC_ipa_opt_pass_base *vec_, const ipa_opt_pass obj_, unsigned char (*lessthan_)(const ipa_opt_pass, const ipa_opt_pass) ) { unsigned int len_ = VEC_ipa_opt_pass_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { ipa_opt_pass middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_ipa_opt_pass_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_ipa_opt_pass_heap { VEC_ipa_opt_pass_base base; } VEC_ipa_opt_pass_heap; static __inline__ VEC_ipa_opt_pass_heap *VEC_ipa_opt_pass_heap_alloc (int alloc_ ) { return (VEC_ipa_opt_pass_heap *) vec_heap_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_ipa_opt_pass_heap_free (VEC_ipa_opt_pass_heap **vec_) { if (*vec_) (free) (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_ipa_opt_pass_heap *VEC_ipa_opt_pass_heap_copy (VEC_ipa_opt_pass_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_ipa_opt_pass_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_ipa_opt_pass_heap *)(vec_heap_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (ipa_opt_pass) * len_); } return new_vec_; } static __inline__ int VEC_ipa_opt_pass_heap_reserve (VEC_ipa_opt_pass_heap **vec_, int alloc_ ) { int extend = !VEC_ipa_opt_pass_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_ipa_opt_pass_heap *) vec_heap_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_ipa_opt_pass_heap_reserve_exact (VEC_ipa_opt_pass_heap **vec_, int alloc_ ) { int extend = !VEC_ipa_opt_pass_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_ipa_opt_pass_heap *) vec_heap_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_ipa_opt_pass_heap_safe_grow (VEC_ipa_opt_pass_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_ipa_opt_pass_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_ipa_opt_pass_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_ipa_opt_pass_heap_safe_grow_cleared (VEC_ipa_opt_pass_heap **vec_, int size_ ) { int oldsize = VEC_ipa_opt_pass_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_ipa_opt_pass_heap_safe_grow (vec_, size_ ); memset (&(VEC_ipa_opt_pass_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (ipa_opt_pass) * (size_ - oldsize)); } static __inline__ void VEC_ipa_opt_pass_heap_safe_splice (VEC_ipa_opt_pass_heap **dst_, VEC_ipa_opt_pass_base *src_ ) { if (src_) { VEC_ipa_opt_pass_heap_reserve_exact (dst_, src_->prefix.num ); VEC_ipa_opt_pass_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ ipa_opt_pass *VEC_ipa_opt_pass_heap_safe_push (VEC_ipa_opt_pass_heap **vec_, ipa_opt_pass obj_ ) { VEC_ipa_opt_pass_heap_reserve (vec_, 1 ); return VEC_ipa_opt_pass_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ ipa_opt_pass *VEC_ipa_opt_pass_heap_safe_insert (VEC_ipa_opt_pass_heap **vec_, unsigned ix_, ipa_opt_pass obj_ ) { VEC_ipa_opt_pass_heap_reserve (vec_, 1 ); return VEC_ipa_opt_pass_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; > >struct varasm_status { > > struct rtx_constant_pool *pool; > > > > unsigned int deferred_constants; >}; > > >struct incoming_args { > > > > int pops_args; > > > > > int size; > > > > > int pretend_args_size; > > > > rtx arg_offset_rtx; > > > > CUMULATIVE_ARGS info; > > > rtx internal_arg_pointer; >}; > > >struct function_subsections { > > > > > const char *hot_section_label; > const char *cold_section_label; > const char *hot_section_end_label; > const char *cold_section_end_label; >}; > > > > >struct frame_space >{ > struct frame_space *next; > > long long start; > long long length; >}; > > >struct rtl_data { > struct expr_status expr; > struct emit_status emit; > struct varasm_status varasm; > struct incoming_args args; > struct function_subsections subsections; > struct rtl_eh eh; > > > > > > int outgoing_args_size; > > > > > > rtx return_rtx; > > > > struct initial_value_struct *hard_reg_initial_vals; > > > > tree stack_protect_guard; > > > > rtx x_nonlocal_goto_handler_labels; > > > > > rtx x_return_label; > > > > > rtx x_naked_return_label; > > > > rtx x_stack_slot_list; > > > struct frame_space *frame_space_list; > > > rtx x_stack_check_probe_note; > > > > > > rtx x_arg_pointer_save_area; > > > rtx drap_reg; > > > > > long long x_frame_offset; > > > rtx x_parm_birth_insn; > > > VEC_temp_slot_p_gc *x_used_temp_slots; > > > struct temp_slot *x_avail_temp_slots; > > > int x_temp_slot_level; > > > > unsigned int stack_alignment_needed; > > > > unsigned int preferred_stack_boundary; > > > unsigned int parm_stack_boundary; > > > unsigned int max_used_stack_slot_alignment; ># 346 "../../gcc/function.h" > unsigned int stack_alignment_estimated; > > > > > > rtx epilogue_delay_list; > > > > unsigned char accesses_prior_frames; > > > unsigned char calls_eh_return; > > > > unsigned char saves_all_registers; > > > > unsigned char has_nonlocal_goto; > > > unsigned char has_asm_statement; > > > > > > > unsigned char all_throwers_are_sibcalls; > > > > unsigned char limit_stack; > > > unsigned char profile; > > > unsigned char uses_const_pool; > > > unsigned char uses_pic_offset_table; > > > unsigned char uses_eh_lsda; > > > unsigned char tail_call_emit; > > > unsigned char arg_pointer_save_area_init; > > > > unsigned char frame_pointer_needed; > > > unsigned char maybe_hot_insn_p; > > > > > > > unsigned char stack_realign_needed; > > > > > unsigned char stack_realign_tried; > > > > unsigned char need_drap; > > > > > unsigned char stack_realign_processed; > > > > unsigned char stack_realign_finalized; > > > unsigned char dbr_scheduled_p; > > > > > unsigned char nothrow; > > > unsigned char shrink_wrapped; > > > > > > HARD_REG_SET asm_clobbers; >}; ># 466 "../../gcc/function.h" >extern struct rtl_data x_rtl; > > > > > > >struct stack_usage >{ > > long long static_stack_size; > > > > long long dynamic_stack_size; > > > > int pushed_stack_size; > > > > unsigned int has_unbounded_dynamic_stack_size : 1; >}; ># 503 "../../gcc/function.h" >struct function { > struct eh_status *eh; > > > struct control_flow_graph *cfg; > > > struct gimple_seq_d *gimple_body; > > > struct gimple_df *gimple_df; > > > struct loops *x_current_loops; > > > struct stack_usage *su; > > > htab_t value_histograms; > > > > > tree decl; > > > > tree static_chain_decl; > > > > > tree nonlocal_goto_save_area; > > > VEC_tree_gc *local_decls; > > > > > struct machine_function * machine; > > > struct language_function * language; > > > htab_t used_types_hash; > > > > > struct dw_fde_struct *fde; > > > int last_stmt_uid; > > > int funcdef_no; > > > location_t function_start_locus; > > > location_t function_end_locus; > > > unsigned int curr_properties; > unsigned int last_verified; > > > > > const char * cannot_be_copied_reason; > > > > > > > unsigned int va_list_gpr_size : 8; > > > > unsigned int va_list_fpr_size : 8; > > > unsigned int calls_setjmp : 1; > > > > unsigned int calls_alloca : 1; > > > > unsigned int has_nonlocal_label : 1; > > > > > unsigned int cannot_be_copied_set : 1; > > > unsigned int stdarg : 1; > > unsigned int after_inlining : 1; > unsigned int always_inline_functions_inlined : 1; > > > > unsigned int can_throw_non_call_exceptions : 1; > > > > > > > unsigned int returns_struct : 1; > > > > unsigned int returns_pcc_struct : 1; > > > unsigned int after_tree_profile : 1; > > > > unsigned int has_local_explicit_reg_vars : 1; > > > > > > unsigned int is_thunk : 1; >}; > > > >static __inline__ void >add_local_decl (struct function *fun, tree d) >{ > (VEC_tree_gc_safe_push(&(fun->local_decls),d )); >} ># 657 "../../gcc/function.h" >extern struct function *cfun; > > > > > > > >extern int virtuals_instantiated; > > >extern int trampolines_created; > >struct types_used_by_vars_entry { > tree type; > tree var_decl; >}; > > > > > > >extern htab_t > types_used_by_vars_hash; > >hashval_t types_used_by_vars_do_hash (const void*); >int types_used_by_vars_eq (const void *, const void *); >void types_used_by_var_decl_insert (tree type, tree var_decl); > > > >extern VEC_tree_gc *types_used_by_cur_var_decl; > > > >extern void set_cfun (struct function *new_cfun); >extern void push_cfun (struct function *new_cfun); >extern void pop_cfun (void); >extern void instantiate_decl_rtl (rtx x); ># 708 "../../gcc/function.h" >extern void reorder_blocks (void); > > >extern void number_blocks (tree); > >extern void clear_block_marks (tree); >extern tree blocks_nreverse (tree); >extern tree block_chainon (tree, tree); > > > > >extern long long get_frame_size (void); > > > > >extern unsigned char frame_offset_overflow (long long, tree); > > > >extern struct machine_function * (*init_machine_status) (void); > > >extern void free_after_parsing (struct function *); >extern void free_after_compilation (struct function *); > >extern void init_varasm_status (void); > > >extern void diddle_return_value (void (*)(rtx, void*), void*); >extern void clobber_return_register (void); > > >extern rtx get_arg_pointer_save_area (void); > > >extern const char *current_function_name (void); > >extern void do_warn_unused_parameter (tree); > >extern unsigned char pass_by_reference (CUMULATIVE_ARGS *, enum machine_mode, > tree, unsigned char); >extern unsigned char reference_callee_copied (CUMULATIVE_ARGS *, enum machine_mode, > tree, unsigned char); > >extern void used_types_insert (tree); > >extern int get_next_funcdef_no (void); >extern int get_last_funcdef_no (void); > > >extern unsigned char requires_stack_frame_p (rtx, HARD_REG_SET, HARD_REG_SET); > > > >extern unsigned char optimize_function_for_size_p (struct function *); >extern unsigned char optimize_function_for_speed_p (struct function *); ># 27 "../../gcc/basic-block.h" 2 > > > > > > >typedef long long gcov_type; > > >struct edge_def { > > struct basic_block_def *src; > struct basic_block_def *dest; > > > union edge_def_insns { > gimple_seq g; > rtx r; > } insns; > > > void * aux; > > > tree goto_block; > location_t goto_locus; > > > > unsigned int dest_idx; > > int flags; > int probability; > gcov_type count; > >}; > >static __inline__ void VEC_edge_must_be_pointer_type (void) { (void)((edge)1 == (void *)1); } typedef struct VEC_edge_base { struct vec_prefix prefix; edge vec[1]; } VEC_edge_base; typedef struct VEC_edge_none { VEC_edge_base base; } VEC_edge_none; static __inline__ unsigned VEC_edge_base_length (const VEC_edge_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ edge VEC_edge_base_last (const VEC_edge_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ edge VEC_edge_base_index (const VEC_edge_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_edge_base_iterate (const VEC_edge_base *vec_, unsigned ix_, edge *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (edge) 0; return 0; } } static __inline__ size_t VEC_edge_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_edge_base, vec) + alloc_ * sizeof(edge); } static __inline__ void VEC_edge_base_embedded_init (VEC_edge_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_edge_base_space (VEC_edge_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_edge_base_splice (VEC_edge_base *dst_, VEC_edge_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (edge)); dst_->prefix.num += len_; } } static __inline__ edge *VEC_edge_base_quick_push (VEC_edge_base *vec_, edge obj_ ) { edge *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ edge VEC_edge_base_pop (VEC_edge_base *vec_ ) { edge obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_edge_base_truncate (VEC_edge_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ edge VEC_edge_base_replace (VEC_edge_base *vec_, unsigned ix_, edge obj_ ) { edge old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ edge *VEC_edge_base_quick_insert (VEC_edge_base *vec_, unsigned ix_, edge obj_ ) { edge *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (edge)); *slot_ = obj_; return slot_; } static __inline__ edge VEC_edge_base_ordered_remove (VEC_edge_base *vec_, unsigned ix_ ) { edge *slot_; edge obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (edge)); return obj_; } static __inline__ edge VEC_edge_base_unordered_remove (VEC_edge_base *vec_, unsigned ix_ ) { edge *slot_; edge obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_edge_base_block_remove (VEC_edge_base *vec_, unsigned ix_, unsigned len_ ) { edge *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (edge)); } static __inline__ edge *VEC_edge_base_address (VEC_edge_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_edge_base_lower_bound (VEC_edge_base *vec_, const edge obj_, unsigned char (*lessthan_)(const edge, const edge) ) { unsigned int len_ = VEC_edge_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { edge middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_edge_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_edge_gc { VEC_edge_base base; } VEC_edge_gc; static __inline__ VEC_edge_gc *VEC_edge_gc_alloc (int alloc_ ) { return (VEC_edge_gc *) vec_gc_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_edge_gc_free (VEC_edge_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_edge_gc *VEC_edge_gc_copy (VEC_edge_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_edge_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_edge_gc *)(vec_gc_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (edge) * len_); } return new_vec_; } static __inline__ int VEC_edge_gc_reserve (VEC_edge_gc **vec_, int alloc_ ) { int extend = !VEC_edge_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_edge_gc *) vec_gc_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_edge_gc_reserve_exact (VEC_edge_gc **vec_, int alloc_ ) { int extend = !VEC_edge_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_edge_gc *) vec_gc_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_edge_gc_safe_grow (VEC_edge_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_edge_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_edge_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_edge_gc_safe_grow_cleared (VEC_edge_gc **vec_, int size_ ) { int oldsize = VEC_edge_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_edge_gc_safe_grow (vec_, size_ ); memset (&(VEC_edge_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (edge) * (size_ - oldsize)); } static __inline__ void VEC_edge_gc_safe_splice (VEC_edge_gc **dst_, VEC_edge_base *src_ ) { if (src_) { VEC_edge_gc_reserve_exact (dst_, src_->prefix.num ); VEC_edge_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ edge *VEC_edge_gc_safe_push (VEC_edge_gc **vec_, edge obj_ ) { VEC_edge_gc_reserve (vec_, 1 ); return VEC_edge_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ edge *VEC_edge_gc_safe_insert (VEC_edge_gc **vec_, unsigned ix_, edge obj_ ) { VEC_edge_gc_reserve (vec_, 1 ); return VEC_edge_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; >typedef struct VEC_edge_heap { VEC_edge_base base; } VEC_edge_heap; static __inline__ VEC_edge_heap *VEC_edge_heap_alloc (int alloc_ ) { return (VEC_edge_heap *) vec_heap_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_edge_heap_free (VEC_edge_heap **vec_) { if (*vec_) (free) (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_edge_heap *VEC_edge_heap_copy (VEC_edge_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_edge_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_edge_heap *)(vec_heap_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (edge) * len_); } return new_vec_; } static __inline__ int VEC_edge_heap_reserve (VEC_edge_heap **vec_, int alloc_ ) { int extend = !VEC_edge_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_edge_heap *) vec_heap_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_edge_heap_reserve_exact (VEC_edge_heap **vec_, int alloc_ ) { int extend = !VEC_edge_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_edge_heap *) vec_heap_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_edge_heap_safe_grow (VEC_edge_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_edge_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_edge_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_edge_heap_safe_grow_cleared (VEC_edge_heap **vec_, int size_ ) { int oldsize = VEC_edge_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_edge_heap_safe_grow (vec_, size_ ); memset (&(VEC_edge_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (edge) * (size_ - oldsize)); } static __inline__ void VEC_edge_heap_safe_splice (VEC_edge_heap **dst_, VEC_edge_base *src_ ) { if (src_) { VEC_edge_heap_reserve_exact (dst_, src_->prefix.num ); VEC_edge_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ edge *VEC_edge_heap_safe_push (VEC_edge_heap **vec_, edge obj_ ) { VEC_edge_heap_reserve (vec_, 1 ); return VEC_edge_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ edge *VEC_edge_heap_safe_insert (VEC_edge_heap **vec_, unsigned ix_, edge obj_ ) { VEC_edge_heap_reserve (vec_, 1 ); return VEC_edge_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; ># 99 "../../gcc/basic-block.h" >extern const struct gcov_ctr_summary *profile_info; > > >struct loop; > > >struct rtl_bb_info; ># 133 "../../gcc/basic-block.h" >struct basic_block_def { > > VEC_edge_gc *preds; > VEC_edge_gc *succs; > > > void * aux; > > > struct loop *loop_father; > > > struct et_node * dom[2]; > > > struct basic_block_def *prev_bb; > struct basic_block_def *next_bb; > > union basic_block_il_dependent { > struct gimple_bb_info * gimple; > struct rtl_bb_info * rtl; > } il; > > > gcov_type count; > > > int index; > > > int loop_depth; > > > int frequency; > > > int discriminator; > > > int flags; >}; > >struct rtl_bb_info { > > rtx head_; > rtx end_; > > > > rtx header; > rtx footer; > > > int visited; >}; > >struct gimple_bb_info { > > gimple_seq seq; > > > gimple_seq phi_nodes; >}; > >static __inline__ void VEC_basic_block_must_be_pointer_type (void) { (void)((basic_block)1 == (void *)1); } typedef struct VEC_basic_block_base { struct vec_prefix prefix; basic_block vec[1]; } VEC_basic_block_base; typedef struct VEC_basic_block_none { VEC_basic_block_base base; } VEC_basic_block_none; static __inline__ unsigned VEC_basic_block_base_length (const VEC_basic_block_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ basic_block VEC_basic_block_base_last (const VEC_basic_block_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ basic_block VEC_basic_block_base_index (const VEC_basic_block_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_basic_block_base_iterate (const VEC_basic_block_base *vec_, unsigned ix_, basic_block *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (basic_block) 0; return 0; } } static __inline__ size_t VEC_basic_block_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_basic_block_base, vec) + alloc_ * sizeof(basic_block); } static __inline__ void VEC_basic_block_base_embedded_init (VEC_basic_block_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_basic_block_base_space (VEC_basic_block_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_basic_block_base_splice (VEC_basic_block_base *dst_, VEC_basic_block_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (basic_block)); dst_->prefix.num += len_; } } static __inline__ basic_block *VEC_basic_block_base_quick_push (VEC_basic_block_base *vec_, basic_block obj_ ) { basic_block *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ basic_block VEC_basic_block_base_pop (VEC_basic_block_base *vec_ ) { basic_block obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_basic_block_base_truncate (VEC_basic_block_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ basic_block VEC_basic_block_base_replace (VEC_basic_block_base *vec_, unsigned ix_, basic_block obj_ ) { basic_block old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ basic_block *VEC_basic_block_base_quick_insert (VEC_basic_block_base *vec_, unsigned ix_, basic_block obj_ ) { basic_block *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (basic_block)); *slot_ = obj_; return slot_; } static __inline__ basic_block VEC_basic_block_base_ordered_remove (VEC_basic_block_base *vec_, unsigned ix_ ) { basic_block *slot_; basic_block obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (basic_block)); return obj_; } static __inline__ basic_block VEC_basic_block_base_unordered_remove (VEC_basic_block_base *vec_, unsigned ix_ ) { basic_block *slot_; basic_block obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_basic_block_base_block_remove (VEC_basic_block_base *vec_, unsigned ix_, unsigned len_ ) { basic_block *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (basic_block)); } static __inline__ basic_block *VEC_basic_block_base_address (VEC_basic_block_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_basic_block_base_lower_bound (VEC_basic_block_base *vec_, const basic_block obj_, unsigned char (*lessthan_)(const basic_block, const basic_block) ) { unsigned int len_ = VEC_basic_block_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { basic_block middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_basic_block_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_basic_block_gc { VEC_basic_block_base base; } VEC_basic_block_gc; static __inline__ VEC_basic_block_gc *VEC_basic_block_gc_alloc (int alloc_ ) { return (VEC_basic_block_gc *) vec_gc_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_basic_block_gc_free (VEC_basic_block_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_basic_block_gc *VEC_basic_block_gc_copy (VEC_basic_block_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_basic_block_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_basic_block_gc *)(vec_gc_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (basic_block) * len_); } return new_vec_; } static __inline__ int VEC_basic_block_gc_reserve (VEC_basic_block_gc **vec_, int alloc_ ) { int extend = !VEC_basic_block_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_basic_block_gc *) vec_gc_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_basic_block_gc_reserve_exact (VEC_basic_block_gc **vec_, int alloc_ ) { int extend = !VEC_basic_block_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_basic_block_gc *) vec_gc_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_basic_block_gc_safe_grow (VEC_basic_block_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_basic_block_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_basic_block_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_basic_block_gc_safe_grow_cleared (VEC_basic_block_gc **vec_, int size_ ) { int oldsize = VEC_basic_block_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_basic_block_gc_safe_grow (vec_, size_ ); memset (&(VEC_basic_block_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (basic_block) * (size_ - oldsize)); } static __inline__ void VEC_basic_block_gc_safe_splice (VEC_basic_block_gc **dst_, VEC_basic_block_base *src_ ) { if (src_) { VEC_basic_block_gc_reserve_exact (dst_, src_->prefix.num ); VEC_basic_block_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ basic_block *VEC_basic_block_gc_safe_push (VEC_basic_block_gc **vec_, basic_block obj_ ) { VEC_basic_block_gc_reserve (vec_, 1 ); return VEC_basic_block_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ basic_block *VEC_basic_block_gc_safe_insert (VEC_basic_block_gc **vec_, unsigned ix_, basic_block obj_ ) { VEC_basic_block_gc_reserve (vec_, 1 ); return VEC_basic_block_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; >typedef struct VEC_basic_block_heap { VEC_basic_block_base base; } VEC_basic_block_heap; static __inline__ VEC_basic_block_heap *VEC_basic_block_heap_alloc (int alloc_ ) { return (VEC_basic_block_heap *) vec_heap_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_basic_block_heap_free (VEC_basic_block_heap **vec_) { if (*vec_) (free) (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_basic_block_heap *VEC_basic_block_heap_copy (VEC_basic_block_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_basic_block_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_basic_block_heap *)(vec_heap_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (basic_block) * len_); } return new_vec_; } static __inline__ int VEC_basic_block_heap_reserve (VEC_basic_block_heap **vec_, int alloc_ ) { int extend = !VEC_basic_block_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_basic_block_heap *) vec_heap_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_basic_block_heap_reserve_exact (VEC_basic_block_heap **vec_, int alloc_ ) { int extend = !VEC_basic_block_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_basic_block_heap *) vec_heap_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_basic_block_heap_safe_grow (VEC_basic_block_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_basic_block_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_basic_block_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_basic_block_heap_safe_grow_cleared (VEC_basic_block_heap **vec_, int size_ ) { int oldsize = VEC_basic_block_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_basic_block_heap_safe_grow (vec_, size_ ); memset (&(VEC_basic_block_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (basic_block) * (size_ - oldsize)); } static __inline__ void VEC_basic_block_heap_safe_splice (VEC_basic_block_heap **dst_, VEC_basic_block_base *src_ ) { if (src_) { VEC_basic_block_heap_reserve_exact (dst_, src_->prefix.num ); VEC_basic_block_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ basic_block *VEC_basic_block_heap_safe_push (VEC_basic_block_heap **vec_, basic_block obj_ ) { VEC_basic_block_heap_reserve (vec_, 1 ); return VEC_basic_block_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ basic_block *VEC_basic_block_heap_safe_insert (VEC_basic_block_heap **vec_, unsigned ix_, basic_block obj_ ) { VEC_basic_block_heap_reserve (vec_, 1 ); return VEC_basic_block_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; ># 213 "../../gcc/basic-block.h" >enum bb_flags >{ > > BB_NEW = 1 << 0, > > > > BB_REACHABLE = 1 << 1, > > > BB_IRREDUCIBLE_LOOP = 1 << 2, > > > BB_SUPERBLOCK = 1 << 3, > > > > BB_DISABLE_SCHEDULE = 1 << 4, > > > BB_HOT_PARTITION = 1 << 5, > > > BB_COLD_PARTITION = 1 << 6, > > > BB_DUPLICATED = 1 << 7, > > > BB_NON_LOCAL_GOTO_TARGET = 1 << 8, > > > BB_RTL = 1 << 9 , > > > > BB_FORWARDER_BLOCK = 1 << 10, > > > > BB_NONTHREADABLE_BLOCK = 1 << 11, > > > > > > BB_MODIFIED = 1 << 12, > > > > > BB_IN_TRANSACTION = 1 << 13 >}; ># 284 "../../gcc/basic-block.h" >enum dom_state >{ > DOM_NONE, > DOM_NO_FAST_QUERY, > DOM_OK >}; > > >enum profile_status_d >{ > PROFILE_ABSENT, > PROFILE_GUESSED, > PROFILE_READ, > PROFILE_LAST >}; > > > > > >struct control_flow_graph { > > > basic_block x_entry_block_ptr; > basic_block x_exit_block_ptr; > > > VEC_basic_block_gc *x_basic_block_info; > > > int x_n_basic_blocks; > > > int x_n_edges; > > > int x_last_basic_block; > > > int last_label_uid; > > > > VEC_basic_block_gc *x_label_to_block_map; > > enum profile_status_d x_profile_status; > > > enum dom_state x_dom_computed[2]; > > > unsigned x_n_bbs_in_dom_tree[2]; > > > > int max_jumptable_ents; >}; ># 432 "../../gcc/basic-block.h" >extern void compute_bb_for_insn (void); >extern unsigned int free_bb_for_insn (void); >extern void update_bb_for_insn (basic_block); > >extern void insert_insn_on_edge (rtx, edge); >basic_block split_edge_and_insert (edge, rtx); > >extern void commit_one_edge_insertion (edge e); >extern void commit_edge_insertions (void); > >extern void remove_fake_edges (void); >extern void remove_fake_exit_edges (void); >extern void add_noreturn_fake_exit_edges (void); >extern void connect_infinite_loops_to_exit (void); >extern edge unchecked_make_edge (basic_block, basic_block, int); >extern edge cached_make_edge (sbitmap, basic_block, basic_block, int); >extern edge make_edge (basic_block, basic_block, int); >extern edge make_single_succ_edge (basic_block, basic_block, int); >extern void remove_edge_raw (edge); >extern void redirect_edge_succ (edge, basic_block); >extern edge redirect_edge_succ_nodup (edge, basic_block); >extern void redirect_edge_pred (edge, basic_block); >extern basic_block create_basic_block_structure (rtx, rtx, rtx, basic_block); >extern void clear_bb_flags (void); >extern int post_order_compute (int *, unsigned char, unsigned char); >extern int inverted_post_order_compute (int *); >extern int pre_and_rev_post_order_compute (int *, int *, unsigned char); >extern int dfs_enumerate_from (basic_block, int, > unsigned char (*)(const_basic_block, const void *), > basic_block *, int, const void *); >extern void compute_dominance_frontiers (struct bitmap_head_def *); >extern bitmap compute_idf (bitmap, struct bitmap_head_def *); >extern void dump_bb_info (basic_block, unsigned char, unsigned char, int, const char *, FILE *); >extern void dump_edge_info (FILE *, edge, int); >extern void brief_dump_cfg (FILE *); >extern void clear_edges (void); >extern void scale_bbs_frequencies_int (basic_block *, int, int, int); >extern void scale_bbs_frequencies_gcov_type (basic_block *, int, gcov_type, > gcov_type); > > > > > > >typedef struct ce_if_block >{ > basic_block test_bb; > basic_block then_bb; > basic_block else_bb; > basic_block join_bb; > basic_block last_test_bb; > int num_multiple_test_blocks; > int num_and_and_blocks; > int num_or_or_blocks; > int num_multiple_test_insns; > int and_and_p; > int num_then_insns; > int num_else_insns; > int pass; > > > > > >} ce_if_block_t; > > >struct edge_list >{ > int num_blocks; > int num_edges; > edge *index_to_edge; >}; ># 553 "../../gcc/basic-block.h" >static __inline__ unsigned char >single_succ_p (const_basic_block bb) >{ > return (VEC_edge_base_length(((__builtin_offsetof (__typeof (*(bb->succs)), base) == 0 || ((bb->succs))) ? &((bb->succs))->base : 0))) == 1; >} > > > >static __inline__ unsigned char >single_pred_p (const_basic_block bb) >{ > return (VEC_edge_base_length(((__builtin_offsetof (__typeof (*(bb->preds)), base) == 0 || ((bb->preds))) ? &((bb->preds))->base : 0))) == 1; >} > > > > >static __inline__ edge >single_succ_edge (const_basic_block bb) >{ > ((void)(0 && (single_succ_p (bb)))); > return (VEC_edge_base_index(((__builtin_offsetof (__typeof (*(bb)->succs), base) == 0 || ((bb)->succs)) ? &((bb)->succs)->base : 0),(0) )); >} > > > > >static __inline__ edge >single_pred_edge (const_basic_block bb) >{ > ((void)(0 && (single_pred_p (bb)))); > return (VEC_edge_base_index(((__builtin_offsetof (__typeof (*(bb)->preds), base) == 0 || ((bb)->preds)) ? &((bb)->preds)->base : 0),(0) )); >} > > > > >static __inline__ basic_block >single_succ (const_basic_block bb) >{ > return single_succ_edge (bb)->dest; >} > > > > >static __inline__ basic_block >single_pred (const_basic_block bb) >{ > return single_pred_edge (bb)->src; >} > > > >typedef struct { > unsigned index; > VEC_edge_gc **container; >} edge_iterator; > >static __inline__ VEC_edge_gc * >ei_container (edge_iterator i) >{ > ((void)(0 && (i.container))); > return *i.container; >} > > > > > >static __inline__ edge_iterator >ei_start_1 (VEC_edge_gc **ev) >{ > edge_iterator i; > > i.index = 0; > i.container = ev; > > return i; >} > > > >static __inline__ edge_iterator >ei_last_1 (VEC_edge_gc **ev) >{ > edge_iterator i; > > i.index = (VEC_edge_base_length(((__builtin_offsetof (__typeof (*(*ev)), base) == 0 || ((*ev))) ? &((*ev))->base : 0))) - 1; > i.container = ev; > > return i; >} > > >static __inline__ unsigned char >ei_end_p (edge_iterator i) >{ > return (i.index == (VEC_edge_base_length(((__builtin_offsetof (__typeof (*(ei_container (i))), base) == 0 || ((ei_container (i)))) ? &((ei_container (i)))->base : 0)))); >} > > > >static __inline__ unsigned char >ei_one_before_end_p (edge_iterator i) >{ > return (i.index + 1 == (VEC_edge_base_length(((__builtin_offsetof (__typeof (*(ei_container (i))), base) == 0 || ((ei_container (i)))) ? &((ei_container (i)))->base : 0)))); >} > > >static __inline__ void >ei_next (edge_iterator *i) >{ > ((void)(0 && (i->index < (VEC_edge_base_length(((__builtin_offsetof (__typeof (*(ei_container (*i))), base) == 0 || ((ei_container (*i)))) ? &((ei_container (*i)))->base : 0)))))); > i->index++; >} > > >static __inline__ void >ei_prev (edge_iterator *i) >{ > ((void)(0 && (i->index > 0))); > i->index--; >} > > >static __inline__ edge >ei_edge (edge_iterator i) >{ > return (VEC_edge_base_index(((__builtin_offsetof (__typeof (*(ei_container (i))), base) == 0 || ((ei_container (i)))) ? &((ei_container (i)))->base : 0),(i.index) )); >} > > > > >static __inline__ edge >ei_safe_edge (edge_iterator i) >{ > return !ei_end_p (i) ? ei_edge (i) : ((void *)0); >} > > > > > >static __inline__ unsigned char >ei_cond (edge_iterator ei, edge *p) >{ > if (!ei_end_p (ei)) > { > *p = ei_edge (ei); > return 1; > } > else > { > *p = ((void *)0); > return 0; > } >} ># 733 "../../gcc/basic-block.h" >struct edge_list * create_edge_list (void); >void free_edge_list (struct edge_list *); >void print_edge_list (FILE *, struct edge_list *); >void verify_edge_list (FILE *, struct edge_list *); >int find_edge_index (struct edge_list *, basic_block, basic_block); >edge find_edge (basic_block, basic_block); ># 751 "../../gcc/basic-block.h" >extern struct edge_list *pre_edge_lcm (int, sbitmap *, sbitmap *, > sbitmap *, sbitmap *, sbitmap **, > sbitmap **); >extern struct edge_list *pre_edge_rev_lcm (int, sbitmap *, > sbitmap *, sbitmap *, > sbitmap *, sbitmap **, > sbitmap **); >extern void compute_available (sbitmap *, sbitmap *, sbitmap *, sbitmap *); > > >extern unsigned char maybe_hot_bb_p (const_basic_block); >extern unsigned char maybe_hot_edge_p (edge); >extern unsigned char probably_never_executed_bb_p (const_basic_block); >extern unsigned char optimize_bb_for_size_p (const_basic_block); >extern unsigned char optimize_bb_for_speed_p (const_basic_block); >extern unsigned char optimize_edge_for_size_p (edge); >extern unsigned char optimize_edge_for_speed_p (edge); >extern unsigned char optimize_loop_for_size_p (struct loop *); >extern unsigned char optimize_loop_for_speed_p (struct loop *); >extern unsigned char optimize_loop_nest_for_size_p (struct loop *); >extern unsigned char optimize_loop_nest_for_speed_p (struct loop *); >extern unsigned char gimple_predicted_by_p (const_basic_block, enum br_predictor); >extern unsigned char rtl_predicted_by_p (const_basic_block, enum br_predictor); >extern void gimple_predict_edge (edge, enum br_predictor, int); >extern void rtl_predict_edge (edge, enum br_predictor, int); >extern void predict_edge_def (edge, enum br_predictor, enum prediction); >extern void guess_outgoing_edge_probabilities (basic_block); >extern void remove_predictions_associated_with_edge (edge); >extern unsigned char edge_probability_reliable_p (const_edge); >extern unsigned char br_prob_note_reliable_p (const_rtx); >extern unsigned char predictable_edge_p (edge); > > >extern void init_flow (struct function *); >extern void debug_bb (basic_block); >extern basic_block debug_bb_n (int); >extern void expunge_block (basic_block); >extern void link_block (basic_block, basic_block); >extern void unlink_block (basic_block); >extern void compact_blocks (void); >extern basic_block alloc_block (void); >extern void alloc_aux_for_blocks (int); >extern void clear_aux_for_blocks (void); >extern void free_aux_for_blocks (void); >extern void alloc_aux_for_edge (edge, int); >extern void alloc_aux_for_edges (int); >extern void clear_aux_for_edges (void); >extern void free_aux_for_edges (void); > > >extern void find_unreachable_blocks (void); >extern unsigned char forwarder_block_p (const_basic_block); >extern unsigned char can_fallthru (basic_block, basic_block); >extern unsigned char could_fall_through (basic_block, basic_block); >extern void flow_nodes_print (const char *, const_sbitmap, FILE *); >extern void flow_edge_list_print (const char *, const edge *, int, FILE *); > > >extern rtx block_label (basic_block); >extern rtx bb_note (basic_block); >extern unsigned char purge_all_dead_edges (void); >extern unsigned char purge_dead_edges (basic_block); >extern unsigned char fixup_abnormal_edges (void); >extern basic_block force_nonfallthru_and_redirect (edge, basic_block, rtx); > > >extern void find_many_sub_basic_blocks (sbitmap); >extern void rtl_make_eh_edge (sbitmap, basic_block, rtx); > >enum replace_direction { dir_none, dir_forward, dir_backward, dir_both }; > > >extern unsigned char cleanup_cfg (int); >extern int flow_find_cross_jump (basic_block, basic_block, rtx *, rtx *, > enum replace_direction*); >extern int flow_find_head_matching_sequence (basic_block, basic_block, > rtx *, rtx *, int); > >extern unsigned char delete_unreachable_blocks (void); > >extern unsigned char mark_dfs_back_edges (void); >extern void set_edge_can_fallthru_flag (void); >extern void update_br_prob_note (basic_block); >extern unsigned char inside_basic_block_p (const_rtx); >extern unsigned char control_flow_insn_p (const_rtx); >extern rtx get_last_bb_insn (basic_block); > > >extern void reorder_basic_blocks (void); > > > >enum cdi_direction >{ > CDI_DOMINATORS = 1, > CDI_POST_DOMINATORS = 2 >}; > >extern enum dom_state dom_info_state (enum cdi_direction); >extern void set_dom_info_availability (enum cdi_direction, enum dom_state); >extern unsigned char dom_info_available_p (enum cdi_direction); >extern void calculate_dominance_info (enum cdi_direction); >extern void free_dominance_info (enum cdi_direction); >extern basic_block nearest_common_dominator (enum cdi_direction, > basic_block, basic_block); >extern basic_block nearest_common_dominator_for_set (enum cdi_direction, > bitmap); >extern void set_immediate_dominator (enum cdi_direction, basic_block, > basic_block); >extern basic_block get_immediate_dominator (enum cdi_direction, basic_block); >extern unsigned char dominated_by_p (enum cdi_direction, const_basic_block, const_basic_block); >extern VEC_basic_block_heap *get_dominated_by (enum cdi_direction, basic_block); >extern VEC_basic_block_heap *get_dominated_by_region (enum cdi_direction, > basic_block *, > unsigned); >extern VEC_basic_block_heap *get_dominated_to_depth (enum cdi_direction, > basic_block, int); >extern VEC_basic_block_heap *get_all_dominated_blocks (enum cdi_direction, > basic_block); >extern void add_to_dominance_info (enum cdi_direction, basic_block); >extern void delete_from_dominance_info (enum cdi_direction, basic_block); >basic_block recompute_dominator (enum cdi_direction, basic_block); >extern void redirect_immediate_dominators (enum cdi_direction, basic_block, > basic_block); >extern void iterate_fix_dominators (enum cdi_direction, > VEC_basic_block_heap *, unsigned char); >extern void verify_dominators (enum cdi_direction); >extern basic_block first_dom_son (enum cdi_direction, basic_block); >extern basic_block next_dom_son (enum cdi_direction, basic_block); >unsigned bb_dom_dfs_in (enum cdi_direction, basic_block); >unsigned bb_dom_dfs_out (enum cdi_direction, basic_block); > >extern edge try_redirect_by_replacing_jump (edge, basic_block, unsigned char); >extern void break_superblocks (void); >extern void relink_block_chain (unsigned char); >extern void check_bb_profile (basic_block, FILE *); >extern void update_bb_profile_for_threading (basic_block, int, gcov_type, edge); >extern void init_rtl_bb_info (basic_block); > >extern void initialize_original_copy_tables (void); >extern void free_original_copy_tables (void); >extern void set_bb_original (basic_block, basic_block); >extern basic_block get_bb_original (basic_block); >extern void set_bb_copy (basic_block, basic_block); >extern basic_block get_bb_copy (basic_block); >void set_loop_copy (struct loop *, struct loop *); >struct loop *get_loop_copy (struct loop *); > ># 1 "../../gcc/cfghooks.h" 1 ># 25 "../../gcc/cfghooks.h" >struct cfg_hooks >{ > > const char *name; > > > int (*verify_flow_info) (void); > void (*dump_bb) (basic_block, FILE *, int, int); > > > > > basic_block (*create_basic_block) (void *head, void *end, basic_block after); > > > > > > edge (*redirect_edge_and_branch) (edge e, basic_block b); > > > > > basic_block (*redirect_edge_and_branch_force) (edge, basic_block); > > > > unsigned char (*can_remove_branch_p) (const_edge); > > > void (*delete_basic_block) (basic_block); > > > > basic_block (*split_block) (basic_block b, void * i); > > > unsigned char (*move_block_after) (basic_block b, basic_block a); > > > unsigned char (*can_merge_blocks_p) (basic_block a, basic_block b); > > > void (*merge_blocks) (basic_block a, basic_block b); > > > void (*predict_edge) (edge e, enum br_predictor predictor, int probability); > > > > unsigned char (*predicted_by_p) (const_basic_block bb, enum br_predictor predictor); > > > unsigned char (*can_duplicate_block_p) (const_basic_block a); > > > basic_block (*duplicate_block) (basic_block a); > > > > basic_block (*split_edge) (edge); > void (*make_forwarder_block) (edge); > > > void (*tidy_fallthru_edge) (edge); > > > basic_block (*force_nonfallthru) (edge); > > > > unsigned char (*block_ends_with_call_p) (basic_block); > > > > unsigned char (*block_ends_with_condjump_p) (const_basic_block); ># 109 "../../gcc/cfghooks.h" > int (*flow_call_edges_add) (sbitmap); > > > > void (*execute_on_growing_pred) (edge); > > > > void (*execute_on_shrinking_pred) (edge); > > > > unsigned char (*cfg_hook_duplicate_loop_to_header_edge) (struct loop *, edge, > unsigned, sbitmap, > edge, VEC_edge_heap **, > int); > > > > void (*lv_add_condition_to_bb) (basic_block, basic_block, basic_block, > void *); > > void (*lv_adjust_loop_header_phi) (basic_block, basic_block, > basic_block, edge); > > > > void (*extract_cond_bb_edges) (basic_block, edge *, edge *); > > > > > void (*flush_pending_stmts) (edge); >}; > >extern void verify_flow_info (void); >extern void dump_bb (basic_block, FILE *, int); >extern edge redirect_edge_and_branch (edge, basic_block); >extern basic_block redirect_edge_and_branch_force (edge, basic_block); >extern unsigned char can_remove_branch_p (const_edge); >extern void remove_branch (edge); >extern void remove_edge (edge); >extern edge split_block (basic_block, void *); >extern edge split_block_after_labels (basic_block); >extern unsigned char move_block_after (basic_block, basic_block); >extern void delete_basic_block (basic_block); >extern basic_block split_edge (edge); >extern basic_block create_basic_block (void *, void *, basic_block); >extern basic_block create_empty_bb (basic_block); >extern unsigned char can_merge_blocks_p (basic_block, basic_block); >extern void merge_blocks (basic_block, basic_block); >extern edge make_forwarder_block (basic_block, unsigned char (*)(edge), > void (*) (basic_block)); >extern basic_block force_nonfallthru (edge); >extern void tidy_fallthru_edge (edge); >extern void tidy_fallthru_edges (void); >extern void predict_edge (edge e, enum br_predictor predictor, int probability); >extern unsigned char predicted_by_p (const_basic_block bb, enum br_predictor predictor); >extern unsigned char can_duplicate_block_p (const_basic_block); >extern basic_block duplicate_block (basic_block, edge, basic_block); >extern unsigned char block_ends_with_call_p (basic_block bb); >extern unsigned char block_ends_with_condjump_p (const_basic_block bb); >extern int flow_call_edges_add (sbitmap); >extern void execute_on_growing_pred (edge); >extern void execute_on_shrinking_pred (edge); >extern unsigned char cfg_hook_duplicate_loop_to_header_edge (struct loop *loop, edge, > unsigned int ndupl, > sbitmap wont_exit, > edge orig, > VEC_edge_heap **to_remove, > int flags); > >extern void lv_flush_pending_stmts (edge); >extern void extract_cond_bb_edges (basic_block, edge *, edge*); >extern void lv_adjust_loop_header_phi (basic_block, basic_block, basic_block, > edge); >extern void lv_add_condition_to_bb (basic_block, basic_block, basic_block, > void *); > > >extern struct cfg_hooks gimple_cfg_hooks; >extern struct cfg_hooks rtl_cfg_hooks; >extern struct cfg_hooks cfg_layout_rtl_cfg_hooks; > > >extern enum ir_type current_ir_type (void); >extern void rtl_register_cfg_hooks (void); >extern void cfg_layout_rtl_register_cfg_hooks (void); >extern void gimple_register_cfg_hooks (void); >extern struct cfg_hooks get_cfg_hooks (void); >extern void set_cfg_hooks (struct cfg_hooks); ># 900 "../../gcc/basic-block.h" 2 > > >static __inline__ unsigned char >bb_has_eh_pred (basic_block bb) >{ > edge e; > edge_iterator ei; > > for ((ei) = ei_start_1 (&((bb->preds))); ei_cond ((ei), &(e)); ei_next (&(ei))) > { > if (e->flags & 0x0008) > return 1; > } > return 0; >} > > >static __inline__ unsigned char >bb_has_abnormal_pred (basic_block bb) >{ > edge e; > edge_iterator ei; > > for ((ei) = ei_start_1 (&((bb->preds))); ei_cond ((ei), &(e)); ei_next (&(ei))) > { > if (e->flags & 0x0002) > return 1; > } > return 0; >} > > >static __inline__ edge >find_fallthru_edge (VEC_edge_gc *edges) >{ > edge e; > edge_iterator ei; > > for ((ei) = ei_start_1 (&((edges))); ei_cond ((ei), &(e)); ei_next (&(ei))) > if (e->flags & 0x0001) > break; > > return e; >} > > >extern edge mfb_kj_edge; >extern unsigned char mfb_keep_just (edge); > > >extern void rtl_profile_for_bb (basic_block); >extern void rtl_profile_for_edge (edge); >extern void default_rtl_profile (void); ># 89 "../../gcc/combine.c" 2 ># 1 "./insn-config.h" 1 ># 90 "../../gcc/combine.c" 2 > > ># 1 "../../gcc/expr.h" 1 ># 47 "../../gcc/expr.h" >enum expand_modifier {EXPAND_NORMAL = 0, EXPAND_STACK_PARM, EXPAND_SUM, > EXPAND_CONST_ADDRESS, EXPAND_INITIALIZER, EXPAND_WRITE, > EXPAND_MEMORY}; ># 59 "../../gcc/expr.h" >enum direction {none, upward, downward}; > > > > > > >struct args_size >{ > long long constant; > tree var; >}; > > > >struct locate_and_pad_arg_data >{ > > > > struct args_size size; > > struct args_size offset; > > > struct args_size slot_offset; > > > struct args_size alignment_pad; > > enum direction where_pad; > > unsigned int boundary; >}; ># 137 "../../gcc/expr.h" >typedef struct separate_ops >{ > enum tree_code code; > location_t location; > tree type; > tree op0, op1, op2; >} *sepops; ># 155 "../../gcc/expr.h" >enum optab_methods >{ > OPTAB_DIRECT, > OPTAB_LIB, > OPTAB_WIDEN, > OPTAB_LIB_WIDEN, > OPTAB_MUST_WIDEN >}; > > > > >extern rtx expand_simple_binop (enum machine_mode, enum rtx_code, rtx, > rtx, rtx, int, enum optab_methods); >extern rtx expand_simple_unop (enum machine_mode, enum rtx_code, rtx, rtx, > int); > > > >extern int have_insn_for (enum rtx_code, enum machine_mode); > > >extern void emit_libcall_block (rtx, rtx, rtx, rtx); > > > > >extern rtx gen_add2_insn (rtx, rtx); >extern rtx gen_add3_insn (rtx, rtx, rtx); >extern rtx gen_sub2_insn (rtx, rtx); >extern rtx gen_sub3_insn (rtx, rtx, rtx); >extern rtx gen_move_insn (rtx, rtx); >extern int have_add2_insn (rtx, rtx); >extern int have_sub2_insn (rtx, rtx); > > > >extern void emit_cmp_and_jump_insns (rtx, rtx, enum rtx_code, rtx, > enum machine_mode, int, rtx); > > >extern void emit_indirect_jump (rtx); > > >extern rtx gen_cond_trap (enum rtx_code, rtx, rtx, rtx); > > > > > >rtx emit_conditional_move (rtx, enum rtx_code, rtx, rtx, enum machine_mode, > rtx, rtx, enum machine_mode, int); > > >int can_conditionally_move_p (enum machine_mode mode); > > >rtx emit_conditional_add (rtx, enum rtx_code, rtx, rtx, enum machine_mode, > rtx, rtx, enum machine_mode, int); > >rtx expand_sync_operation (rtx, rtx, enum rtx_code); >rtx expand_sync_fetch_operation (rtx, rtx, enum rtx_code, unsigned char, rtx); >rtx expand_sync_lock_test_and_set (rtx, rtx, rtx); > >rtx expand_atomic_exchange (rtx, rtx, rtx, enum memmodel); >rtx expand_atomic_load (rtx, rtx, enum memmodel); >rtx expand_atomic_store (rtx, rtx, enum memmodel, unsigned char); >rtx expand_atomic_fetch_op (rtx, rtx, rtx, enum rtx_code, enum memmodel, > unsigned char); >rtx expand_atomic_test_and_set (rtx, rtx, enum memmodel); >rtx expand_atomic_clear (rtx, enum memmodel); >void expand_atomic_thread_fence (enum memmodel); >void expand_atomic_signal_fence (enum memmodel); > > > > > > >extern rtx negate_rtx (enum machine_mode, rtx); > > >extern rtx expand_and (enum machine_mode, rtx, rtx, rtx); > > >extern rtx emit_store_flag (rtx, enum rtx_code, rtx, rtx, enum machine_mode, > int, int); > > >extern rtx emit_store_flag_force (rtx, enum rtx_code, rtx, rtx, > enum machine_mode, int, int); > > >extern rtx expand_builtin (tree, rtx, rtx, enum machine_mode, int); >extern tree std_build_builtin_va_list (void); >extern tree std_fn_abi_va_list (tree); >extern tree std_canonical_va_list_type (tree); > >extern void std_expand_builtin_va_start (tree, rtx); >extern rtx default_expand_builtin (tree, rtx, rtx, enum machine_mode, int); >extern void expand_builtin_setjmp_setup (rtx, rtx); >extern void expand_builtin_setjmp_receiver (rtx); >extern rtx expand_builtin_saveregs (void); >extern void expand_builtin_trap (void); >extern rtx builtin_strncpy_read_str (void *, long long, enum machine_mode); > > > > > >extern void init_expr_target (void); > > >extern void init_expr (void); > > > >extern void convert_move (rtx, rtx, int); > > >extern rtx convert_to_mode (enum machine_mode, rtx, int); > > >extern rtx convert_modes (enum machine_mode, enum machine_mode, rtx, int); > > > >enum block_op_methods >{ > BLOCK_OP_NORMAL, > BLOCK_OP_NO_LIBCALL, > BLOCK_OP_CALL_PARM, > > BLOCK_OP_TAILCALL >}; > >extern tree block_clear_fn; >extern void init_block_move_fn (const char *); >extern void init_block_clear_fn (const char *); > >extern rtx emit_block_move (rtx, rtx, rtx, enum block_op_methods); >extern rtx emit_block_move_via_libcall (rtx, rtx, rtx, unsigned char); >extern rtx emit_block_move_hints (rtx, rtx, rtx, enum block_op_methods, > unsigned int, long long); >extern unsigned char emit_storent_insn (rtx to, rtx from); > > > >extern void move_block_to_reg (int, rtx, int, enum machine_mode); > > > >extern void move_block_from_reg (int, rtx, int); > > >extern rtx gen_group_rtx (rtx); > > > >extern void emit_group_load (rtx, rtx, tree, int); > > >extern rtx emit_group_load_into_temps (rtx, rtx, tree, int); > > > >extern void emit_group_move (rtx, rtx); > > >extern rtx emit_group_move_into_temps (rtx); > > > >extern void emit_group_store (rtx, rtx, tree, int); > > >extern rtx copy_blkmode_from_reg (rtx, rtx, tree); > > > >extern void use_reg_mode (rtx *, rtx, enum machine_mode); > >extern rtx copy_blkmode_to_reg (enum machine_mode, tree); > > >static __inline__ void >use_reg (rtx *fusage, rtx reg) >{ > use_reg_mode (fusage, reg, VOIDmode); >} > > > >extern void use_regs (rtx *, int, int); > > >extern void use_group_regs (rtx *, rtx); > > > >extern rtx clear_storage (rtx, rtx, enum block_op_methods); >extern rtx clear_storage_hints (rtx, rtx, enum block_op_methods, > unsigned int, long long); > >rtx set_storage_via_libcall (rtx, rtx, rtx, unsigned char); > > >extern unsigned char set_storage_via_setmem (rtx, rtx, rtx, unsigned int, > unsigned int, long long); > > > > >extern int can_move_by_pieces (unsigned long long, unsigned int); > >extern unsigned long long move_by_pieces_ninsns (unsigned long long, > unsigned int, > unsigned int); ># 381 "../../gcc/expr.h" >extern int can_store_by_pieces (unsigned long long, > rtx (*) (void *, long long, > enum machine_mode), > void *, unsigned int, unsigned char); > > > > > > > >extern rtx store_by_pieces (rtx, unsigned long long, > rtx (*) (void *, long long, enum machine_mode), > void *, unsigned int, unsigned char, int); > > >extern rtx emit_move_insn (rtx, rtx); > > >extern rtx emit_move_insn_1 (rtx, rtx); > >extern rtx emit_move_complex_push (enum machine_mode, rtx, rtx); >extern rtx emit_move_complex_parts (rtx, rtx); > > > >extern rtx push_block (rtx, int, int); > > >extern void emit_push_insn (rtx, enum machine_mode, tree, rtx, unsigned int, > int, rtx, int, rtx, rtx, int, rtx); > > >extern void expand_assignment (tree, tree, unsigned char); > > > > > >extern rtx store_expr (tree, rtx, int, unsigned char); > > > > >extern rtx force_operand (rtx, rtx); > > >extern rtx expand_expr_real (tree, rtx, enum machine_mode, > enum expand_modifier, rtx *); >extern rtx expand_expr_real_1 (tree, rtx, enum machine_mode, > enum expand_modifier, rtx *); >extern rtx expand_expr_real_2 (sepops, rtx, enum machine_mode, > enum expand_modifier); > > > > >static __inline__ rtx >expand_expr (tree exp, rtx target, enum machine_mode mode, > enum expand_modifier modifier) >{ > return expand_expr_real (exp, target, mode, modifier, ((void *)0)); >} > >static __inline__ rtx >expand_normal (tree exp) >{ > return expand_expr_real (exp, (rtx) 0, VOIDmode, EXPAND_NORMAL, ((void *)0)); >} > > > >extern void init_pending_stack_adjust (void); > > >extern void discard_pending_stack_adjust (void); > > > >extern void clear_pending_stack_adjust (void); > > >extern void do_pending_stack_adjust (void); > > > >extern tree string_constant (tree, tree *); > > >extern void jumpifnot (tree, rtx, int); >extern void jumpifnot_1 (enum tree_code, tree, tree, rtx, int); > > >extern void jumpif (tree, rtx, int); >extern void jumpif_1 (enum tree_code, tree, tree, rtx, int); > > > >extern void do_jump (tree, rtx, rtx, int); >extern void do_jump_1 (enum tree_code, tree, tree, rtx, rtx, int); > >extern void do_compare_rtx_and_jump (rtx, rtx, enum rtx_code, int, > enum machine_mode, rtx, rtx, rtx, int); > > >extern int try_casesi (tree, tree, tree, tree, rtx, rtx, rtx); >extern int try_tablejump (tree, tree, tree, tree, rtx, rtx); > > > > > > > >extern rtx expr_size (tree); > > > >extern long long int_expr_size (tree); > > > >extern rtx hard_function_value (const_tree, const_tree, const_tree, int); > >extern rtx prepare_call_address (tree, rtx, rtx, rtx *, int, int); > >extern unsigned char shift_return_value (enum machine_mode, unsigned char, rtx); > >extern rtx expand_call (tree, rtx, int); > >extern void fixup_tail_calls (void); > > >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); > > >extern void locate_and_pad_parm (enum machine_mode, tree, int, int, tree, > struct args_size *, > struct locate_and_pad_arg_data *); > > >extern rtx label_rtx (tree); > > > > >extern rtx force_label_rtx (tree); > > > > >extern rtx eliminate_constant_term (rtx, rtx *); > > > > >extern rtx memory_address_addr_space (enum machine_mode, rtx, addr_space_t); ># 553 "../../gcc/expr.h" >extern rtx change_address (rtx, enum machine_mode, rtx); ># 574 "../../gcc/expr.h" >extern rtx adjust_address_1 (rtx, enum machine_mode, long long, int, int); >extern rtx adjust_automodify_address_1 (rtx, enum machine_mode, rtx, > long long, int); > > > > >extern rtx offset_address (rtx, rtx, unsigned long long); > > ># 1 "../../gcc/emit-rtl.h" 1 ># 24 "../../gcc/emit-rtl.h" >extern void set_mem_alias_set (rtx, alias_set_type); > > >extern void set_mem_align (rtx, unsigned int); > > >extern void set_mem_addr_space (rtx, addr_space_t); > > >extern void set_mem_expr (rtx, tree); > > >extern void set_mem_offset (rtx, long long); > > >extern void clear_mem_offset (rtx); > > >extern void set_mem_size (rtx, long long); > > >extern void clear_mem_size (rtx); > > >extern void set_mem_attrs_for_spill (rtx); >extern tree get_spill_slot_decl (unsigned char); > > > > > >extern rtx replace_equiv_address (rtx, rtx); > > >extern rtx replace_equiv_address_nv (rtx, rtx); > >extern rtx gen_blockage (void); >extern rtvec gen_rtvec (int, ...); >extern rtx copy_insn_1 (rtx); >extern rtx copy_insn (rtx); >extern rtx gen_int_mode (long long, enum machine_mode); >extern rtx emit_copy_of_insn_after (rtx, rtx); >extern void set_reg_attrs_from_value (rtx, rtx); >extern void set_reg_attrs_for_parm (rtx, rtx); >extern void set_reg_attrs_for_decl_rtl (tree t, rtx x); >extern void adjust_reg_mode (rtx, enum machine_mode); >extern int mem_expr_equal_p (const_tree, const_tree); > > > >static __inline__ rtx >get_insns (void) >{ > return (&x_rtl)->emit.x_first_insn; >} > > > >static __inline__ void >set_first_insn (rtx insn) >{ > ((void)(0 && (!insn || !(((insn)->u.fld[1]).rt_rtx)))); > (&x_rtl)->emit.x_first_insn = insn; >} > > > >static __inline__ rtx >get_last_insn (void) >{ > return (&x_rtl)->emit.x_last_insn; >} > > > >static __inline__ void >set_last_insn (rtx insn) >{ > ((void)(0 && (!insn || !(((insn)->u.fld[2]).rt_rtx)))); > (&x_rtl)->emit.x_last_insn = insn; >} > > > >static __inline__ int >get_max_uid (void) >{ > return (&x_rtl)->emit.x_cur_insn_uid; >} ># 585 "../../gcc/expr.h" 2 > > > >extern rtx widen_memory_access (rtx, enum machine_mode, long long); > > > >extern rtx validize_mem (rtx); > >extern rtx use_anchored_address (rtx); > > > > >extern void set_mem_attributes (rtx, tree, int); > > > > >extern void set_mem_attributes_minus_bitpos (rtx, tree, int, long long); > > > > >extern int get_mem_align_offset (rtx, unsigned int); > > >extern rtx assemble_trampoline_template (void); > > >extern rtx copy_to_reg (rtx); > > >extern rtx copy_addr_to_reg (rtx); > > >extern rtx copy_to_mode_reg (enum machine_mode, rtx); > > >extern rtx copy_to_suggested_reg (rtx, rtx, enum machine_mode); > > > >extern rtx force_reg (enum machine_mode, rtx); > > >extern rtx force_not_mem (rtx); > > > >extern enum machine_mode promote_function_mode (const_tree, enum machine_mode, int *, > const_tree, int); > > > >extern enum machine_mode promote_mode (const_tree, enum machine_mode, int *); > > >enum machine_mode promote_decl_mode (const_tree, int *); > > >extern void adjust_stack (rtx); > > >extern void anti_adjust_stack (rtx); > > >extern void anti_adjust_stack_and_probe (rtx, unsigned char); > > >enum save_level {SAVE_BLOCK, SAVE_FUNCTION, SAVE_NONLOCAL}; > > >extern void emit_stack_save (enum save_level, rtx *); > > >extern void emit_stack_restore (enum save_level, rtx); > > >extern void update_nonlocal_goto_save_area (void); > > >extern rtx allocate_dynamic_stack_space (rtx, unsigned, unsigned, unsigned char); > > >extern void emit_stack_probe (rtx); > > > > > >extern void probe_stack_range (long long, rtx); > > > >extern rtx hard_libcall_value (enum machine_mode, rtx); > > > > > >enum extraction_pattern { EP_insv, EP_extv, EP_extzv }; >extern enum machine_mode >mode_for_extraction (enum extraction_pattern, int); > >extern void store_bit_field (rtx, unsigned long long, > unsigned long long, > unsigned long long, > unsigned long long, > enum machine_mode, rtx); >extern rtx extract_bit_field (rtx, unsigned long long, > unsigned long long, int, unsigned char, rtx, > enum machine_mode, enum machine_mode); >extern rtx extract_low_bits (enum machine_mode, enum machine_mode, rtx); >extern rtx expand_mult (enum machine_mode, rtx, rtx, rtx, int); >extern rtx expand_mult_highpart_adjust (enum machine_mode, rtx, rtx, rtx, rtx, int); > >extern rtx assemble_static_space (unsigned long long); >extern int safe_from_p (const_rtx, tree, int); >extern unsigned char split_comparison (enum rtx_code, enum machine_mode, > enum rtx_code *, enum rtx_code *); > > > >extern void init_optabs (void); >extern void init_all_optabs (void); > > >extern rtx init_one_libfunc (const char *); >extern rtx set_user_assembler_libfunc (const char *, const char *); > > >extern tree build_libfunc_function (const char *); > > >rtx get_personality_function (tree); ># 93 "../../gcc/combine.c" 2 ># 1 "./insn-attr.h" 1 > > > > > > ># 1 "./insn-attr-common.h" 1 > > > > > > >enum attr_type {TYPE_INTEGER, TYPE_TWO, TYPE_THREE, TYPE_LOAD, TYPE_LOAD_EXT, TYPE_LOAD_EXT_U, TYPE_LOAD_EXT_UX, TYPE_LOAD_UX, TYPE_LOAD_U, TYPE_STORE, TYPE_STORE_UX, TYPE_STORE_U, TYPE_FPLOAD, TYPE_FPLOAD_UX, TYPE_FPLOAD_U, TYPE_FPSTORE, TYPE_FPSTORE_UX, TYPE_FPSTORE_U, TYPE_VECLOAD, TYPE_VECSTORE, TYPE_IMUL, TYPE_IMUL2, TYPE_IMUL3, TYPE_LMUL, TYPE_IDIV, TYPE_LDIV, TYPE_INSERT_WORD, TYPE_BRANCH, TYPE_CMP, TYPE_FAST_COMPARE, TYPE_COMPARE, TYPE_VAR_DELAYED_COMPARE, TYPE_DELAYED_COMPARE, TYPE_IMUL_COMPARE, TYPE_LMUL_COMPARE, TYPE_FPCOMPARE, TYPE_CR_LOGICAL, TYPE_DELAYED_CR, TYPE_MFCR, TYPE_MFCRF, TYPE_MTCR, TYPE_MFJMPR, TYPE_MTJMPR, TYPE_FP, TYPE_FPSIMPLE, TYPE_DMUL, TYPE_SDIV, TYPE_DDIV, TYPE_SSQRT, TYPE_DSQRT, TYPE_JMPREG, TYPE_BRINC, TYPE_VECSIMPLE, TYPE_VECCOMPLEX, TYPE_VECDIV, TYPE_VECCMP, TYPE_VECCMPSIMPLE, TYPE_VECPERM, TYPE_VECFLOAT, TYPE_VECFDIV, TYPE_VECDOUBLE, TYPE_ISYNC, TYPE_SYNC, TYPE_LOAD_L, TYPE_STORE_C, TYPE_SHIFT, TYPE_TRAP, TYPE_INSERT_DWORD, TYPE_VAR_SHIFT_ROTATE, TYPE_CNTLZ, TYPE_EXTS, TYPE_MFFGPR, TYPE_MFTGPR, TYPE_ISEL}; >enum attr_fp_type {FP_TYPE_FP_DEFAULT, FP_TYPE_FP_ADDSUB_S, FP_TYPE_FP_ADDSUB_D, FP_TYPE_FP_MUL_S, FP_TYPE_FP_MUL_D, FP_TYPE_FP_DIV_S, FP_TYPE_FP_DIV_D, FP_TYPE_FP_MADDSUB_S, FP_TYPE_FP_MADDSUB_D, FP_TYPE_FP_SQRT_S, FP_TYPE_FP_SQRT_D}; >enum attr_cpu {CPU_RIOS1, CPU_RIOS2, CPU_RS64A, CPU_MPCCORE, CPU_PPC403, CPU_PPC405, CPU_PPC440, CPU_PPC476, CPU_PPC601, CPU_PPC603, CPU_PPC604, CPU_PPC604E, CPU_PPC620, CPU_PPC630, CPU_PPC750, CPU_PPC7400, CPU_PPC7450, CPU_PPC8540, CPU_PPCE300C2, CPU_PPCE300C3, CPU_PPCE500MC, CPU_PPCE500MC64, CPU_POWER4, CPU_POWER5, CPU_POWER6, CPU_POWER7, CPU_CELL, CPU_PPCA2, CPU_TITAN}; >enum attr_cell_micro {CELL_MICRO_NOT, CELL_MICRO_CONDITIONAL, CELL_MICRO_ALWAYS}; ># 8 "./insn-attr.h" 2 > > > > >extern enum attr_type get_attr_type (rtx); > > >extern enum attr_fp_type get_attr_fp_type (rtx); > > >extern int get_attr_length (rtx); >extern void shorten_branches (rtx); >extern int insn_default_length (rtx); >extern int insn_min_length (rtx); >extern int insn_variable_length_p (rtx); >extern int insn_current_length (rtx); > ># 1 "../../gcc/insn-addr.h" 1 ># 25 "../../gcc/insn-addr.h" >extern VEC_int_heap *insn_addresses_; >extern int insn_current_address; ># 42 "../../gcc/insn-addr.h" >static __inline__ void >insn_addresses_new (rtx insn, int insn_addr) >{ > unsigned insn_uid = ((((insn))->u.fld[0]).rt_int); > > if ((insn_addresses_ != 0)) > { > size_t size = ((VEC_int_base_length(((__builtin_offsetof (__typeof (*insn_addresses_), base) == 0 || (insn_addresses_)) ? &(insn_addresses_)->base : 0)))); > if (size <= insn_uid) > { > int *p; > (VEC_int_heap_safe_grow(&(insn_addresses_),insn_uid + 1 )); > p = (VEC_int_base_address(((__builtin_offsetof (__typeof (*insn_addresses_), base) == 0 || (insn_addresses_)) ? &(insn_addresses_)->base : 0))); > memset (&p[size], > 0, sizeof (int) * (insn_uid + 1 - size)); > } > (*&((VEC_int_base_address(((__builtin_offsetof (__typeof (*insn_addresses_), base) == 0 || (insn_addresses_)) ? &(insn_addresses_)->base : 0))) [insn_uid])) = insn_addr; > } >} ># 26 "./insn-attr.h" 2 > > >extern enum attr_cpu get_attr_cpu (void); > > >extern enum attr_cell_micro get_attr_cell_micro (rtx); ># 50 "./insn-attr.h" >extern void init_sched_attrs (void); > > >extern int (*internal_dfa_insn_code) (rtx); > > >extern int (*insn_default_latency) (rtx); > > > >extern int bypass_p (rtx); > > > > >extern int insn_latency (rtx, rtx); > > > > >extern int maximal_insn_latency (rtx); ># 83 "./insn-attr.h" >extern const int max_insn_queue_index; > > >typedef void *state_t; > > >extern int state_size (void); > > > >extern void state_reset (state_t); ># 103 "./insn-attr.h" >extern int state_transition (state_t, rtx); ># 115 "./insn-attr.h" >extern int min_issue_delay (state_t, rtx); > > >extern int state_dead_lock_p (state_t); > > > > > > >extern int min_insn_conflict_delay (state_t, rtx, rtx); > > > >extern void print_reservation (FILE *, rtx); ># 143 "./insn-attr.h" >extern unsigned char insn_has_dfa_reservation_p (rtx); > > > > > >extern void dfa_clean_insn_cache (void); > >extern void dfa_clear_single_insn_cache (rtx); > > > > >extern void dfa_start (void); >extern void dfa_finish (void); ># 94 "../../gcc/combine.c" 2 ># 1 "../../gcc/recog.h" 1 ># 28 "../../gcc/recog.h" >enum op_type { > OP_IN, > OP_OUT, > OP_INOUT >}; > >struct operand_alternative >{ > > > const char *constraint; > > > enum reg_class cl; > > > > unsigned int reject; > > > int matches; > > > > int matched; > > > unsigned int earlyclobber:1; > > > unsigned int memory_ok:1; > > unsigned int offmem_ok:1; > > unsigned int nonoffmem_ok:1; > > unsigned int decmem_ok:1; > > unsigned int incmem_ok:1; > > unsigned int is_address:1; > > > unsigned int anything_ok:1; >}; > > >extern void init_recog (void); >extern void init_recog_no_volatile (void); >extern int check_asm_operands (rtx); >extern int asm_operand_ok (rtx, const char *, const char **); >extern unsigned char validate_change (rtx, rtx *, rtx, unsigned char); >extern unsigned char validate_unshare_change (rtx, rtx *, rtx, unsigned char); >extern unsigned char canonicalize_change_group (rtx insn, rtx x); >extern int insn_invalid_p (rtx); >extern int verify_changes (int); >extern void confirm_change_group (void); >extern int apply_change_group (void); >extern int num_validated_changes (void); >extern void cancel_changes (int); >extern int constrain_operands (int); >extern int constrain_operands_cached (int); >extern int memory_address_addr_space_p (enum machine_mode, rtx, addr_space_t); > > >extern int strict_memory_address_addr_space_p (enum machine_mode, rtx, > addr_space_t); > > >extern int validate_replace_rtx_subexp (rtx, rtx, rtx, rtx *); >extern int validate_replace_rtx (rtx, rtx, rtx); >extern int validate_replace_rtx_part (rtx, rtx, rtx *, rtx); >extern int validate_replace_rtx_part_nosimplify (rtx, rtx, rtx *, rtx); >extern void validate_replace_rtx_group (rtx, rtx, rtx); >extern void validate_replace_src_group (rtx, rtx, rtx); >extern unsigned char validate_simplify_insn (rtx insn); >extern int num_changes_pending (void); > > > >extern unsigned char reg_fits_class_p (const_rtx, reg_class_t, int, enum machine_mode); > >extern int offsettable_memref_p (rtx); >extern int offsettable_nonstrict_memref_p (rtx); >extern int offsettable_address_addr_space_p (int, enum machine_mode, rtx, > addr_space_t); > > > >extern unsigned char mode_dependent_address_p (rtx); > >extern int recog (rtx, rtx, int *); > >static __inline__ int recog_memoized (rtx insn); > >extern void add_clobbers (rtx, int); >extern int added_clobbers_hard_reg_p (int); >extern void insn_extract (rtx); >extern void extract_insn (rtx); >extern void extract_constrain_insn_cached (rtx); >extern void extract_insn_cached (rtx); >extern void preprocess_constraints (void); >extern rtx peep2_next_insn (int); >extern int peep2_regno_dead_p (int, int); >extern int peep2_reg_dead_p (int, rtx); > >extern rtx peep2_find_free_register (int, int, const char *, > enum machine_mode, HARD_REG_SET *); > >extern rtx peephole2_insns (rtx, rtx, int *); > >extern int store_data_bypass_p (rtx, rtx); >extern int if_test_bypass_p (rtx, rtx); ># 152 "../../gcc/recog.h" >static __inline__ int >recog_memoized (rtx insn) >{ > if ((((insn)->u.fld[6]).rt_int) < 0) > (((insn)->u.fld[6]).rt_int) = recog ((((insn)->u.fld[4]).rt_rtx), insn, 0); > return (((insn)->u.fld[6]).rt_int); >} > > > > >static __inline__ const char * >skip_alternative (const char *p) >{ > const char *r = p; > while (*r != '\0' && *r != ',') > r++; > if (*r == ',') > r++; > return r; >} > > >extern int volatile_ok; > > > >extern int which_alternative; > > > >struct recog_data >{ > > > > > > > > rtx operand[30]; > > > rtx *operand_loc[30]; > > > const char *constraints[30]; > > > char is_operator[30]; > > > enum machine_mode operand_mode[30]; > > > enum op_type operand_type[30]; > > > > rtx *dup_loc[7]; > > > > char dup_num[7]; ># 228 "../../gcc/recog.h" > char n_operands; > > > char n_dups; > > > char n_alternatives; > > > unsigned char is_asm; > > > > > > unsigned char alternative_enabled_p [30]; > > > rtx insn; >}; > >extern struct recog_data recog_data; > > > >extern struct operand_alternative recog_op_alt[30][30]; > > > > >typedef int (*insn_operand_predicate_fn) (rtx, enum machine_mode); >typedef const char * (*insn_output_fn) (rtx *, rtx); >typedef rtx (*insn_gen_fn) (rtx, ...); > >struct insn_operand_data >{ > const insn_operand_predicate_fn predicate; > > const char *const constraint; > > __extension__ enum machine_mode const mode : 16; > > const char strict_low; > > const char is_operator; > > const char eliminable; > > const char allows_mem; >}; ># 286 "../../gcc/recog.h" >struct insn_data_d >{ > const char *const name; > > union { > const char *single; > const char *const *multi; > insn_output_fn function; > } output; > > > > > > > > const insn_gen_fn genfun; > const struct insn_operand_data *const operand; > > const char n_generator_args; > const char n_operands; > const char n_dups; > const char n_alternatives; > const char output_format; >}; > >extern const struct insn_data_d insn_data[]; >extern int peep2_current_count; ># 95 "../../gcc/combine.c" 2 ># 1 "../../gcc/diagnostic-core.h" 1 ># 28 "../../gcc/diagnostic-core.h" ># 1 "./bversion.h" 1 ># 29 "../../gcc/diagnostic-core.h" 2 > > >typedef enum >{ > ># 1 "../../gcc/diagnostic.def" 1 ># 25 "../../gcc/diagnostic.def" >DK_UNSPECIFIED, > > > > >DK_IGNORED, > > >DK_FATAL, >DK_ICE, >DK_ERROR, >DK_SORRY, >DK_WARNING, >DK_ANACHRONISM, >DK_NOTE, >DK_DEBUG, > > >DK_PEDWARN, >DK_PERMERROR, ># 35 "../../gcc/diagnostic-core.h" 2 > > DK_LAST_DIAGNOSTIC_KIND, > > > DK_POP >} diagnostic_t; > >extern const char *progname; > >extern const char *trim_filename (const char *); ># 59 "../../gcc/diagnostic-core.h" >extern void internal_error (const char *, ...) __attribute__ ((__format__ (__gcc_tdiag__, 1, 2))) __attribute__ ((__nonnull__ (1))) > __attribute__ ((__noreturn__)); > >extern unsigned char warning (int, const char *, ...) __attribute__ ((__format__ (__gcc_tdiag__, 2, 3))) __attribute__ ((__nonnull__ (2))); >extern unsigned char warning_at (location_t, int, const char *, ...) > __attribute__ ((__format__ (__gcc_tdiag__, 3, 4))) __attribute__ ((__nonnull__ (3))); >extern void error (const char *, ...) __attribute__ ((__format__ (__gcc_tdiag__, 1, 2))) __attribute__ ((__nonnull__ (1))); >extern void error_n (location_t, int, const char *, const char *, ...) > __attribute__ ((__format__ (__gcc_tdiag__, 3, 5))) __attribute__ ((__nonnull__ (3))) __attribute__ ((__format__ (__gcc_tdiag__, 4, 5))) __attribute__ ((__nonnull__ (4))); >extern void error_at (location_t, const char *, ...) __attribute__ ((__format__ (__gcc_tdiag__, 2, 3))) __attribute__ ((__nonnull__ (2))); >extern void fatal_error (const char *, ...) __attribute__ ((__format__ (__gcc_tdiag__, 1, 2))) __attribute__ ((__nonnull__ (1))) > __attribute__ ((__noreturn__)); > >extern unsigned char pedwarn (location_t, int, const char *, ...) > __attribute__ ((__format__ (__gcc_tdiag__, 3, 4))) __attribute__ ((__nonnull__ (3))); >extern unsigned char permerror (location_t, const char *, ...) __attribute__ ((__format__ (__gcc_tdiag__, 2, 3))) __attribute__ ((__nonnull__ (2))); >extern void sorry (const char *, ...) __attribute__ ((__format__ (__gcc_tdiag__, 1, 2))) __attribute__ ((__nonnull__ (1))); >extern void inform (location_t, const char *, ...) __attribute__ ((__format__ (__gcc_tdiag__, 2, 3))) __attribute__ ((__nonnull__ (2))); >extern void inform_n (location_t, int, const char *, const char *, ...) > __attribute__ ((__format__ (__gcc_tdiag__, 3, 5))) __attribute__ ((__nonnull__ (3))) __attribute__ ((__format__ (__gcc_tdiag__, 4, 5))) __attribute__ ((__nonnull__ (4))); >extern void verbatim (const char *, ...) __attribute__ ((__format__ (__gcc_tdiag__, 1, 2))) __attribute__ ((__nonnull__ (1))); >extern unsigned char emit_diagnostic (diagnostic_t, location_t, int, > const char *, ...) __attribute__ ((__format__ (__gcc_tdiag__, 4, 5))) __attribute__ ((__nonnull__ (4))); >extern unsigned char seen_error (void); > > > > >extern void fnotice (FILE *, const char *, ...) > __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__nonnull__ (2))); ># 96 "../../gcc/combine.c" 2 ># 1 "../../gcc/target.h" 1 ># 67 "../../gcc/target.h" >typedef union { void *p; } cumulative_args_t; > > > > >typedef enum >{ > SWITCH_TYPE_PASSED, > SWITCH_TYPE_ENABLED, > SWITCH_TYPE_DESCRIPTIVE, > SWITCH_TYPE_LINE_START, > SWITCH_TYPE_LINE_END >} >print_switch_type; > >typedef int (* print_switch_fn_type) (print_switch_type, const char *); > > >extern int elf_record_gcc_switches (print_switch_type type, const char *); > > > > > >extern unsigned char target_default_pointer_address_modes_p (void); > >struct stdarg_info; >struct spec_info_def; >struct hard_reg_set_container; > > >typedef struct secondary_reload_info >{ > > > int icode; > int extra_cost; > > > > struct secondary_reload_info *prev_sri; > int t_icode; >} secondary_reload_info; > > >struct _dep; > > >struct ddg; > > >struct loop; > > >struct ao_ref_s; > > > >struct asm_int_op >{ > const char *hi; > const char *si; > const char *di; > const char *ti; >}; > > >enum vect_cost_for_stmt >{ > scalar_stmt, > scalar_load, > scalar_store, > vector_stmt, > vector_load, > unaligned_load, > unaligned_store, > vector_store, > vec_to_scalar, > scalar_to_vec, > cond_branch_not_taken, > cond_branch_taken, > vec_perm, > vec_promote_demote >}; > > > > > > > ># 1 "../../gcc/target.def" 1 ># 26 "../../gcc/target.def" ># 1 "../../gcc/target-hooks-macros.h" 1 ># 27 "../../gcc/target.def" 2 > > > > >struct gcc_target { > > > >struct asm_out { > > >const char * open_paren; > > > >const char * close_paren; > > >const char * byte_op; > > > >struct asm_int_op aligned_op; >struct asm_int_op unaligned_op; > > > >int (* label_align_after_barrier_max_skip) (rtx label); > > > > > > > >int (* loop_align_max_skip) (rtx label); > > > > > > > >int (* label_align_max_skip) (rtx label); > > > > > > > >int (* jump_align_max_skip) (rtx label); ># 89 "../../gcc/target.def" >unsigned char (* integer) (rtx x, unsigned int size, int aligned_p); ># 98 "../../gcc/target.def" >void (* globalize_label) (FILE *stream, const char *name); > > > > > > >void (* globalize_decl_name) (FILE *stream, tree decl); ># 115 "../../gcc/target.def" >void (* emit_unwind_label) (FILE *stream, tree decl, int for_eh, int empty); > > > > > > >void (* emit_except_table_label) (FILE *stream); > > > > > > >void (* emit_except_personality) (rtx personality); ># 138 "../../gcc/target.def" >void (* unwind_emit) (FILE *stream, rtx insn); > > > > > >unsigned char unwind_emit_before_insn; ># 153 "../../gcc/target.def" >void (* generate_internal_label) (char *buf, const char *prefix, unsigned long labelno); > > > > > > >void (* internal_label) (FILE *stream, const char *prefix, unsigned long labelno); > > > > > > >void (* declare_constant_name) (FILE *file, const char *name, const_tree expr, long long size); > > > > > > >unsigned char (* ttype) (rtx sym); > > > > > > > >void (* assemble_visibility) (tree decl, int visibility); > > > > > > >void (* function_prologue) (FILE *file, long long size); > > > > > > >void (* function_end_prologue) (FILE *file); > > > > > > >void (* function_begin_epilogue) (FILE *file); > > > > > > >void (* function_epilogue) (FILE *file, long long size); > > > > > > >void (* init_sections) (void); ># 226 "../../gcc/target.def" >void (* named_section) (const char *name, unsigned int flags, tree decl); ># 239 "../../gcc/target.def" >section * (* function_section) (tree decl, enum node_frequency freq, unsigned char startup, unsigned char exit); > > > > > > >void (* function_switched_text_sections) (FILE *file, tree decl, unsigned char new_is_cold); ># 260 "../../gcc/target.def" >int (* reloc_rw_mask) (void); ># 270 "../../gcc/target.def" >section * (* select_section) (tree exp, int reloc, unsigned long long align); > > > > > > > >section * (* select_rtx_section) (enum machine_mode mode, rtx x, unsigned long long align); > > > > > > > >void (* unique_section) (tree decl, int reloc); > > > > > > >section * (* function_rodata_section) (tree decl); > > > > > > > >const char * mergeable_rodata_prefix; > > > > > > > >section * (* tm_clone_table_section) (void); > > > > > > >void (* constructor) (rtx symbol, int priority); > > > > > >void (* destructor) (rtx symbol, int priority); ># 332 "../../gcc/target.def" >void (* output_mi_thunk) (FILE *file, tree thunk_fndecl, long long delta, long long vcall_offset, tree function); ># 345 "../../gcc/target.def" >unsigned char (* can_output_mi_thunk) (const_tree thunk_fndecl, long long delta, long long vcall_offset, const_tree function); ># 354 "../../gcc/target.def" >void (* file_start) (void); > > > > > > >void (* file_end) (void); > > > > > > > >void (* lto_start) (void); > > > > > > > >void (* lto_end) (void); > > > > > > > >void (* code_end) (void); > > > > > > > >void (* external_libcall) (rtx symref); > > > > > > > >void (* mark_decl_preserved) (const char *symbol); > > > > > > >int (* record_gcc_switches) (print_switch_type type, const char *text); ># 418 "../../gcc/target.def" >const char * record_gcc_switches_section; > > > > > >void (* output_anchor) (rtx x); > > > > > > >void (* output_dwarf_dtprel) (FILE *file, int size, rtx x); > > > > > > >void (* final_postscan_insn) (FILE *file, rtx insn, rtx *opvec, int noperands); > > > > > > >void (* trampoline_template) (FILE *f); > > > > > >void (* output_source_filename) (FILE *file, const char *name); ># 462 "../../gcc/target.def" >unsigned char (* output_addr_const_extra) (FILE *file, rtx x); ># 477 "../../gcc/target.def" >void (* print_operand) (FILE *file, rtx x, int code); ># 486 "../../gcc/target.def" >void (* print_operand_address) (FILE *file, rtx addr); ># 496 "../../gcc/target.def" >unsigned char (* print_operand_punct_valid_p) (unsigned char code); > > > > > > > >tree (* mangle_assembler_name) (const char *name); ># 514 "../../gcc/target.def" >} asm_out ; > > > > > >struct sched { > > > > >int (* adjust_cost) (rtx insn, rtx link, rtx dep_insn, int cost); > > > > > >int (* adjust_priority) (rtx insn, int priority); > > > > > > > >int (* issue_rate) (void); > > > > > > >int (* variable_issue) (FILE *file, int verbose, rtx insn, int more); > > > > > >void (* init) (FILE *file, int verbose, int max_ready); > > > > > >void (* finish) (FILE *file, int verbose); > > > > > >void (* init_global) (FILE *file, int verbose, int old_max_uid); > > > > > >void (* finish_global) (FILE *file, int verbose); > > > > > > >int (* reorder) (FILE *file, int verbose, rtx *ready, int *n_readyp, int clock); > > > > >int (* reorder2) (FILE *file, int verbose, rtx *ready, int *n_readyp, int clock); > > > > > > > >void (* dependencies_evaluation_hook) (rtx head, rtx tail); ># 605 "../../gcc/target.def" >void (* init_dfa_pre_cycle_insn) (void); > > > > >rtx (* dfa_pre_cycle_insn) (void); > > > > >void (* init_dfa_post_cycle_insn) (void); > > > > >rtx (* dfa_post_cycle_insn) (void); ># 630 "../../gcc/target.def" >void (* dfa_pre_advance_cycle) (void); > > > > >void (* dfa_post_advance_cycle) (void); ># 647 "../../gcc/target.def" >int (* first_cycle_multipass_dfa_lookahead) (void); ># 656 "../../gcc/target.def" >int (* first_cycle_multipass_dfa_lookahead_guard) (rtx insn); ># 670 "../../gcc/target.def" >void (* first_cycle_multipass_begin) (void *data, char *ready_try, int n_ready, unsigned char first_cycle_insn_p); ># 686 "../../gcc/target.def" >void (* first_cycle_multipass_issue) (void *data, char *ready_try, int n_ready, rtx insn, const void *prev_data); ># 701 "../../gcc/target.def" >void (* first_cycle_multipass_backtrack) (const void *data, char *ready_try, int n_ready); ># 714 "../../gcc/target.def" >void (* first_cycle_multipass_end) (const void *data); ># 724 "../../gcc/target.def" >void (* first_cycle_multipass_init) (void *data); ># 734 "../../gcc/target.def" >void (* first_cycle_multipass_fini) (void *data); ># 750 "../../gcc/target.def" >int (* dfa_new_cycle) (FILE *dump, int verbose, rtx insn, int last_clock, int clock, int *sort_p); ># 766 "../../gcc/target.def" >unsigned char (* is_costly_dependence) (struct _dep *_dep, int cost, int distance); > > > > >int (* adjust_cost_2) (rtx insn, int dep_type1, rtx dep_insn, int cost, int dw); ># 781 "../../gcc/target.def" >void (* h_i_d_extended) (void); > > > > > > > >void * (* alloc_sched_context) (void); > > > > > >void (* init_sched_context) (void *tc, unsigned char clean_p); > > > > > >void (* set_sched_context) (void *tc); > > > > > >void (* clear_sched_context) (void *tc); > > > > > >void (* free_sched_context) (void *tc); ># 828 "../../gcc/target.def" >int (* speculate_insn) (rtx insn, int request, rtx *new_pat); > > > > > > > >unsigned char (* needs_block_p) (int dep_status); ># 849 "../../gcc/target.def" >rtx (* gen_spec_check) (rtx insn, rtx label, int mutate_p); ># 860 "../../gcc/target.def" >unsigned char (* first_cycle_multipass_dfa_lookahead_guard_spec) (const_rtx insn); > > > > > > > >void (* set_sched_flags) (struct spec_info_def *spec_info); > > > > >int (* get_insn_spec_ds) (rtx insn); > > > > >int (* get_insn_checked_ds) (rtx insn); > > > > >unsigned char (* skip_rtx_p) (const_rtx x); ># 893 "../../gcc/target.def" >int (* sms_res_mii) (struct ddg *g); > > > > > > > >void (* dispatch_do) (rtx insn, int x); ># 910 "../../gcc/target.def" >unsigned char (* dispatch) (rtx insn, int x); > > > > > >unsigned char exposed_pipeline; ># 926 "../../gcc/target.def" >int (* reassociation_width) (unsigned int opc, enum machine_mode mode); > > > > > > >} sched ; > > > > >struct vectorize { > > > > >tree (* builtin_mask_for_load) (void); > > > > > > >tree (* builtin_vectorized_function) (tree fndecl, tree vec_type_out, tree vec_type_in); > > > > > > > >tree (* builtin_conversion) (unsigned code, tree dest_type, tree src_type); ># 968 "../../gcc/target.def" >tree (* builtin_mul_widen_even) (tree x); > > > > >tree (* builtin_mul_widen_odd) (tree x); > > > > > > > >int (* builtin_vectorization_cost) (enum vect_cost_for_stmt type_of_cost, tree vectype, int misalign); > > > > > > > >unsigned char (* vector_alignment_reachable) (const_tree type, unsigned char is_packed); > > > > > > > >unsigned char (* vec_perm_const_ok) (enum machine_mode, const unsigned char *sel); ># 1006 "../../gcc/target.def" >unsigned char (* support_vector_misalignment) (enum machine_mode mode, const_tree type, int misalignment, unsigned char is_packed); > > > > > > > >tree (* builtin_tm_load) (tree); ># 1023 "../../gcc/target.def" >tree (* builtin_tm_store) (tree); ># 1033 "../../gcc/target.def" >enum machine_mode (* preferred_simd_mode) (enum machine_mode mode); ># 1042 "../../gcc/target.def" >unsigned int (* autovectorize_vector_sizes) (void); > > > > > > > >tree (* builtin_gather) (const_tree mem_vectype, const_tree index_type, int scale); > > > > > > >} vectorize ; > > > > > > > >void (* override_options_after_change) (void); > > > > > >enum machine_mode (* eh_return_filter_mode) (void); > > > > > > >enum machine_mode (* libgcc_cmp_return_mode) (void); > > > > > > >enum machine_mode (* libgcc_shift_count_mode) (void); > > > > > > >enum machine_mode (* unwind_word_mode) (void); > > > > > > >tree (* merge_decl_attributes) (tree olddecl, tree newdecl); > > > > > > >tree (* merge_type_attributes) (tree type1, tree type2); > > > > > > > >const struct attribute_spec * attribute_table; > > > > > > >unsigned char (* attribute_takes_identifier_p) (const_tree name); ># 1130 "../../gcc/target.def" >int (* comp_type_attributes) (const_tree type1, const_tree type2); > > > > > > >void (* set_default_type_attributes) (tree type); > > > > > > >void (* insert_attributes) (tree node, tree *attr_ptr); > > > > > > > >unsigned char (* function_attribute_inlinable_p) (const_tree fndecl); > > > > > > > >unsigned char (* ms_bitfield_layout_p) (const_tree record_type); ># 1169 "../../gcc/target.def" >unsigned char (* words_big_endian) (void); > > > > > > >unsigned char (* float_words_big_endian) (void); > > > > > > >unsigned char (* decimal_float_supported_p) (void); > > > > > > >unsigned char (* fixed_point_supported_p) (void); > > > > > > >unsigned char (* align_anon_bitfield) (void); > > > > > > > >unsigned char (* narrow_volatile_bitfield) (void); > > > > > > >void (* init_builtins) (void); ># 1222 "../../gcc/target.def" >tree (* builtin_decl) (unsigned code, unsigned char initialize_p); > > > > > >rtx (* expand_builtin) (tree exp, rtx target, rtx subtarget, enum machine_mode mode, int ignore); ># 1240 "../../gcc/target.def" >tree (* resolve_overloaded_builtin) (unsigned int loc, tree fndecl, void *arglist); > > > > > >tree (* fold_builtin) (tree fndecl, int n_args, tree *argp, unsigned char ignore); > > > > > > > >tree (* builtin_reciprocal) (unsigned fn, unsigned char md_fn, unsigned char sqrt); ># 1263 "../../gcc/target.def" >const char * (* mangle_type) (const_tree type); > > > > > > >void (* init_libfuncs) (void); > > > > > > >unsigned char libfunc_gnu_prefix; ># 1290 "../../gcc/target.def" >unsigned int (* section_type_flags) (tree decl, const char *name, int reloc); > > > > > > > >unsigned char (* cannot_modify_jumps_p) (void); > > > > > > > >reg_class_t (* branch_target_register_class) (void); ># 1316 "../../gcc/target.def" >unsigned char (* branch_target_register_callee_saved) (unsigned char after_prologue_epilogue_gen); > > > > > > >unsigned char (* have_conditional_execution) (void); > > > > > > >unsigned (* loop_unroll_adjust) (unsigned nunroll, struct loop *loop); > > > > > > >unsigned char (* legitimate_constant_p) (enum machine_mode mode, rtx x); > > > > > > >unsigned char (* cannot_force_const_mem) (enum machine_mode mode, rtx x); > > > > > >unsigned char (* cannot_copy_insn_p) (rtx); > > > > > >unsigned char (* commutative_p) (const_rtx x, int outer_code); > > > > > > > >unsigned char (* mode_dependent_address_p) (const_rtx addr); > > > > > > > >rtx (* legitimize_address) (rtx x, rtx oldx, enum machine_mode mode); > > > > > > >rtx (* delegitimize_address) (rtx x); > > > > > > > >unsigned char (* const_not_ok_for_debug_p) (rtx x); > > > > > > >unsigned char (* legitimate_address_p) (enum machine_mode mode, rtx x, unsigned char strict); > > > > > > >unsigned char (* use_blocks_for_constant_p) (enum machine_mode mode, const_rtx x); > > > > > > >long long min_anchor_offset; > > > > >long long max_anchor_offset; > > > > > >unsigned char (* use_anchors_for_symbol_p) (const_rtx x); ># 1428 "../../gcc/target.def" >unsigned char (* function_ok_for_sibcall) (tree decl, tree exp); ># 1437 "../../gcc/target.def" >void (* set_current_function) (tree decl); > > > > > >unsigned char (* in_small_data_p) (const_tree exp); > > > > > > > >unsigned char (* binds_local_p) (const_tree exp); > > > > > > >unsigned char (* profile_before_prologue) (void); ># 1470 "../../gcc/target.def" >tree (* mangle_decl_assembler_name) (tree decl, tree id); > > > > > > > >void (* encode_section_info) (tree decl, rtx rtl, int new_decl_p); > > > > > > >const char * (* strip_name_encoding) (const char *name); > > > > > > > >unsigned long long (* shift_truncation_mask) (enum machine_mode mode); ># 1502 "../../gcc/target.def" >unsigned int (* min_divisions_for_recip_mul) (enum machine_mode mode); ># 1513 "../../gcc/target.def" >int (* mode_rep_extended) (enum machine_mode mode, enum machine_mode rep_mode); > > > > > > >unsigned char (* valid_pointer_mode) (enum machine_mode mode); > > > > > > >unsigned char (* ref_may_alias_errno) (struct ao_ref_s *ref); ># 1540 "../../gcc/target.def" >struct addr_space { > > >enum machine_mode (* pointer_mode) (addr_space_t address_space); > > > > > > >enum machine_mode (* address_mode) (addr_space_t address_space); > > > > > > > >unsigned char (* valid_pointer_mode) (enum machine_mode mode, addr_space_t as); > > > > > > > >unsigned char (* legitimate_address_p) (enum machine_mode mode, rtx exp, unsigned char strict, addr_space_t as); ># 1575 "../../gcc/target.def" >rtx (* legitimize_address) (rtx x, rtx oldx, enum machine_mode mode, addr_space_t as); > > > > > > >unsigned char (* subset_p) (addr_space_t subset, addr_space_t superset); > > > > > > >rtx (* convert) (rtx op, tree from_type, tree to_type); > > > > > >} addr_space ; > > > > > > > >unsigned char (* scalar_mode_supported_p) (enum machine_mode mode); ># 1612 "../../gcc/target.def" >unsigned char (* vector_mode_supported_p) (enum machine_mode mode); > > > > > > > >unsigned char (* array_mode_supported_p) (enum machine_mode mode, unsigned long long nelems); ># 1652 "../../gcc/target.def" >int (* register_move_cost) (enum machine_mode mode, reg_class_t from, reg_class_t to); ># 1661 "../../gcc/target.def" >int (* memory_move_cost) (enum machine_mode mode, reg_class_t rclass, unsigned char in); ># 1671 "../../gcc/target.def" >unsigned char (* small_register_classes_for_mode_p) (enum machine_mode mode); > > > > > > > >unsigned int flags_regnum; ># 1691 "../../gcc/target.def" >unsigned char (* rtx_costs) (rtx x, int code, int outer_code, int opno, int *total, unsigned char speed); > > > > > > > >int (* address_cost) (rtx address, unsigned char speed); > > > > > > >rtx (* allocate_initial_value) (rtx hard_reg); > > > > > > >int (* unspec_may_trap_p) (const_rtx x, unsigned flags); ># 1725 "../../gcc/target.def" >rtx (* dwarf_register_span) (rtx reg); ># 1735 "../../gcc/target.def" >void (* init_dwarf_reg_sizes_extra) (tree address); ># 1748 "../../gcc/target.def" >unsigned char (* fixed_condition_code_regs) (unsigned int *p1, unsigned int *p2); ># 1759 "../../gcc/target.def" >enum machine_mode (* cc_modes_compatible) (enum machine_mode m1, enum machine_mode m2); > > > > > > > >void (* machine_dependent_reorg) (void); > > > > > >tree (* build_builtin_va_list) (void); > > > > > > >int (* enum_va_list_p) (int idx, const char **pname, tree *ptree); > > > > > > >tree (* fn_abi_va_list) (tree fndecl); > > > > > > >tree (* canonical_va_list_type) (tree type); > > > > > > >void (* expand_builtin_va_start) (tree valist, rtx nextarg); > > > > > >tree (* gimplify_va_arg_expr) (tree valist, tree type, gimple_seq *pre_p, gimple_seq *post_p); ># 1818 "../../gcc/target.def" >void * (* get_pch_validity) (size_t *sz); > > > > > >const char * (* pch_valid_p) (const void *data, size_t sz); > > > > > >void (* prepare_pch_save) (void); ># 1842 "../../gcc/target.def" >const char * (* check_pch_target_flags) (int pch_flags); > > > > > > > >unsigned char (* default_short_enums) (void); > > > > > > > >rtx (* builtin_setjmp_frame_value) (void); > > > > > > > >tree (* md_asm_clobbers) (tree outputs, tree inputs, tree clobbers); ># 1877 "../../gcc/target.def" >int (* dwarf_calling_convention) (const_tree function); ># 1890 "../../gcc/target.def" >void (* dwarf_handle_frame_unspec) (const char *label, rtx pattern, int index); > > > > > >unsigned char (* stdarg_optimize_hook) (struct stdarg_info *ai, const_gimple stmt); ># 1906 "../../gcc/target.def" >tree (* stack_protect_guard) (void); > > > > > > > >tree (* stack_protect_fail) (void); > > > > > > > >const char * (* invalid_within_doloop) (const_rtx insn); > > > > > >unsigned char (* valid_dllimport_attribute_p) (const_tree decl); ># 1938 "../../gcc/target.def" >unsigned long long const_anchor; > > > > > > >struct calls { > >enum machine_mode (* promote_function_mode) (const_tree type, enum machine_mode mode, int *punsignedp, const_tree funtype, int for_return); > > > > > > >unsigned char (* promote_prototypes) (const_tree fntype); > > > > > >rtx (* struct_value_rtx) (tree fndecl, int incoming); > > > > >unsigned char (* return_in_memory) (const_tree type, const_tree fntype); > > > > > >unsigned char (* return_in_msb) (const_tree type); ># 1980 "../../gcc/target.def" >unsigned char (* pass_by_reference) (cumulative_args_t cum, enum machine_mode mode, const_tree type, unsigned char named); > > > > > > >rtx (* expand_builtin_saveregs) (void); > > > > > > >void (* setup_incoming_varargs) (cumulative_args_t args_so_far, enum machine_mode mode, tree type, int *pretend_args_size, int second_time); > > > > > > >unsigned char (* strict_argument_naming) (cumulative_args_t ca); ># 2010 "../../gcc/target.def" >unsigned char (* pretend_outgoing_varargs_named) (cumulative_args_t ca); > > > > > > > >unsigned char (* split_complex_arg) (const_tree type); ># 2027 "../../gcc/target.def" >unsigned char (* must_pass_in_stack) (enum machine_mode mode, const_tree type); ># 2036 "../../gcc/target.def" >unsigned char (* callee_copies) (cumulative_args_t cum, enum machine_mode mode, const_tree type, unsigned char named); ># 2046 "../../gcc/target.def" >int (* arg_partial_bytes) (cumulative_args_t cum, enum machine_mode mode, tree type, unsigned char named); ># 2055 "../../gcc/target.def" >void (* function_arg_advance) (cumulative_args_t ca, enum machine_mode mode, const_tree type, unsigned char named); ># 2066 "../../gcc/target.def" >rtx (* function_arg) (cumulative_args_t ca, enum machine_mode mode, const_tree type, unsigned char named); ># 2075 "../../gcc/target.def" >rtx (* function_incoming_arg) (cumulative_args_t ca, enum machine_mode mode, const_tree type, unsigned char named); > > > > > > >unsigned int (* function_arg_boundary) (enum machine_mode mode, const_tree type); > > > > > >unsigned int (* function_arg_round_boundary) (enum machine_mode mode, const_tree type); ># 2099 "../../gcc/target.def" >const char * (* invalid_arg_for_unprototyped_fn) (const_tree typelist, const_tree funcdecl, const_tree val); > > > > > > > >rtx (* function_value) (const_tree ret_type, const_tree fn_decl_or_type, unsigned char outgoing); > > > > > > > >rtx (* libcall_value) (enum machine_mode mode, const_rtx fun); > > > > > > > >unsigned char (* function_value_regno_p) (const unsigned int regno); > > > > > > >rtx (* internal_arg_pointer) (void); > > > > > > > >void (* update_stack_boundary) (void); > > > > > > >rtx (* get_drap_rtx) (void); > > > > > > >unsigned char (* allocate_stack_slots_for_args) (void); > > > > > > > >rtx (* static_chain) (const_tree fndecl, unsigned char incoming_p); > > > > > > > >void (* trampoline_init) (rtx m_tramp, tree fndecl, rtx static_chain); > > > > > > >rtx (* trampoline_adjust_address) (rtx addr); ># 2184 "../../gcc/target.def" >int (* return_pops_args) (tree fundecl, tree funtype, int size); > > > > > > > >enum machine_mode (* get_raw_result_mode) (int regno); ># 2202 "../../gcc/target.def" >enum machine_mode (* get_raw_arg_mode) (int regno); > > > > > > > >} calls ; > > > >const char * (* invalid_conversion) (const_tree fromtype, const_tree totype); > > > > > > > >const char * (* invalid_unary_op) (int op, const_tree type); > > > > > > > >const char * (* invalid_binary_op) (int op, const_tree type1, const_tree type2); > > > > > > > >const char * (* invalid_parameter_type) (const_tree type); > > > > > > > >const char * (* invalid_return_type) (const_tree type); ># 2255 "../../gcc/target.def" >tree (* promoted_type) (const_tree type); ># 2264 "../../gcc/target.def" >tree (* convert_to_type) (tree type, tree expr); > > > > > > >reg_class_t (* secondary_reload) (unsigned char in_p, rtx x, reg_class_t reload_class, enum machine_mode reload_mode, secondary_reload_info *sri); ># 2281 "../../gcc/target.def" >reg_class_t (* preferred_reload_class) (rtx x, reg_class_t rclass); ># 2290 "../../gcc/target.def" >reg_class_t (* preferred_output_reload_class) (rtx x, reg_class_t rclass); > > > > > > >unsigned char (* class_likely_spilled_p) (reg_class_t rclass); > > > > > > > >unsigned char (* class_max_nregs) (reg_class_t rclass, enum machine_mode mode); > > > > > >reg_class_t (* preferred_rename_class) (reg_class_t rclass); ># 2328 "../../gcc/target.def" >void (* expand_to_rtl_hook) (void); ># 2337 "../../gcc/target.def" >void (* instantiate_decls) (void); > > > > > > > >unsigned char (* hard_regno_scratch_ok) (unsigned int regno); > > > > > > > >unsigned int (* case_values_threshold) (void); > > > > > > >unsigned char (* frame_pointer_required) (void); > > > > > > > >unsigned char (* can_eliminate) (const int from_reg, const int to_reg); ># 2377 "../../gcc/target.def" >void (* conditional_register_usage) (void); ># 2386 "../../gcc/target.def" >struct c { > > >enum machine_mode (* mode_for_suffix) (char c); > > > > > > >} c ; > > > > >struct cxx { > > >tree (* guard_type) (void); > > > > > > >unsigned char (* guard_mask_bit) (void); > > > > > > >tree (* get_cookie_size) (tree type); > > > > > > >unsigned char (* cookie_has_size) (void); > > > > > > > >int (* import_export_class) (tree type, int import_export); > > > > > >unsigned char (* cdtor_returns_this) (void); ># 2448 "../../gcc/target.def" >unsigned char (* key_method_may_be_inline) (void); > > > > > >void (* determine_class_data_visibility) (tree decl); ># 2470 "../../gcc/target.def" >unsigned char (* class_data_always_comdat) (void); ># 2479 "../../gcc/target.def" >unsigned char (* library_rtti_comdat) (void); > > > > > > > >unsigned char (* use_aeabi_atexit) (void); > > > > > > > >unsigned char (* use_atexit_for_cxa_atexit) (void); > > > > > >void (* adjust_class_at_definition) (tree type); > > > > > > > >tree (* decl_mangling_context) (const_tree decl); > > > > > >} cxx ; > > > > >struct emutls { > > >const char * get_address; > > > > >const char * register_common; > > > > > >const char * var_section; > > > > >const char * tmpl_section; > > > > > >const char * var_prefix; > > > > >const char * tmpl_prefix; > > > > > >tree (* var_fields) (tree type, tree *name); > > > > > > >tree (* var_init) (tree var, tree decl, tree tmpl_addr); > > > > > > > >unsigned char var_align_fixed; > > > > > >unsigned char debug_form_tls_address; > > > > >} emutls ; > > > >struct target_option_hooks { > > > > >unsigned char (* valid_attribute_p) (tree fndecl, tree name, tree args, int flags); > > > > > > >void (* save) (struct cl_target_option *ptr); > > > > > > >void (* restore) (struct cl_target_option *ptr); > > > > > > >void (* print) (FILE *file, int indent, struct cl_target_option *ptr); ># 2622 "../../gcc/target.def" >unsigned char (* pragma_parse) (tree args, tree pop_target); > > > > > > >void (* override) (void); ># 2638 "../../gcc/target.def" >unsigned char (* can_inline_p) (tree caller, tree callee); > > > > > >} target_option ; > > > > >void (* extra_live_on_entry) (bitmap regs); > > > > > > >void (* set_up_by_prologue) (struct hard_reg_set_container *); > > > > > > > >enum unwind_info_type (* debug_unwind_info) (void); > > > > > >unsigned char atomic_test_and_set_trueval; ># 2681 "../../gcc/target.def" >unsigned char have_switchable_bss_sections; > > > > > > >unsigned char have_ctors_dtors; > > > > > >unsigned char have_tls; > > > > > >unsigned char have_srodata_section; > > > > > >unsigned char terminate_dw2_eh_frame_info; > > > > > >unsigned char asm_file_start_app_off; > > > > > > >unsigned char asm_file_start_file_directive; > > > > >unsigned char handle_pragma_extern_prefix; > > > > > > >unsigned char relaxed_ordering; > > > > > > >unsigned char arm_eabi_unwinder; > > > > >unsigned char want_debug_pub_sections; > > > > > > >unsigned char delay_sched2; > > > > >unsigned char delay_vartrack; > > > > > > > >} ; ># 159 "../../gcc/target.h" 2 > >extern struct gcc_target targetm; > > > > > > > >static __inline__ CUMULATIVE_ARGS * >get_cumulative_args (cumulative_args_t arg) >{ > > > > return (CUMULATIVE_ARGS *) arg.p; >} > >static __inline__ cumulative_args_t >pack_cumulative_args (CUMULATIVE_ARGS *arg) >{ > cumulative_args_t ret; > > > > > ret.p = (void *) arg; > return ret; >} ># 97 "../../gcc/combine.c" 2 ># 1 "../../gcc/optabs.h" 1 ># 24 "../../gcc/optabs.h" ># 1 "./insn-codes.h" 1 > > > > > > >enum insn_code { ># 24 "./insn-codes.h" > CODE_FOR_load_macho_picbase_si = 0, > CODE_FOR_load_macho_picbase_di = 1, > CODE_FOR_macho_correct_pic_si = 2, > CODE_FOR_macho_correct_pic_di = 3, > CODE_FOR_extendqidi2 = 17, > CODE_FOR_extendqisi2_ppc = 31, > CODE_FOR_extendqihi2_ppc = 37, > CODE_FOR_dlmzb = 77, > > CODE_FOR_one_cmplsi2 = 84, > CODE_FOR_one_cmpldi2 = 85, > CODE_FOR_abssi2_isel = 99, > CODE_FOR_absdi2_isel = 100, > CODE_FOR_nabssi2_isel = 101, > CODE_FOR_nabsdi2_isel = 102, > CODE_FOR_abssi2_nopower = 103, > CODE_FOR_clzsi2 = 111, > CODE_FOR_clzdi2 = 112, > CODE_FOR_popcntbsi2 = 113, > CODE_FOR_popcntbdi2 = 114, > CODE_FOR_popcntdsi2 = 115, > CODE_FOR_popcntddi2 = 116, > CODE_FOR_paritysi2_cmpb = 117, > CODE_FOR_paritydi2_cmpb = 118, > CODE_FOR_bswaphi2_internal = 121, > CODE_FOR_bswapdi2_32bit = 126, > > CODE_FOR_mulsi3_no_mq = 127, > > > CODE_FOR_mulh_call = 140, > CODE_FOR_mull_call = 141, > CODE_FOR_divss_call = 142, > CODE_FOR_divus_call = 143, > CODE_FOR_quoss_call = 144, > CODE_FOR_quous_call = 145, > CODE_FOR_andsi3_mc = 146, > CODE_FOR_andsi3_nomc = 147, > CODE_FOR_andsi3_internal0_nomc = 148, > CODE_FOR_insvsi = 163, > CODE_FOR_insvdi = 170, > CODE_FOR_extzvsi = 173, > CODE_FOR_extzvdi = 176, > CODE_FOR_rotlsi3 = 179, > > CODE_FOR_ashlsi3_no_power = 192, > CODE_FOR_rlwinm = 196, > > CODE_FOR_lshrsi3_no_power = 199, > > CODE_FOR_ashrsi3_no_power = 212, > CODE_FOR_aux_truncdfsf2 = 218, > CODE_FOR_fres = 230, > CODE_FOR_copysignsf3_fcpsgn = 238, > CODE_FOR_copysigndf3_fcpsgn = 239, > CODE_FOR_isel_signed_si = 240, > CODE_FOR_isel_signed_di = 241, > CODE_FOR_isel_unsigned_si = 242, > CODE_FOR_isel_unsigned_di = 243, > CODE_FOR_lfiwax = 266, > CODE_FOR_floatsisf2_lfiwax = 267, > CODE_FOR_floatsidf2_lfiwax = 268, > CODE_FOR_floatsisf2_lfiwax_mem = 269, > CODE_FOR_floatsidf2_lfiwax_mem = 270, > CODE_FOR_lfiwzx = 271, > CODE_FOR_floatunssisf2_lfiwzx = 272, > CODE_FOR_floatunssidf2_lfiwzx = 273, > CODE_FOR_floatunssisf2_lfiwzx_mem = 274, > CODE_FOR_floatunssidf2_lfiwzx_mem = 275, > CODE_FOR_fix_truncsfsi2_stfiwx = 278, > CODE_FOR_fix_truncdfsi2_stfiwx = 279, > CODE_FOR_fix_truncsfsi2_internal = 280, > CODE_FOR_fix_truncdfsi2_internal = 281, > CODE_FOR_fixuns_truncsfsi2_stfiwx = 284, > CODE_FOR_fixuns_truncdfsi2_stfiwx = 285, > CODE_FOR_fctiwz_sf = 288, > CODE_FOR_fctiwz_df = 289, > CODE_FOR_fctiwuz_sf = 290, > CODE_FOR_fctiwuz_df = 291, > CODE_FOR_lrintsfdi2 = 297, > CODE_FOR_lrintdfdi2 = 298, > CODE_FOR_roundsf2 = 305, > CODE_FOR_rounddf2 = 306, > CODE_FOR_stfiwx = 307, > CODE_FOR_floatdisf2_fcfids = 312, > CODE_FOR_floatdisf2_internal1 = 314, > CODE_FOR_floatunsdisf2_fcfidus = 315, > > > > > > > > CODE_FOR_ashrdi3_no_power = 324, > CODE_FOR_absdi2_internal = 326, > CODE_FOR_muldi3 = 328, > CODE_FOR_smuldi3_highpart = 331, > CODE_FOR_umuldi3_highpart = 332, > CODE_FOR_rotldi3 = 333, > CODE_FOR_ashldi3_internal5 = 352, > CODE_FOR_ashldi3_internal8 = 355, > CODE_FOR_anddi3_mc = 363, > CODE_FOR_anddi3_nomc = 364, > > CODE_FOR_trunctfdf2_internal1 = 393, > CODE_FOR_trunctfdf2_internal2 = 394, > CODE_FOR_trunctfsf2_fprs = 395, > CODE_FOR_fix_trunc_helper = 396, > CODE_FOR_negtf2_internal = 398, > CODE_FOR_movdi_si_update = 426, > CODE_FOR_movdi_di_update = 427, > CODE_FOR_movdi_si_update_stack = 428, > CODE_FOR_movdi_di_update_stack = 429, > CODE_FOR_movsi_update = 432, > CODE_FOR_movsi_update_stack = 433, > CODE_FOR_tls_gd_aix32 = 449, > CODE_FOR_tls_gd_aix64 = 450, > CODE_FOR_tls_gd_sysvsi = 451, > CODE_FOR_tls_gd_sysvdi = 452, > CODE_FOR_tls_ld_aix32 = 463, > CODE_FOR_tls_ld_aix64 = 464, > CODE_FOR_tls_ld_sysvsi = 465, > CODE_FOR_tls_ld_sysvdi = 466, > CODE_FOR_tls_dtprel_32 = 477, > CODE_FOR_tls_dtprel_64 = 478, > CODE_FOR_tls_dtprel_ha_32 = 479, > CODE_FOR_tls_dtprel_ha_64 = 480, > CODE_FOR_tls_dtprel_lo_32 = 481, > CODE_FOR_tls_dtprel_lo_64 = 482, > CODE_FOR_tls_got_dtprel_32 = 483, > CODE_FOR_tls_got_dtprel_64 = 484, > CODE_FOR_tls_tprel_32 = 489, > CODE_FOR_tls_tprel_64 = 490, > CODE_FOR_tls_tprel_ha_32 = 491, > CODE_FOR_tls_tprel_ha_64 = 492, > CODE_FOR_tls_tprel_lo_32 = 493, > CODE_FOR_tls_tprel_lo_64 = 494, > CODE_FOR_tls_got_tprel_32 = 495, > CODE_FOR_tls_got_tprel_64 = 496, > CODE_FOR_tls_tls_32 = 501, > CODE_FOR_tls_tls_64 = 502, > CODE_FOR_load_toc_aix_si = 503, > CODE_FOR_load_toc_aix_di = 504, > CODE_FOR_load_toc_v4_pic_si = 505, > CODE_FOR_load_toc_v4_PIC_1_normal = 506, > > CODE_FOR_load_toc_v4_PIC_1b_normal = 507, > > CODE_FOR_load_toc_v4_PIC_2 = 508, > CODE_FOR_load_toc_v4_PIC_3b = 509, > CODE_FOR_load_toc_v4_PIC_3c = 510, > CODE_FOR_elf_high = 511, > CODE_FOR_elf_low = 512, > CODE_FOR_largetoc_high = 513, > CODE_FOR_largetoc_low = 514, > CODE_FOR_call_indirect_aix32bit = 519, > CODE_FOR_call_indirect_aix64bit = 520, > CODE_FOR_call_indirect_aix32bit_nor11 = 521, > CODE_FOR_call_indirect_aix64bit_nor11 = 522, > CODE_FOR_call_value_indirect_aix32bit = 523, > CODE_FOR_call_value_indirect_aix64bit = 524, > CODE_FOR_call_value_indirect_aix32bit_nor11 = 525, > CODE_FOR_call_value_indirect_aix64bit_nor11 = 526, > CODE_FOR_blockage = 555, > CODE_FOR_probe_stack = 556, > CODE_FOR_probe_stack_rangesi = 557, > CODE_FOR_probe_stack_rangedi = 558, > CODE_FOR_stack_protect_setsi = 559, > CODE_FOR_stack_protect_setdi = 560, > CODE_FOR_stack_protect_testsi = 561, > CODE_FOR_stack_protect_testdi = 562, > > CODE_FOR_move_from_CR_ov_bit = 575, > CODE_FOR_jump = 663, > CODE_FOR_return = 664, > CODE_FOR_simple_return = 665, > CODE_FOR_nop = 670, > CODE_FOR_trap = 679, > CODE_FOR_movesi_from_cr = 683, > CODE_FOR_stack_tie = 697, > CODE_FOR_frame_tie = 698, > CODE_FOR_eh_set_lr_si = 726, > CODE_FOR_eh_set_lr_di = 727, > CODE_FOR_prefetch = 728, > CODE_FOR_bpermd_si = 729, > CODE_FOR_bpermd_di = 730, > CODE_FOR_isync = 733, > CODE_FOR_loadsync = 734, > CODE_FOR_load_lockedsi = 735, > CODE_FOR_load_lockeddi = 736, > CODE_FOR_store_conditionalsi = 737, > CODE_FOR_store_conditionaldi = 738, > CODE_FOR_vsx_fredf2 = 773, > CODE_FOR_vsx_frev4sf2 = 774, > CODE_FOR_vsx_frev2df2 = 775, > CODE_FOR_vsx_nabsdf2 = 782, > CODE_FOR_vsx_nabsv4sf2 = 783, > CODE_FOR_vsx_nabsv2df2 = 784, > CODE_FOR_vsx_smaxdf3 = 785, > CODE_FOR_vsx_smaxv4sf3 = 786, > CODE_FOR_vsx_smaxv2df3 = 787, > CODE_FOR_vsx_eqv4sf = 814, > CODE_FOR_vsx_eqv2df = 815, > CODE_FOR_vsx_gtv4sf = 816, > CODE_FOR_vsx_gtv2df = 817, > CODE_FOR_vsx_copysigndf3 = 841, > CODE_FOR_vsx_copysignv4sf3 = 842, > CODE_FOR_vsx_copysignv2df3 = 843, > CODE_FOR_vsx_floatdidf2 = 844, > CODE_FOR_vsx_floatv4siv4sf2 = 845, > CODE_FOR_vsx_floatv2div2df2 = 846, > CODE_FOR_vsx_floatunsdidf2 = 847, > CODE_FOR_vsx_floatunsv4siv4sf2 = 848, > CODE_FOR_vsx_floatunsv2div2df2 = 849, > CODE_FOR_vsx_fix_truncdfdi2 = 850, > CODE_FOR_vsx_fix_truncv4sfv4si2 = 851, > CODE_FOR_vsx_fix_truncv2dfv2di2 = 852, > CODE_FOR_vsx_fixuns_truncdfdi2 = 853, > CODE_FOR_vsx_fixuns_truncv4sfv4si2 = 854, > CODE_FOR_vsx_fixuns_truncv2dfv2di2 = 855, > CODE_FOR_vsx_xsrdpi = 856, > CODE_FOR_vsx_xvrspi = 857, > CODE_FOR_vsx_xvrdpi = 858, > CODE_FOR_vsx_xsrdpic = 859, > CODE_FOR_vsx_xvrspic = 860, > CODE_FOR_vsx_xvrdpic = 861, > CODE_FOR_vsx_btruncdf2 = 862, > CODE_FOR_vsx_btruncv4sf2 = 863, > CODE_FOR_vsx_btruncv2df2 = 864, > CODE_FOR_vsx_floordf2 = 868, > CODE_FOR_vsx_floorv4sf2 = 869, > CODE_FOR_vsx_floorv2df2 = 870, > CODE_FOR_vsx_ceildf2 = 871, > CODE_FOR_vsx_ceilv4sf2 = 872, > CODE_FOR_vsx_ceilv2df2 = 873, > CODE_FOR_vsx_xscvdpsp = 874, > CODE_FOR_vsx_xvcvspdp = 875, > CODE_FOR_vsx_xvcvdpsp = 876, > CODE_FOR_vsx_xscvspdp = 877, > CODE_FOR_vsx_xscvdpsp_scalar = 878, > CODE_FOR_vsx_xscvspdp_scalar2 = 879, > CODE_FOR_vsx_xvcvdpsxws = 880, > CODE_FOR_vsx_xvcvdpuxws = 881, > CODE_FOR_vsx_xvcvsxdsp = 882, > CODE_FOR_vsx_xvcvuxdsp = 883, > CODE_FOR_vsx_xvcvsxwdp = 884, > CODE_FOR_vsx_xvcvuxwdp = 885, > CODE_FOR_vsx_xvcvspsxds = 886, > CODE_FOR_vsx_xvcvspuxds = 887, > CODE_FOR_vsx_concat_v2df = 932, > CODE_FOR_vsx_concat_v2di = 933, > CODE_FOR_vsx_concat_v2sf = 934, > CODE_FOR_vsx_set_v2df = 935, > CODE_FOR_vsx_set_v2di = 936, > CODE_FOR_vsx_extract_v2df = 937, > CODE_FOR_vsx_extract_v2di = 938, > CODE_FOR_vsx_extract_v4sf = 941, > CODE_FOR_vsx_xxpermdi2_v2df_1 = 942, > CODE_FOR_vsx_xxpermdi2_v2di_1 = 943, > CODE_FOR_vsx_splat_v2df = 944, > CODE_FOR_vsx_splat_v2di = 945, > CODE_FOR_vsx_xxspltw_v4sf = 946, > CODE_FOR_vsx_xxspltw_v4si = 947, > CODE_FOR_vsx_xxmrghw_v4sf = 948, > CODE_FOR_vsx_xxmrghw_v4si = 949, > CODE_FOR_vsx_xxmrglw_v4sf = 950, > CODE_FOR_vsx_xxmrglw_v4si = 951, > CODE_FOR_vsx_xxsldwi_v16qi = 952, > CODE_FOR_vsx_xxsldwi_v8hi = 953, > CODE_FOR_vsx_xxsldwi_v4si = 954, > CODE_FOR_vsx_xxsldwi_v2di = 955, > CODE_FOR_vsx_xxsldwi_v4sf = 956, > CODE_FOR_vsx_xxsldwi_v2df = 957, > CODE_FOR_vsx_xxsldwi_ti = 958, > CODE_FOR_get_vrsave_internal = 978, > CODE_FOR_addv4si3 = 980, > CODE_FOR_addv8hi3 = 981, > CODE_FOR_addv16qi3 = 982, > CODE_FOR_altivec_vaddcuw = 984, > CODE_FOR_altivec_vadduws = 985, > CODE_FOR_altivec_vadduhs = 986, > CODE_FOR_altivec_vaddubs = 987, > CODE_FOR_altivec_vaddsws = 988, > CODE_FOR_altivec_vaddshs = 989, > CODE_FOR_altivec_vaddsbs = 990, > CODE_FOR_subv4si3 = 991, > CODE_FOR_subv8hi3 = 992, > CODE_FOR_subv16qi3 = 993, > CODE_FOR_altivec_vsubcuw = 995, > CODE_FOR_altivec_vsubuws = 996, > CODE_FOR_altivec_vsubuhs = 997, > CODE_FOR_altivec_vsububs = 998, > CODE_FOR_altivec_vsubsws = 999, > CODE_FOR_altivec_vsubshs = 1000, > CODE_FOR_altivec_vsubsbs = 1001, > CODE_FOR_altivec_vavguw = 1002, > CODE_FOR_altivec_vavguh = 1003, > CODE_FOR_altivec_vavgub = 1004, > CODE_FOR_altivec_vavgsw = 1005, > CODE_FOR_altivec_vavgsh = 1006, > CODE_FOR_altivec_vavgsb = 1007, > CODE_FOR_altivec_vcmpbfp = 1008, > CODE_FOR_altivec_vmsumuhm = 1037, > CODE_FOR_altivec_vmsumubm = 1038, > CODE_FOR_altivec_vmsummhm = 1039, > CODE_FOR_altivec_vmsummbm = 1040, > CODE_FOR_altivec_vmsumshm = 1041, > CODE_FOR_altivec_vmsumuhs = 1042, > CODE_FOR_altivec_vmsumshs = 1043, > CODE_FOR_umaxv4si3 = 1044, > CODE_FOR_umaxv8hi3 = 1045, > CODE_FOR_umaxv16qi3 = 1046, > CODE_FOR_smaxv4si3 = 1047, > CODE_FOR_smaxv8hi3 = 1048, > CODE_FOR_smaxv16qi3 = 1049, > CODE_FOR_uminv4si3 = 1051, > CODE_FOR_uminv8hi3 = 1052, > CODE_FOR_uminv16qi3 = 1053, > CODE_FOR_sminv4si3 = 1054, > CODE_FOR_sminv8hi3 = 1055, > CODE_FOR_sminv16qi3 = 1056, > CODE_FOR_altivec_vmhaddshs = 1058, > CODE_FOR_altivec_vmhraddshs = 1059, > CODE_FOR_altivec_vmladduhm = 1060, > CODE_FOR_altivec_vmrghb = 1061, > CODE_FOR_altivec_vmrghh = 1062, > CODE_FOR_altivec_vmrghw = 1063, > CODE_FOR_altivec_vmrglb = 1065, > CODE_FOR_altivec_vmrglh = 1066, > CODE_FOR_altivec_vmrglw = 1067, > CODE_FOR_altivec_vmuleub = 1069, > CODE_FOR_altivec_vmulesb = 1070, > CODE_FOR_altivec_vmuleuh = 1071, > CODE_FOR_altivec_vmulesh = 1072, > CODE_FOR_altivec_vmuloub = 1073, > CODE_FOR_altivec_vmulosb = 1074, > CODE_FOR_altivec_vmulouh = 1075, > CODE_FOR_altivec_vmulosh = 1076, > CODE_FOR_altivec_vpkuhum = 1119, > CODE_FOR_altivec_vpkuwum = 1120, > CODE_FOR_altivec_vpkpx = 1121, > CODE_FOR_altivec_vpkshss = 1122, > CODE_FOR_altivec_vpkswss = 1123, > CODE_FOR_altivec_vpkuhus = 1124, > CODE_FOR_altivec_vpkshus = 1125, > CODE_FOR_altivec_vpkuwus = 1126, > CODE_FOR_altivec_vpkswus = 1127, > CODE_FOR_altivec_vsl = 1131, > CODE_FOR_altivec_vslo = 1132, > CODE_FOR_altivec_vsr = 1142, > CODE_FOR_altivec_vsro = 1143, > CODE_FOR_altivec_vsum4ubs = 1144, > CODE_FOR_altivec_vsum4shs = 1145, > CODE_FOR_altivec_vsum4sbs = 1146, > CODE_FOR_altivec_vsum2sws = 1147, > CODE_FOR_altivec_vsumsws = 1148, > CODE_FOR_altivec_vspltb = 1149, > CODE_FOR_altivec_vsplth = 1150, > CODE_FOR_altivec_vspltw = 1151, > CODE_FOR_altivec_vspltsf = 1152, > CODE_FOR_altivec_vspltisw = 1153, > CODE_FOR_altivec_vspltish = 1154, > CODE_FOR_altivec_vspltisb = 1155, > CODE_FOR_altivec_vperm_v4si = 1157, > CODE_FOR_altivec_vperm_v8hi = 1158, > CODE_FOR_altivec_vperm_v16qi = 1159, > CODE_FOR_altivec_vperm_v4sf = 1160, > CODE_FOR_altivec_vperm_v2df = 1161, > CODE_FOR_altivec_vperm_v2di = 1162, > CODE_FOR_altivec_vperm_ti = 1163, > CODE_FOR_altivec_vperm_v4si_uns = 1164, > CODE_FOR_altivec_vperm_v8hi_uns = 1165, > CODE_FOR_altivec_vperm_v16qi_uns = 1166, > CODE_FOR_altivec_vperm_v4sf_uns = 1167, > CODE_FOR_altivec_vperm_v2df_uns = 1168, > CODE_FOR_altivec_vperm_v2di_uns = 1169, > CODE_FOR_altivec_vperm_ti_uns = 1170, > CODE_FOR_altivec_vrfip = 1171, > CODE_FOR_altivec_vrfin = 1172, > CODE_FOR_altivec_vcfux = 1174, > CODE_FOR_altivec_vcfsx = 1175, > CODE_FOR_altivec_vctuxs = 1176, > CODE_FOR_altivec_vctsxs = 1177, > CODE_FOR_altivec_vlogefp = 1178, > CODE_FOR_altivec_vexptefp = 1179, > CODE_FOR_altivec_vrefp = 1181, > CODE_FOR_altivec_vsldoi_v4si = 1182, > CODE_FOR_altivec_vsldoi_v8hi = 1183, > CODE_FOR_altivec_vsldoi_v16qi = 1184, > CODE_FOR_altivec_vsldoi_v4sf = 1185, > CODE_FOR_altivec_vsldoi_v2df = 1186, > CODE_FOR_altivec_vsldoi_v2di = 1187, > CODE_FOR_altivec_vsldoi_ti = 1188, > CODE_FOR_altivec_vupkhsb = 1189, > CODE_FOR_altivec_vupkhpx = 1190, > CODE_FOR_altivec_vupkhsh = 1191, > CODE_FOR_altivec_vupklsb = 1192, > CODE_FOR_altivec_vupklpx = 1193, > CODE_FOR_altivec_vupklsh = 1194, > CODE_FOR_altivec_vcmpbfp_p = 1207, > CODE_FOR_altivec_mtvscr = 1208, > CODE_FOR_altivec_mfvscr = 1209, > CODE_FOR_altivec_dssall = 1210, > CODE_FOR_altivec_dss = 1211, > CODE_FOR_altivec_dst = 1212, > CODE_FOR_altivec_dstt = 1213, > CODE_FOR_altivec_dstst = 1214, > CODE_FOR_altivec_dststt = 1215, > CODE_FOR_altivec_lvsl = 1216, > CODE_FOR_altivec_lvsr = 1217, > CODE_FOR_altivec_lvewx = 1218, > CODE_FOR_altivec_lvehx = 1219, > CODE_FOR_altivec_lvebx = 1220, > CODE_FOR_altivec_lvxl = 1222, > CODE_FOR_altivec_lvx_v4si = 1223, > CODE_FOR_altivec_lvx_v8hi = 1224, > CODE_FOR_altivec_lvx_v16qi = 1225, > CODE_FOR_altivec_lvx_v4sf = 1226, > CODE_FOR_altivec_lvx_v2df = 1227, > CODE_FOR_altivec_lvx_v2di = 1228, > CODE_FOR_altivec_stvx_v4si = 1229, > CODE_FOR_altivec_stvx_v8hi = 1230, > CODE_FOR_altivec_stvx_v16qi = 1231, > CODE_FOR_altivec_stvx_v4sf = 1232, > CODE_FOR_altivec_stvx_v2df = 1233, > CODE_FOR_altivec_stvx_v2di = 1234, > CODE_FOR_altivec_stvxl = 1235, > CODE_FOR_altivec_stvewx = 1236, > CODE_FOR_altivec_stvehx = 1237, > CODE_FOR_altivec_stvebx = 1238, > CODE_FOR_altivec_vsumsws_nomode = 1240, > CODE_FOR_vperm_v8hiv4si = 1241, > CODE_FOR_vperm_v16qiv8hi = 1242, > CODE_FOR_altivec_lvlx = 1243, > CODE_FOR_altivec_lvlxl = 1244, > CODE_FOR_altivec_lvrx = 1245, > CODE_FOR_altivec_lvrxl = 1246, > CODE_FOR_altivec_stvlx = 1247, > CODE_FOR_altivec_stvlxl = 1248, > CODE_FOR_altivec_stvrx = 1249, > CODE_FOR_altivec_stvrxl = 1250, ># 731 "./insn-codes.h" > CODE_FOR_movsd_hardfloat = 1251, > CODE_FOR_movsd_softfloat = 1252, > CODE_FOR_movsd_store = 1253, > CODE_FOR_movsd_load = 1254, > CODE_FOR_extendsddd2 = 1255, > CODE_FOR_truncddsd2 = 1256, > CODE_FOR_extendddtd2 = 1269, > CODE_FOR_trunctddd2 = 1270, > CODE_FOR_adddd3 = 1271, > CODE_FOR_addtd3 = 1272, > CODE_FOR_subdd3 = 1273, > CODE_FOR_subtd3 = 1274, > CODE_FOR_muldd3 = 1275, > CODE_FOR_multd3 = 1276, > CODE_FOR_divdd3 = 1277, > CODE_FOR_divtd3 = 1278, > CODE_FOR_floatditd2 = 1281, > CODE_FOR_ftruncdd2 = 1282, > CODE_FOR_fixdddi2 = 1283, > CODE_FOR_ftrunctd2 = 1284, > CODE_FOR_fixtddi2 = 1285, ># 778 "./insn-codes.h" > CODE_FOR_load_macho_picbase = 1286, > CODE_FOR_macho_correct_pic = 1287, > CODE_FOR_zero_extendqidi2 = 1288, > CODE_FOR_zero_extendhidi2 = 1289, > CODE_FOR_zero_extendsidi2 = 1290, > CODE_FOR_extendhidi2 = 1299, > CODE_FOR_extendsidi2 = 1302, > CODE_FOR_zero_extendqisi2 = 1305, > CODE_FOR_extendqisi2 = 1308, > > CODE_FOR_extendqisi2_no_power = 1311, > CODE_FOR_zero_extendqihi2 = 1312, > CODE_FOR_extendqihi2 = 1315, > > CODE_FOR_extendqihi2_no_power = 1318, > CODE_FOR_zero_extendhisi2 = 1319, > CODE_FOR_extendhisi2 = 1322, > CODE_FOR_strlensi = 1324, > CODE_FOR_addsi3 = 1326, > CODE_FOR_adddi3 = 1327, > CODE_FOR_subsi3 = 1342, > CODE_FOR_subdi3 = 1343, > CODE_FOR_sminsi3 = 1344, > CODE_FOR_smaxsi3 = 1345, > CODE_FOR_uminsi3 = 1346, > CODE_FOR_umaxsi3 = 1347, > CODE_FOR_abssi2 = 1348, > CODE_FOR_negsi2 = 1355, > CODE_FOR_negdi2 = 1356, > CODE_FOR_ctzsi2 = 1361, > CODE_FOR_ctzdi2 = 1362, > CODE_FOR_ffssi2 = 1363, > CODE_FOR_ffsdi2 = 1364, > CODE_FOR_popcountsi2 = 1365, > CODE_FOR_popcountdi2 = 1366, > CODE_FOR_paritysi2 = 1367, > CODE_FOR_paritydi2 = 1368, > CODE_FOR_bswaphi2 = 1369, > CODE_FOR_bswapsi2 = 1371, > CODE_FOR_bswapdi2 = 1373, > CODE_FOR_mulsi3 = 1380, > CODE_FOR_divmodsi4 = 1383, > CODE_FOR_udivsi3 = 1384, > CODE_FOR_udivdi3 = 1385, > CODE_FOR_divsi3 = 1386, > CODE_FOR_divdi3 = 1387, > CODE_FOR_modsi3 = 1388, > CODE_FOR_moddi3 = 1389, > > > CODE_FOR_udivmodsi4 = 1394, > CODE_FOR_andsi3 = 1395, > CODE_FOR_iorsi3 = 1402, > CODE_FOR_xorsi3 = 1403, > CODE_FOR_insv = 1411, > CODE_FOR_extzv = 1412, > CODE_FOR_ashlsi3 = 1423, > CODE_FOR_lshrsi3 = 1428, > CODE_FOR_ashrsi3 = 1437, > CODE_FOR_recipsf3 = 1439, > CODE_FOR_recipdf3 = 1440, > CODE_FOR_recipv4sf3 = 1441, > CODE_FOR_recipv2df3 = 1442, > CODE_FOR_rsqrtsf2 = 1447, > CODE_FOR_rsqrtdf2 = 1448, > CODE_FOR_rsqrtv4sf2 = 1449, > CODE_FOR_rsqrtv2df2 = 1450, > CODE_FOR_extendsfdf2 = 1452, > CODE_FOR_truncdfsf2 = 1454, > CODE_FOR_negsf2 = 1455, > CODE_FOR_abssf2 = 1456, > CODE_FOR_addsf3 = 1457, > CODE_FOR_subsf3 = 1458, > CODE_FOR_mulsf3 = 1459, > CODE_FOR_divsf3 = 1460, > CODE_FOR_sqrtsf2 = 1461, > CODE_FOR_copysignsf3 = 1462, > CODE_FOR_copysigndf3 = 1463, > CODE_FOR_smaxsf3 = 1464, > CODE_FOR_sminsf3 = 1465, > CODE_FOR_movsicc = 1467, > CODE_FOR_movdicc = 1468, > CODE_FOR_movsfcc = 1469, > CODE_FOR_negdf2 = 1470, > CODE_FOR_absdf2 = 1471, > CODE_FOR_adddf3 = 1472, > CODE_FOR_subdf3 = 1473, > CODE_FOR_muldf3 = 1474, > CODE_FOR_divdf3 = 1475, > CODE_FOR_sqrtdf2 = 1476, > CODE_FOR_smaxdf3 = 1477, > CODE_FOR_smindf3 = 1478, > CODE_FOR_movdfcc = 1480, > CODE_FOR_floatsidf2 = 1489, > CODE_FOR_floatunssisf2 = 1491, > CODE_FOR_floatunssidf2 = 1492, > CODE_FOR_fix_truncsfsi2 = 1494, > CODE_FOR_fix_truncdfsi2 = 1495, > CODE_FOR_fix_truncsfdi2 = 1500, > CODE_FOR_fix_truncdfdi2 = 1501, > CODE_FOR_fixuns_truncsfsi2 = 1502, > CODE_FOR_fixuns_truncdfsi2 = 1503, > CODE_FOR_fixuns_truncsfdi2 = 1506, > CODE_FOR_fixuns_truncdfdi2 = 1507, > CODE_FOR_btruncsf2 = 1512, > CODE_FOR_btruncdf2 = 1513, > CODE_FOR_ceilsf2 = 1514, > CODE_FOR_ceildf2 = 1515, > CODE_FOR_floorsf2 = 1516, > CODE_FOR_floordf2 = 1517, > CODE_FOR_floatsisf2 = 1518, > CODE_FOR_floatdidf2 = 1519, > CODE_FOR_floatunsdidf2 = 1521, > CODE_FOR_floatdisf2 = 1523, > CODE_FOR_floatdisf2_internal2 = 1526, > CODE_FOR_floatunsdisf2 = 1527, > CODE_FOR_mulsidi3 = 1529, > CODE_FOR_umulsidi3 = 1531, > CODE_FOR_smulsi3_highpart = 1533, > CODE_FOR_umulsi3_highpart = 1534, > CODE_FOR_absdi2 = 1535, > CODE_FOR_ashldi3 = 1550, > CODE_FOR_lshrdi3 = 1557, > CODE_FOR_ashrdi3 = 1560, > CODE_FOR_anddi3 = 1563, > CODE_FOR_iordi3 = 1568, > CODE_FOR_xordi3 = 1569, > CODE_FOR_smindi3 = 1577, > CODE_FOR_smaxdi3 = 1578, > CODE_FOR_umindi3 = 1579, > CODE_FOR_umaxdi3 = 1580, > CODE_FOR_movsi_got = 1581, > CODE_FOR_movqi = 1586, > CODE_FOR_movhi = 1587, > CODE_FOR_movsi = 1588, > CODE_FOR_movdi = 1589, > CODE_FOR_movti = 1590, > CODE_FOR_movcc = 1591, > CODE_FOR_movsf = 1592, > CODE_FOR_movdf = 1594, > CODE_FOR_reload_di_store = 1598, > CODE_FOR_reload_di_load = 1599, > CODE_FOR_movtf = 1600, > CODE_FOR_extenddftf2 = 1603, > CODE_FOR_extenddftf2_fprs = 1604, > CODE_FOR_extendsftf2 = 1606, > CODE_FOR_trunctfdf2 = 1607, > CODE_FOR_trunctfsf2 = 1609, > CODE_FOR_floatsitf2 = 1611, > CODE_FOR_fix_trunctfsi2 = 1612, > CODE_FOR_fix_trunctfsi2_fprs = 1613, > CODE_FOR_negtf2 = 1615, > CODE_FOR_abstf2 = 1616, > CODE_FOR_abstf2_internal = 1617, > CODE_FOR_load_multiple = 1627, > CODE_FOR_store_multiple = 1628, > CODE_FOR_setmemsi = 1629, > CODE_FOR_movmemsi = 1630, > CODE_FOR_movmemsi_8reg = 1631, > CODE_FOR_movmemsi_6reg = 1632, > CODE_FOR_movmemsi_4reg = 1633, > CODE_FOR_movmemsi_2reg = 1634, > CODE_FOR_movmemsi_1reg = 1635, > CODE_FOR_allocate_stack = 1656, > CODE_FOR_save_stack_function = 1657, > CODE_FOR_restore_stack_function = 1658, > CODE_FOR_restore_stack_block = 1659, > CODE_FOR_save_stack_nonlocal = 1660, > CODE_FOR_restore_stack_nonlocal = 1661, > CODE_FOR_load_toc_v4_PIC_1 = 1662, > CODE_FOR_load_toc_v4_PIC_1b = 1663, > CODE_FOR_builtin_setjmp_receiver = 1664, > CODE_FOR_call = 1665, > CODE_FOR_call_value = 1666, > CODE_FOR_untyped_call = 1671, > CODE_FOR_sibcall = 1672, > CODE_FOR_sibcall_value = 1673, > CODE_FOR_sibcall_epilogue = 1674, > CODE_FOR_cbranchsi4 = 1675, > CODE_FOR_cbranchdi4 = 1676, > CODE_FOR_cbranchsf4 = 1677, > CODE_FOR_cbranchdf4 = 1678, > CODE_FOR_cbranchtf4 = 1679, > CODE_FOR_cbranchdd4 = 1680, > CODE_FOR_cbranchtd4 = 1681, > CODE_FOR_cstoresi4 = 1682, > CODE_FOR_cstoredi4 = 1683, > CODE_FOR_cstoresf4 = 1684, > CODE_FOR_cstoredf4 = 1685, > CODE_FOR_cstoretf4 = 1686, > CODE_FOR_cstoredd4 = 1687, > CODE_FOR_cstoretd4 = 1688, > CODE_FOR_stack_protect_set = 1689, > CODE_FOR_stack_protect_test = 1690, > CODE_FOR_indirect_jump = 1746, > CODE_FOR_tablejump = 1747, > CODE_FOR_tablejumpsi = 1748, > CODE_FOR_tablejumpdi = 1749, > CODE_FOR_doloop_end = 1750, > CODE_FOR_ctrsi = 1751, > CODE_FOR_ctrdi = 1752, > CODE_FOR_ctrapsi4 = 1757, > CODE_FOR_ctrapdi4 = 1758, > CODE_FOR_prologue = 1759, > CODE_FOR_epilogue = 1760, > CODE_FOR_movsi_to_cr_one = 1761, > CODE_FOR_eh_return = 1762, > CODE_FOR_fmasf4 = 1764, > CODE_FOR_fmadf4 = 1765, > > CODE_FOR_fmav4sf4 = 1766, > CODE_FOR_fmav2df4 = 1767, > CODE_FOR_fmssf4 = 1768, > CODE_FOR_fmsdf4 = 1769, > > CODE_FOR_fmsv4sf4 = 1770, > CODE_FOR_fmsv2df4 = 1771, > CODE_FOR_fnmasf4 = 1772, > CODE_FOR_fnmadf4 = 1773, > > CODE_FOR_fnmav4sf4 = 1774, > CODE_FOR_fnmav2df4 = 1775, > CODE_FOR_fnmssf4 = 1776, > CODE_FOR_fnmsdf4 = 1777, > > CODE_FOR_fnmsv4sf4 = 1778, > CODE_FOR_fnmsv2df4 = 1779, > CODE_FOR_nfmasf4 = 1780, > CODE_FOR_nfmadf4 = 1781, > > CODE_FOR_nfmav4sf4 = 1782, > CODE_FOR_nfmav2df4 = 1783, > CODE_FOR_nfmssf4 = 1784, > CODE_FOR_nfmsdf4 = 1785, > > CODE_FOR_nfmsv4sf4 = 1786, > CODE_FOR_nfmsv2df4 = 1787, > CODE_FOR_mem_thread_fence = 1788, > CODE_FOR_hwsync = 1789, > CODE_FOR_lwsync = 1790, > CODE_FOR_atomic_loadqi = 1791, > CODE_FOR_atomic_loadhi = 1792, > CODE_FOR_atomic_loadsi = 1793, > CODE_FOR_atomic_loaddi = 1794, > CODE_FOR_atomic_storeqi = 1795, > CODE_FOR_atomic_storehi = 1796, > CODE_FOR_atomic_storesi = 1797, > CODE_FOR_atomic_storedi = 1798, > CODE_FOR_atomic_compare_and_swapqi = 1799, > CODE_FOR_atomic_compare_and_swaphi = 1800, > CODE_FOR_atomic_compare_and_swapsi = 1801, > CODE_FOR_atomic_compare_and_swapdi = 1802, > CODE_FOR_atomic_exchangeqi = 1803, > CODE_FOR_atomic_exchangehi = 1804, > CODE_FOR_atomic_exchangesi = 1805, > CODE_FOR_atomic_exchangedi = 1806, > CODE_FOR_atomic_addqi = 1807, > CODE_FOR_atomic_subqi = 1808, > CODE_FOR_atomic_orqi = 1809, > CODE_FOR_atomic_xorqi = 1810, > CODE_FOR_atomic_andqi = 1811, > CODE_FOR_atomic_addhi = 1812, > CODE_FOR_atomic_subhi = 1813, > CODE_FOR_atomic_orhi = 1814, > CODE_FOR_atomic_xorhi = 1815, > CODE_FOR_atomic_andhi = 1816, > CODE_FOR_atomic_addsi = 1817, > CODE_FOR_atomic_subsi = 1818, > CODE_FOR_atomic_orsi = 1819, > CODE_FOR_atomic_xorsi = 1820, > CODE_FOR_atomic_andsi = 1821, > CODE_FOR_atomic_adddi = 1822, > CODE_FOR_atomic_subdi = 1823, > CODE_FOR_atomic_ordi = 1824, > CODE_FOR_atomic_xordi = 1825, > CODE_FOR_atomic_anddi = 1826, > CODE_FOR_atomic_nandqi = 1827, > CODE_FOR_atomic_nandhi = 1828, > CODE_FOR_atomic_nandsi = 1829, > CODE_FOR_atomic_nanddi = 1830, > CODE_FOR_atomic_fetch_addqi = 1831, > CODE_FOR_atomic_fetch_subqi = 1832, > CODE_FOR_atomic_fetch_orqi = 1833, > CODE_FOR_atomic_fetch_xorqi = 1834, > CODE_FOR_atomic_fetch_andqi = 1835, > CODE_FOR_atomic_fetch_addhi = 1836, > CODE_FOR_atomic_fetch_subhi = 1837, > CODE_FOR_atomic_fetch_orhi = 1838, > CODE_FOR_atomic_fetch_xorhi = 1839, > CODE_FOR_atomic_fetch_andhi = 1840, > CODE_FOR_atomic_fetch_addsi = 1841, > CODE_FOR_atomic_fetch_subsi = 1842, > CODE_FOR_atomic_fetch_orsi = 1843, > CODE_FOR_atomic_fetch_xorsi = 1844, > CODE_FOR_atomic_fetch_andsi = 1845, > CODE_FOR_atomic_fetch_adddi = 1846, > CODE_FOR_atomic_fetch_subdi = 1847, > CODE_FOR_atomic_fetch_ordi = 1848, > CODE_FOR_atomic_fetch_xordi = 1849, > CODE_FOR_atomic_fetch_anddi = 1850, > CODE_FOR_atomic_fetch_nandqi = 1851, > CODE_FOR_atomic_fetch_nandhi = 1852, > CODE_FOR_atomic_fetch_nandsi = 1853, > CODE_FOR_atomic_fetch_nanddi = 1854, > CODE_FOR_atomic_add_fetchqi = 1855, > CODE_FOR_atomic_sub_fetchqi = 1856, > CODE_FOR_atomic_or_fetchqi = 1857, > CODE_FOR_atomic_xor_fetchqi = 1858, > CODE_FOR_atomic_and_fetchqi = 1859, > CODE_FOR_atomic_add_fetchhi = 1860, > CODE_FOR_atomic_sub_fetchhi = 1861, > CODE_FOR_atomic_or_fetchhi = 1862, > CODE_FOR_atomic_xor_fetchhi = 1863, > CODE_FOR_atomic_and_fetchhi = 1864, > CODE_FOR_atomic_add_fetchsi = 1865, > CODE_FOR_atomic_sub_fetchsi = 1866, > CODE_FOR_atomic_or_fetchsi = 1867, > CODE_FOR_atomic_xor_fetchsi = 1868, > CODE_FOR_atomic_and_fetchsi = 1869, > CODE_FOR_atomic_add_fetchdi = 1870, > CODE_FOR_atomic_sub_fetchdi = 1871, > CODE_FOR_atomic_or_fetchdi = 1872, > CODE_FOR_atomic_xor_fetchdi = 1873, > CODE_FOR_atomic_and_fetchdi = 1874, > CODE_FOR_atomic_nand_fetchqi = 1875, > CODE_FOR_atomic_nand_fetchhi = 1876, > CODE_FOR_atomic_nand_fetchsi = 1877, > CODE_FOR_atomic_nand_fetchdi = 1878, > CODE_FOR_movv16qi = 1879, > CODE_FOR_movv8hi = 1880, > CODE_FOR_movv4si = 1881, > CODE_FOR_movv2di = 1882, > CODE_FOR_movv4sf = 1883, > CODE_FOR_movv2df = 1884, > CODE_FOR_vector_load_v16qi = 1885, > CODE_FOR_vector_load_v8hi = 1886, > CODE_FOR_vector_load_v4si = 1887, > CODE_FOR_vector_load_v2di = 1888, > CODE_FOR_vector_load_v4sf = 1889, > CODE_FOR_vector_load_v2df = 1890, > CODE_FOR_vector_store_v16qi = 1891, > CODE_FOR_vector_store_v8hi = 1892, > CODE_FOR_vector_store_v4si = 1893, > CODE_FOR_vector_store_v2di = 1894, > CODE_FOR_vector_store_v4sf = 1895, > CODE_FOR_vector_store_v2df = 1896, > CODE_FOR_vector_altivec_load_v16qi = 1904, > CODE_FOR_vector_altivec_load_v8hi = 1905, > CODE_FOR_vector_altivec_load_v4si = 1906, > CODE_FOR_vector_altivec_load_v2di = 1907, > CODE_FOR_vector_altivec_load_v4sf = 1908, > CODE_FOR_vector_altivec_load_v2df = 1909, > CODE_FOR_vector_altivec_store_v16qi = 1910, > CODE_FOR_vector_altivec_store_v8hi = 1911, > CODE_FOR_vector_altivec_store_v4si = 1912, > CODE_FOR_vector_altivec_store_v2di = 1913, > CODE_FOR_vector_altivec_store_v4sf = 1914, > CODE_FOR_vector_altivec_store_v2df = 1915, > CODE_FOR_reload_v16qi_si_store = 1916, > CODE_FOR_reload_v8hi_si_store = 1917, > CODE_FOR_reload_v4si_si_store = 1918, > CODE_FOR_reload_v2di_si_store = 1919, > CODE_FOR_reload_v4sf_si_store = 1920, > CODE_FOR_reload_v2df_si_store = 1921, > CODE_FOR_reload_df_si_store = 1922, > CODE_FOR_reload_ti_si_store = 1923, > CODE_FOR_reload_v16qi_di_store = 1924, > CODE_FOR_reload_v8hi_di_store = 1925, > CODE_FOR_reload_v4si_di_store = 1926, > CODE_FOR_reload_v2di_di_store = 1927, > CODE_FOR_reload_v4sf_di_store = 1928, > CODE_FOR_reload_v2df_di_store = 1929, > CODE_FOR_reload_df_di_store = 1930, > CODE_FOR_reload_ti_di_store = 1931, > CODE_FOR_reload_v16qi_si_load = 1932, > CODE_FOR_reload_v8hi_si_load = 1933, > CODE_FOR_reload_v4si_si_load = 1934, > CODE_FOR_reload_v2di_si_load = 1935, > CODE_FOR_reload_v4sf_si_load = 1936, > CODE_FOR_reload_v2df_si_load = 1937, > CODE_FOR_reload_df_si_load = 1938, > CODE_FOR_reload_ti_si_load = 1939, > CODE_FOR_reload_v16qi_di_load = 1940, > CODE_FOR_reload_v8hi_di_load = 1941, > CODE_FOR_reload_v4si_di_load = 1942, > CODE_FOR_reload_v2di_di_load = 1943, > CODE_FOR_reload_v4sf_di_load = 1944, > CODE_FOR_reload_v2df_di_load = 1945, > CODE_FOR_reload_df_di_load = 1946, > CODE_FOR_reload_ti_di_load = 1947, > CODE_FOR_addv4sf3 = 1952, > CODE_FOR_addv2df3 = 1953, > CODE_FOR_subv4sf3 = 1954, > CODE_FOR_subv2df3 = 1955, > CODE_FOR_mulv4sf3 = 1956, > CODE_FOR_mulv2df3 = 1957, > CODE_FOR_divv4sf3 = 1958, > CODE_FOR_divv2df3 = 1959, > CODE_FOR_negv4sf2 = 1960, > CODE_FOR_negv2df2 = 1961, > CODE_FOR_absv4sf2 = 1962, > CODE_FOR_absv2df2 = 1963, > CODE_FOR_sminv4sf3 = 1964, > CODE_FOR_sminv2df3 = 1965, > CODE_FOR_smaxv4sf3 = 1966, > CODE_FOR_smaxv2df3 = 1967, > CODE_FOR_sqrtv4sf2 = 1968, > CODE_FOR_sqrtv2df2 = 1969, > CODE_FOR_rsqrtev4sf2 = 1970, > CODE_FOR_rsqrtev2df2 = 1971, > CODE_FOR_rev4sf2 = 1972, > CODE_FOR_rev2df2 = 1973, > CODE_FOR_ftruncv4sf2 = 1974, > CODE_FOR_ftruncv2df2 = 1975, > CODE_FOR_vector_ceilv4sf2 = 1976, > CODE_FOR_vector_ceilv2df2 = 1977, > CODE_FOR_vector_floorv4sf2 = 1978, > CODE_FOR_vector_floorv2df2 = 1979, > CODE_FOR_vector_btruncv4sf2 = 1980, > CODE_FOR_vector_btruncv2df2 = 1981, > CODE_FOR_vector_copysignv4sf3 = 1982, > CODE_FOR_vector_copysignv2df3 = 1983, > CODE_FOR_vcondv4sfv4sf = 1984, > CODE_FOR_vcondv2dfv2df = 1985, > CODE_FOR_vcondv16qiv16qi = 1986, > CODE_FOR_vcondv8hiv8hi = 1987, > CODE_FOR_vcondv4siv4si = 1988, > CODE_FOR_vcondv4sfv4si = 1989, > CODE_FOR_vcondv4siv4sf = 1990, > CODE_FOR_vconduv16qiv16qi = 1991, > CODE_FOR_vconduv8hiv8hi = 1992, > CODE_FOR_vconduv4siv4si = 1993, > CODE_FOR_vconduv4sfv4si = 1994, > CODE_FOR_vector_eqv16qi = 1995, > CODE_FOR_vector_eqv8hi = 1996, > CODE_FOR_vector_eqv4si = 1997, > CODE_FOR_vector_eqv4sf = 1998, > CODE_FOR_vector_eqv2df = 1999, > CODE_FOR_vector_gtv16qi = 2000, > CODE_FOR_vector_gtv8hi = 2001, > CODE_FOR_vector_gtv4si = 2002, > CODE_FOR_vector_gtv4sf = 2003, > CODE_FOR_vector_gtv2df = 2004, > CODE_FOR_vector_gev16qi = 2005, > CODE_FOR_vector_gev8hi = 2006, > CODE_FOR_vector_gev4si = 2007, > CODE_FOR_vector_gev4sf = 2008, > CODE_FOR_vector_gev2df = 2009, > CODE_FOR_vector_gtuv16qi = 2010, > CODE_FOR_vector_gtuv8hi = 2011, > CODE_FOR_vector_gtuv4si = 2012, > CODE_FOR_vector_geuv16qi = 2013, > CODE_FOR_vector_geuv8hi = 2014, > CODE_FOR_vector_geuv4si = 2015, > CODE_FOR_vector_select_v16qi = 2024, > CODE_FOR_vector_select_v8hi = 2025, > CODE_FOR_vector_select_v4si = 2026, > CODE_FOR_vector_select_v2di = 2027, > CODE_FOR_vector_select_v4sf = 2028, > CODE_FOR_vector_select_v2df = 2029, > CODE_FOR_vector_select_ti = 2030, > CODE_FOR_vector_select_v16qi_uns = 2031, > CODE_FOR_vector_select_v8hi_uns = 2032, > CODE_FOR_vector_select_v4si_uns = 2033, > CODE_FOR_vector_select_v2di_uns = 2034, > CODE_FOR_vector_select_v4sf_uns = 2035, > CODE_FOR_vector_select_v2df_uns = 2036, > CODE_FOR_vector_select_ti_uns = 2037, > CODE_FOR_vector_eq_v16qi_p = 2038, > CODE_FOR_vector_eq_v8hi_p = 2039, > CODE_FOR_vector_eq_v4si_p = 2040, > CODE_FOR_vector_eq_v4sf_p = 2041, > CODE_FOR_vector_eq_v2df_p = 2042, > CODE_FOR_vector_gt_v16qi_p = 2043, > CODE_FOR_vector_gt_v8hi_p = 2044, > CODE_FOR_vector_gt_v4si_p = 2045, > CODE_FOR_vector_gt_v4sf_p = 2046, > CODE_FOR_vector_gt_v2df_p = 2047, > CODE_FOR_vector_ge_v4sf_p = 2048, > CODE_FOR_vector_ge_v2df_p = 2049, > CODE_FOR_vector_gtu_v16qi_p = 2050, > CODE_FOR_vector_gtu_v8hi_p = 2051, > CODE_FOR_vector_gtu_v4si_p = 2052, > CODE_FOR_cr6_test_for_zero = 2053, > CODE_FOR_cr6_test_for_zero_reverse = 2054, > CODE_FOR_cr6_test_for_lt = 2055, > CODE_FOR_cr6_test_for_lt_reverse = 2056, > CODE_FOR_xorv16qi3 = 2057, > CODE_FOR_xorv8hi3 = 2058, > CODE_FOR_xorv4si3 = 2059, > CODE_FOR_xorv2di3 = 2060, > CODE_FOR_xorv4sf3 = 2061, > CODE_FOR_xorv2df3 = 2062, > CODE_FOR_xorti3 = 2063, > CODE_FOR_iorv16qi3 = 2064, > CODE_FOR_iorv8hi3 = 2065, > CODE_FOR_iorv4si3 = 2066, > CODE_FOR_iorv2di3 = 2067, > CODE_FOR_iorv4sf3 = 2068, > CODE_FOR_iorv2df3 = 2069, > CODE_FOR_iorti3 = 2070, > CODE_FOR_andv16qi3 = 2071, > CODE_FOR_andv8hi3 = 2072, > CODE_FOR_andv4si3 = 2073, > CODE_FOR_andv2di3 = 2074, > CODE_FOR_andv4sf3 = 2075, > CODE_FOR_andv2df3 = 2076, > CODE_FOR_andti3 = 2077, > CODE_FOR_one_cmplv16qi2 = 2078, > CODE_FOR_one_cmplv8hi2 = 2079, > CODE_FOR_one_cmplv4si2 = 2080, > CODE_FOR_one_cmplv2di2 = 2081, > CODE_FOR_one_cmplv4sf2 = 2082, > CODE_FOR_one_cmplv2df2 = 2083, > CODE_FOR_one_cmplti2 = 2084, > CODE_FOR_norv16qi3 = 2085, > CODE_FOR_norv8hi3 = 2086, > CODE_FOR_norv4si3 = 2087, > CODE_FOR_norv2di3 = 2088, > CODE_FOR_norv4sf3 = 2089, > CODE_FOR_norv2df3 = 2090, > CODE_FOR_norti3 = 2091, > CODE_FOR_andcv16qi3 = 2092, > CODE_FOR_andcv8hi3 = 2093, > CODE_FOR_andcv4si3 = 2094, > CODE_FOR_andcv2di3 = 2095, > CODE_FOR_andcv4sf3 = 2096, > CODE_FOR_andcv2df3 = 2097, > CODE_FOR_andcti3 = 2098, > CODE_FOR_floatv4siv4sf2 = 2099, > CODE_FOR_floatv2div2df2 = 2100, > CODE_FOR_floatunsv4siv4sf2 = 2101, > CODE_FOR_floatunsv2div2df2 = 2102, > CODE_FOR_fix_truncv4sfv4si2 = 2103, > CODE_FOR_fix_truncv2dfv2di2 = 2104, > CODE_FOR_fixuns_truncv4sfv4si2 = 2105, > CODE_FOR_fixuns_truncv2dfv2di2 = 2106, > CODE_FOR_vec_initv16qi = 2107, > CODE_FOR_vec_initv8hi = 2108, > CODE_FOR_vec_initv4si = 2109, > CODE_FOR_vec_initv2di = 2110, > CODE_FOR_vec_initv4sf = 2111, > CODE_FOR_vec_initv2df = 2112, > CODE_FOR_vec_setv16qi = 2113, > CODE_FOR_vec_setv8hi = 2114, > CODE_FOR_vec_setv4si = 2115, > CODE_FOR_vec_setv2di = 2116, > CODE_FOR_vec_setv4sf = 2117, > CODE_FOR_vec_setv2df = 2118, > CODE_FOR_vec_extractv16qi = 2119, > CODE_FOR_vec_extractv8hi = 2120, > CODE_FOR_vec_extractv4si = 2121, > CODE_FOR_vec_extractv2di = 2122, > CODE_FOR_vec_extractv4sf = 2123, > CODE_FOR_vec_extractv2df = 2124, > CODE_FOR_vec_pack_trunc_v2df = 2125, > CODE_FOR_vec_pack_sfix_trunc_v2df = 2126, > CODE_FOR_vec_pack_ufix_trunc_v2df = 2127, > CODE_FOR_vec_unpacks_hi_v4sf = 2128, > CODE_FOR_vec_unpacks_lo_v4sf = 2129, > CODE_FOR_vec_unpacks_float_hi_v4si = 2130, > CODE_FOR_vec_unpacks_float_lo_v4si = 2131, > CODE_FOR_vec_unpacku_float_hi_v4si = 2132, > CODE_FOR_vec_unpacku_float_lo_v4si = 2133, > CODE_FOR_vec_realign_load_v16qi = 2134, > CODE_FOR_vec_realign_load_v8hi = 2135, > CODE_FOR_vec_realign_load_v4si = 2136, > CODE_FOR_vec_realign_load_v4sf = 2137, > CODE_FOR_movmisalignv4si = 2138, > CODE_FOR_movmisalignv4sf = 2139, > CODE_FOR_movmisalignv2di = 2140, > CODE_FOR_movmisalignv2df = 2141, > CODE_FOR_vec_shl_v16qi = 2142, > CODE_FOR_vec_shl_v8hi = 2143, > CODE_FOR_vec_shl_v4si = 2144, > CODE_FOR_vec_shl_v2di = 2145, > CODE_FOR_vec_shl_v4sf = 2146, > CODE_FOR_vec_shl_v2df = 2147, > CODE_FOR_vec_shl_ti = 2148, > CODE_FOR_vec_shr_v16qi = 2149, > CODE_FOR_vec_shr_v8hi = 2150, > CODE_FOR_vec_shr_v4si = 2151, > CODE_FOR_vec_shr_v2di = 2152, > CODE_FOR_vec_shr_v4sf = 2153, > CODE_FOR_vec_shr_v2df = 2154, > CODE_FOR_vec_shr_ti = 2155, > CODE_FOR_vrotlv16qi3 = 2156, > CODE_FOR_vrotlv8hi3 = 2157, > CODE_FOR_vrotlv4si3 = 2158, > CODE_FOR_vashlv16qi3 = 2159, > CODE_FOR_vashlv8hi3 = 2160, > CODE_FOR_vashlv4si3 = 2161, > CODE_FOR_vlshrv16qi3 = 2162, > CODE_FOR_vlshrv8hi3 = 2163, > CODE_FOR_vlshrv4si3 = 2164, > CODE_FOR_vashrv16qi3 = 2165, > CODE_FOR_vashrv8hi3 = 2166, > CODE_FOR_vashrv4si3 = 2167, > CODE_FOR_reduc_splus_v2df = 2168, > CODE_FOR_reduc_smin_v2df = 2169, > CODE_FOR_reduc_smax_v2df = 2170, > CODE_FOR_reduc_splus_v4sf = 2171, > CODE_FOR_reduc_smin_v4sf = 2172, > CODE_FOR_reduc_smax_v4sf = 2173, > > > > > > > CODE_FOR_vsx_load_v16qi = 2174, > CODE_FOR_vsx_load_v8hi = 2175, > CODE_FOR_vsx_load_v4si = 2176, > CODE_FOR_vsx_load_v2di = 2177, > CODE_FOR_vsx_load_v4sf = 2178, > CODE_FOR_vsx_load_v2df = 2179, > CODE_FOR_vsx_store_v16qi = 2180, > CODE_FOR_vsx_store_v8hi = 2181, > CODE_FOR_vsx_store_v4si = 2182, > CODE_FOR_vsx_store_v2di = 2183, > CODE_FOR_vsx_store_v4sf = 2184, > CODE_FOR_vsx_store_v2df = 2185, > CODE_FOR_vsx_tdivdf3_fg = 2186, > CODE_FOR_vsx_tdivv4sf3_fg = 2187, > CODE_FOR_vsx_tdivv2df3_fg = 2188, > CODE_FOR_vsx_tdivdf3_fe = 2189, > CODE_FOR_vsx_tdivv4sf3_fe = 2190, > CODE_FOR_vsx_tdivv2df3_fe = 2191, > CODE_FOR_vsx_tsqrtdf2_fg = 2192, > CODE_FOR_vsx_tsqrtv4sf2_fg = 2193, > CODE_FOR_vsx_tsqrtv2df2_fg = 2194, > CODE_FOR_vsx_tsqrtdf2_fe = 2195, > CODE_FOR_vsx_tsqrtv4sf2_fe = 2196, > CODE_FOR_vsx_tsqrtv2df2_fe = 2197, > CODE_FOR_vsx_xxpermdi_v16qi = 2199, > CODE_FOR_vsx_xxpermdi_v8hi = 2200, > CODE_FOR_vsx_xxpermdi_v4si = 2201, > CODE_FOR_vsx_xxpermdi_v2di = 2202, > CODE_FOR_vsx_xxpermdi_v4sf = 2203, > CODE_FOR_vsx_xxpermdi_v2df = 2204, > CODE_FOR_vsx_xxpermdi_ti = 2205, > CODE_FOR_vec_perm_constv2df = 2206, > CODE_FOR_vec_perm_constv2di = 2207, > CODE_FOR_vsx_mergel_v2df = 2208, > CODE_FOR_vsx_mergel_v2di = 2209, > CODE_FOR_vsx_mergeh_v2df = 2210, > CODE_FOR_vsx_mergeh_v2di = 2211, > CODE_FOR_altivec_mulv4sf3 = 2238, > CODE_FOR_mulv4si3 = 2239, > CODE_FOR_mulv8hi3 = 2240, > CODE_FOR_vec_permv16qi = 2241, > CODE_FOR_vec_perm_constv16qi = 2242, > CODE_FOR_altivec_copysign_v4sf3 = 2243, > CODE_FOR_build_vector_mask_for_load = 2244, > CODE_FOR_absv4si2 = 2245, > CODE_FOR_absv8hi2 = 2246, > CODE_FOR_absv16qi2 = 2247, > CODE_FOR_altivec_absv4sf2 = 2248, > CODE_FOR_altivec_abss_v4si = 2249, > CODE_FOR_altivec_abss_v8hi = 2250, > CODE_FOR_altivec_abss_v16qi = 2251, > CODE_FOR_reduc_splus_v8hi = 2252, > CODE_FOR_reduc_splus_v16qi = 2253, > CODE_FOR_reduc_uplus_v16qi = 2254, > CODE_FOR_negv4si2 = 2255, > CODE_FOR_negv8hi2 = 2256, > CODE_FOR_negv16qi2 = 2257, > CODE_FOR_udot_prodv8hi = 2258, > CODE_FOR_udot_prodv16qi = 2259, > CODE_FOR_sdot_prodv8hi = 2260, > CODE_FOR_widen_usumv8hi3 = 2261, > CODE_FOR_widen_usumv16qi3 = 2262, > CODE_FOR_widen_ssumv16qi3 = 2263, > CODE_FOR_widen_ssumv8hi3 = 2264, > CODE_FOR_vec_unpacks_hi_v16qi = 2265, > CODE_FOR_vec_unpacks_hi_v8hi = 2266, > CODE_FOR_vec_unpacks_lo_v16qi = 2267, > CODE_FOR_vec_unpacks_lo_v8hi = 2268, > CODE_FOR_vec_unpacku_hi_v16qi = 2269, > CODE_FOR_vec_unpacku_hi_v8hi = 2270, > CODE_FOR_vec_unpacku_lo_v16qi = 2271, > CODE_FOR_vec_unpacku_lo_v8hi = 2272, > CODE_FOR_vec_widen_umult_hi_v16qi = 2273, > CODE_FOR_vec_widen_umult_lo_v16qi = 2274, > CODE_FOR_vec_widen_smult_hi_v16qi = 2275, > CODE_FOR_vec_widen_smult_lo_v16qi = 2276, > CODE_FOR_vec_widen_umult_hi_v8hi = 2277, > CODE_FOR_vec_widen_umult_lo_v8hi = 2278, > CODE_FOR_vec_widen_smult_hi_v8hi = 2279, > CODE_FOR_vec_widen_smult_lo_v8hi = 2280, > CODE_FOR_vec_pack_trunc_v8hi = 2281, > CODE_FOR_vec_pack_trunc_v4si = 2282, > CODE_FOR_altivec_negv4sf2 = 2283, > CODE_FOR_vec_unpacks_float_hi_v8hi = 2284, > CODE_FOR_vec_unpacks_float_lo_v8hi = 2285, > CODE_FOR_vec_unpacku_float_hi_v8hi = 2286, > CODE_FOR_vec_unpacku_float_lo_v8hi = 2287, ># 1483 "./insn-codes.h" > CODE_FOR_movsd = 2288, > CODE_FOR_extendsdtd2 = 2290, > CODE_FOR_negdd2 = 2291, > CODE_FOR_absdd2 = 2292, > CODE_FOR_movdd = 2293, > CODE_FOR_negtd2 = 2297, > CODE_FOR_abstd2 = 2298, > CODE_FOR_movtd = 2299, ># 1500 "./insn-codes.h" > CODE_FOR_nothing >}; ># 25 "../../gcc/optabs.h" 2 ># 37 "../../gcc/optabs.h" >struct optab_handlers >{ > > > > int insn_code; >}; > >struct widening_optab_handlers >{ > struct optab_handlers handlers[NUM_MACHINE_MODES][NUM_MACHINE_MODES]; >}; > >struct optab_d >{ > enum rtx_code code; > char libcall_suffix; > const char *libcall_basename; > void (*libcall_gen)(struct optab_d *, const char *name, char suffix, > enum machine_mode); > struct optab_handlers handlers[NUM_MACHINE_MODES]; > struct widening_optab_handlers *widening; >}; >typedef struct optab_d * optab; > > > > >struct convert_optab_d >{ > enum rtx_code code; > const char *libcall_basename; > void (*libcall_gen)(struct convert_optab_d *, const char *name, > enum machine_mode, > enum machine_mode); > struct optab_handlers handlers[NUM_MACHINE_MODES][NUM_MACHINE_MODES]; >}; >typedef struct convert_optab_d *convert_optab; > > > > > > >enum optab_index >{ > > OTI_ssadd, > OTI_usadd, > OTI_sssub, > OTI_ussub, > OTI_ssmul, > OTI_usmul, > OTI_ssdiv, > OTI_usdiv, > OTI_ssneg, > OTI_usneg, > OTI_ssashl, > OTI_usashl, > > OTI_add, > OTI_addv, > OTI_sub, > OTI_subv, > > > OTI_smul, > OTI_smulv, > > OTI_smul_highpart, > OTI_umul_highpart, > > OTI_smul_widen, > OTI_umul_widen, > > OTI_usmul_widen, > > > OTI_smadd_widen, > > > OTI_umadd_widen, > > > > OTI_ssmadd_widen, > > > > OTI_usmadd_widen, > > > OTI_smsub_widen, > > > OTI_umsub_widen, > > > > OTI_ssmsub_widen, > > > > OTI_usmsub_widen, > > > OTI_sdiv, > OTI_sdivv, > > OTI_sdivmod, > OTI_udiv, > OTI_udivmod, > > OTI_smod, > OTI_umod, > > OTI_fmod, > OTI_remainder, > > OTI_ftrunc, > > > OTI_and, > > OTI_ior, > > OTI_xor, > > > OTI_ashl, > > OTI_lshr, > > OTI_ashr, > > OTI_rotl, > > OTI_rotr, > > > OTI_vashl, > > OTI_vlshr, > > OTI_vashr, > > OTI_vrotl, > > OTI_vrotr, > > > OTI_smin, > > OTI_smax, > > OTI_umin, > > OTI_umax, > > OTI_pow, > > OTI_atan2, > > OTI_fma, > OTI_fms, > OTI_fnma, > OTI_fnms, > > > OTI_mov, > > OTI_movstrict, > > OTI_movmisalign, > > OTI_storent, > > > > OTI_neg, > OTI_negv, > > OTI_abs, > OTI_absv, > > OTI_bswap, > > OTI_one_cmpl, > > OTI_ffs, > OTI_clz, > OTI_ctz, > OTI_clrsb, > OTI_popcount, > OTI_parity, > > OTI_sqrt, > > OTI_sincos, > > OTI_sin, > > OTI_asin, > > OTI_cos, > > OTI_acos, > > OTI_exp, > > OTI_exp10, > > OTI_exp2, > > OTI_expm1, > > OTI_ldexp, > > OTI_scalb, > > OTI_significand, > > OTI_logb, > OTI_ilogb, > > OTI_log, > > OTI_log10, > > OTI_log2, > > OTI_log1p, > > OTI_floor, > OTI_ceil, > OTI_btrunc, > OTI_round, > OTI_nearbyint, > OTI_rint, > > OTI_tan, > > OTI_atan, > > OTI_copysign, > > OTI_signbit, > > OTI_isinf, > > > OTI_cmp, > OTI_ucmp, > > > OTI_eq, > OTI_ne, > OTI_gt, > OTI_ge, > OTI_lt, > OTI_le, > OTI_unord, > > > OTI_strlen, > > > OTI_cbranch, > OTI_cmov, > OTI_cstore, > OTI_ctrap, > > > OTI_push, > > > OTI_addcc, > > > OTI_reduc_smax, > OTI_reduc_umax, > OTI_reduc_smin, > OTI_reduc_umin, > OTI_reduc_splus, > OTI_reduc_uplus, > > > OTI_ssum_widen, > OTI_usum_widen, > > > OTI_sdot_prod, > OTI_udot_prod, > > > OTI_vec_set, > > OTI_vec_extract, > > OTI_vec_init, > > OTI_vec_shl, > OTI_vec_shr, > > OTI_vec_realign_load, > > > OTI_vec_widen_umult_hi, > OTI_vec_widen_umult_lo, > OTI_vec_widen_smult_hi, > OTI_vec_widen_smult_lo, > > > OTI_vec_widen_ushiftl_hi, > OTI_vec_widen_ushiftl_lo, > OTI_vec_widen_sshiftl_hi, > OTI_vec_widen_sshiftl_lo, > > > OTI_vec_unpacks_hi, > OTI_vec_unpacks_lo, > > > OTI_vec_unpacku_hi, > OTI_vec_unpacku_lo, > > > > OTI_vec_unpacks_float_hi, > OTI_vec_unpacks_float_lo, > OTI_vec_unpacku_float_hi, > OTI_vec_unpacku_float_lo, > > > OTI_vec_pack_trunc, > OTI_vec_pack_usat, > OTI_vec_pack_ssat, > > > > OTI_vec_pack_sfix_trunc, > OTI_vec_pack_ufix_trunc, > > > OTI_powi, > > > OTI_sync_compare_and_swap, > > > OTI_sync_lock_test_and_set, > > > > OTI_sync_old_add, > OTI_sync_old_sub, > OTI_sync_old_ior, > OTI_sync_old_and, > OTI_sync_old_xor, > OTI_sync_old_nand, > > > > OTI_sync_new_add, > OTI_sync_new_sub, > OTI_sync_new_ior, > OTI_sync_new_and, > OTI_sync_new_xor, > OTI_sync_new_nand, > > OTI_MAX >}; ># 605 "../../gcc/optabs.h" >enum convert_optab_index >{ > COI_sext, > COI_zext, > COI_trunc, > > COI_sfix, > COI_ufix, > > COI_sfixtrunc, > COI_ufixtrunc, > > COI_sfloat, > COI_ufloat, > > COI_lrint, > COI_lround, > COI_lfloor, > COI_lceil, > > COI_fract, > COI_fractuns, > COI_satfract, > COI_satfractuns, > > COI_vec_load_lanes, > COI_vec_store_lanes, > > > COI_vcond, > COI_vcondu, > > COI_MAX >}; ># 663 "../../gcc/optabs.h" >extern optab code_to_optab[((int) LAST_AND_UNUSED_RTX_CODE) + 1]; > > >typedef rtx (*rtxfun) (rtx); > > > >enum direct_optab_index >{ > > > DOI_movcc, > > > > > DOI_reload_in, > DOI_reload_out, > > > DOI_movmem, > > > DOI_setmem, > > > DOI_cmpstr, > DOI_cmpstrn, > DOI_cmpmem, > > > DOI_sync_lock_release, > > > DOI_sync_add, > DOI_sync_sub, > DOI_sync_ior, > DOI_sync_and, > DOI_sync_xor, > DOI_sync_nand, > > > DOI_atomic_exchange, > DOI_atomic_compare_and_swap, > DOI_atomic_load, > DOI_atomic_store, > DOI_atomic_add_fetch, > DOI_atomic_sub_fetch, > DOI_atomic_and_fetch, > DOI_atomic_nand_fetch, > DOI_atomic_xor_fetch, > DOI_atomic_or_fetch, > DOI_atomic_fetch_add, > DOI_atomic_fetch_sub, > DOI_atomic_fetch_and, > DOI_atomic_fetch_nand, > DOI_atomic_fetch_xor, > DOI_atomic_fetch_or, > DOI_atomic_add, > DOI_atomic_sub, > DOI_atomic_and, > DOI_atomic_nand, > DOI_atomic_xor, > DOI_atomic_or, > DOI_atomic_always_lock_free, > DOI_atomic_is_lock_free, > DOI_atomic_thread_fence, > DOI_atomic_signal_fence, > > > DOI_vec_perm, > DOI_vec_perm_const, > > DOI_MAX >}; > > > >struct direct_optab_d >{ > struct optab_handlers handlers[NUM_MACHINE_MODES]; >}; >typedef struct direct_optab_d *direct_optab; ># 823 "../../gcc/optabs.h" >struct target_optabs { > > struct optab_d x_optab_table[(int) OTI_MAX]; > > > struct convert_optab_d x_convert_optab_table[(int) COI_MAX]; > > > > struct direct_optab_d x_direct_optab_table[(int) DOI_MAX]; >}; > >extern struct target_optabs default_target_optabs; ># 851 "../../gcc/optabs.h" >extern rtx expand_widen_pattern_expr (sepops ops, rtx op0, rtx op1, rtx wide_op, > rtx target, int unsignedp); > >extern rtx expand_ternary_op (enum machine_mode mode, optab ternary_optab, > rtx op0, rtx op1, rtx op2, rtx target, > int unsignedp); > > >extern rtx expand_binop (enum machine_mode, optab, rtx, rtx, rtx, int, > enum optab_methods); > >extern rtx simplify_expand_binop (enum machine_mode mode, optab binoptab, > rtx op0, rtx op1, rtx target, int unsignedp, > enum optab_methods methods); > >extern unsigned char force_expand_binop (enum machine_mode, optab, rtx, rtx, rtx, int, > enum optab_methods); > > >extern rtx sign_expand_binop (enum machine_mode, optab, optab, rtx, rtx, > rtx, int, enum optab_methods); > > >extern int expand_twoval_unop (optab, rtx, rtx, rtx, int); > > >extern int expand_twoval_binop (optab, rtx, rtx, rtx, rtx, int); > > > >extern unsigned char expand_twoval_binop_libfunc (optab, rtx, rtx, rtx, rtx, > enum rtx_code); > > >extern rtx expand_unop (enum machine_mode, optab, rtx, rtx, int); > > >extern rtx expand_abs_nojump (enum machine_mode, rtx, rtx, int); >extern rtx expand_abs (enum machine_mode, rtx, rtx, int, int); > > >extern rtx expand_one_cmpl_abs_nojump (enum machine_mode, rtx, rtx); > > >extern rtx expand_copysign (rtx, rtx, rtx); > > > >extern void emit_unop_insn (enum insn_code, rtx, rtx, enum rtx_code); >extern unsigned char maybe_emit_unop_insn (enum insn_code, rtx, rtx, enum rtx_code); > > > > >extern enum insn_code find_widening_optab_handler_and_mode (optab, > enum machine_mode, > enum machine_mode, > int, > enum machine_mode *); > > > > >enum optab_subtype >{ > optab_default, > optab_scalar, > optab_vector >}; > > > > >extern optab optab_for_tree_code (enum tree_code, const_tree, enum optab_subtype); > > > >enum can_compare_purpose >{ > ccp_jump, > ccp_cmov, > ccp_store_flag >}; > > > >extern int can_compare_p (enum rtx_code, enum machine_mode, > enum can_compare_purpose); > > >extern enum insn_code can_extend_p (enum machine_mode, enum machine_mode, int); > > > >extern rtx gen_extend_insn (rtx, rtx, enum machine_mode, > enum machine_mode, int); > > >extern void set_optab_libfunc (optab, enum machine_mode, const char *); >extern void set_conv_libfunc (convert_optab, enum machine_mode, > enum machine_mode, const char *); > > >extern void init_sync_libfuncs (int max); > > >extern void expand_fixed_convert (rtx, rtx, int, int); > > >extern void expand_float (rtx, rtx, int); > > >enum insn_code can_float_p (enum machine_mode, enum machine_mode, int); > > >extern unsigned char can_compare_and_swap_p (enum machine_mode, unsigned char); > > >extern unsigned char can_atomic_exchange_p (enum machine_mode, unsigned char); > > >extern unsigned char expand_atomic_compare_and_swap (rtx *, rtx *, rtx, rtx, rtx, unsigned char, > enum memmodel, enum memmodel); > > >extern void expand_mem_thread_fence (enum memmodel); >extern void expand_mem_signal_fence (enum memmodel); > > > > >unsigned char supportable_convert_operation (enum tree_code, tree, tree, tree *, > enum tree_code *); > > >extern void expand_fix (rtx, rtx, int); > > >extern unsigned char expand_sfix_optab (rtx, rtx, convert_optab); > > >extern rtx expand_widening_mult (enum machine_mode, rtx, rtx, rtx, int, optab); > > >unsigned char expand_vec_cond_expr_p (tree, tree); > > >extern rtx expand_vec_cond_expr (tree, tree, tree, tree, rtx); > >extern rtx expand_vec_shift_expr (sepops, rtx); > > >extern unsigned char can_vec_perm_p (enum machine_mode, unsigned char, const unsigned char *); > > >extern rtx expand_vec_perm (enum machine_mode, rtx, rtx, rtx, rtx); > > > > >static __inline__ enum insn_code >optab_handler (optab op, enum machine_mode mode) >{ > return (enum insn_code) (op->handlers[(int) mode].insn_code > + (int) CODE_FOR_nothing); >} > > > > >static __inline__ enum insn_code >widening_optab_handler (optab op, enum machine_mode to_mode, > enum machine_mode from_mode) >{ > if (to_mode == from_mode || from_mode == VOIDmode) > return optab_handler (op, to_mode); > > if (op->widening) > return (enum insn_code) (op->widening->handlers[(int) to_mode][(int) from_mode].insn_code > + (int) CODE_FOR_nothing); > > return CODE_FOR_nothing; >} > > > >static __inline__ void >set_optab_handler (optab op, enum machine_mode mode, enum insn_code code) >{ > op->handlers[(int) mode].insn_code = (int) code - (int) CODE_FOR_nothing; >} > > > > >static __inline__ void >set_widening_optab_handler (optab op, enum machine_mode to_mode, > enum machine_mode from_mode, enum insn_code code) >{ > if (to_mode == from_mode) > set_optab_handler (op, to_mode, code); > else > { > if (op->widening == ((void *)0)) > op->widening = (struct widening_optab_handlers *) > xcalloc (1, sizeof (struct widening_optab_handlers)); > > op->widening->handlers[(int) to_mode][(int) from_mode].insn_code > = (int) code - (int) CODE_FOR_nothing; > } >} > > > > > >static __inline__ enum insn_code >convert_optab_handler (convert_optab op, enum machine_mode to_mode, > enum machine_mode from_mode) >{ > return ((enum insn_code) > (op->handlers[(int) to_mode][(int) from_mode].insn_code > + (int) CODE_FOR_nothing)); >} > > > > >static __inline__ void >set_convert_optab_handler (convert_optab op, enum machine_mode to_mode, > enum machine_mode from_mode, enum insn_code code) >{ > op->handlers[(int) to_mode][(int) from_mode].insn_code > = (int) code - (int) CODE_FOR_nothing; >} > > > > >static __inline__ enum insn_code >direct_optab_handler (direct_optab op, enum machine_mode mode) >{ > return (enum insn_code) (op->handlers[(int) mode].insn_code > + (int) CODE_FOR_nothing); >} > > > >static __inline__ void >set_direct_optab_handler (direct_optab op, enum machine_mode mode, > enum insn_code code) >{ > op->handlers[(int) mode].insn_code = (int) code - (int) CODE_FOR_nothing; >} > >extern rtx optab_libfunc (optab optab, enum machine_mode mode); >extern rtx convert_optab_libfunc (convert_optab optab, enum machine_mode mode1, > enum machine_mode mode2); > >extern unsigned char insn_operand_matches (enum insn_code icode, unsigned int opno, > rtx operand); > > > > >enum expand_operand_type { > EXPAND_FIXED, > EXPAND_OUTPUT, > EXPAND_INPUT, > EXPAND_CONVERT_TO, > EXPAND_CONVERT_FROM, > EXPAND_ADDRESS, > EXPAND_INTEGER >}; > > >struct expand_operand { > > __extension__ enum expand_operand_type type : 8; > > > > unsigned int unsigned_p : 1; > > > unsigned int unused : 7; > > > > __extension__ enum machine_mode mode : 16; > > > rtx value; >}; > > > > >static __inline__ void >create_expand_operand (struct expand_operand *op, > enum expand_operand_type type, > rtx value, enum machine_mode mode, > unsigned char unsigned_p) >{ > op->type = type; > op->unsigned_p = unsigned_p; > op->unused = 0; > op->mode = mode; > op->value = value; >} > > > >static __inline__ void >create_fixed_operand (struct expand_operand *op, rtx x) >{ > create_expand_operand (op, EXPAND_FIXED, x, VOIDmode, 0); >} > > > > > > >static __inline__ void >create_output_operand (struct expand_operand *op, rtx x, > enum machine_mode mode) >{ > create_expand_operand (op, EXPAND_OUTPUT, x, mode, 0); >} > > > > > > >static __inline__ void >create_input_operand (struct expand_operand *op, rtx value, > enum machine_mode mode) >{ > create_expand_operand (op, EXPAND_INPUT, value, mode, 0); >} > > > > >static __inline__ void >create_convert_operand_to (struct expand_operand *op, rtx value, > enum machine_mode mode, unsigned char unsigned_p) >{ > create_expand_operand (op, EXPAND_CONVERT_TO, value, mode, unsigned_p); >} > > > > > > >static __inline__ void >create_convert_operand_from (struct expand_operand *op, rtx value, > enum machine_mode mode, unsigned char unsigned_p) >{ > create_expand_operand (op, EXPAND_CONVERT_FROM, value, mode, unsigned_p); >} > >extern void create_convert_operand_from_type (struct expand_operand *op, > rtx value, tree type); > > > > >static __inline__ void >create_address_operand (struct expand_operand *op, rtx value) >{ > create_expand_operand (op, EXPAND_ADDRESS, value, ((enum machine_mode)rs6000_pmode), 0); >} > > > > > > > >static __inline__ void >create_integer_operand (struct expand_operand *op, long long intval) >{ > create_expand_operand (op, EXPAND_INTEGER, gen_rtx_CONST_INT (VOIDmode, (intval)), VOIDmode, 0); >} > >extern unsigned char valid_multiword_target_p (rtx); > >extern unsigned char maybe_legitimize_operands (enum insn_code icode, > unsigned int opno, unsigned int nops, > struct expand_operand *ops); >extern rtx maybe_gen_insn (enum insn_code icode, unsigned int nops, > struct expand_operand *ops); >extern unsigned char maybe_expand_insn (enum insn_code icode, unsigned int nops, > struct expand_operand *ops); >extern unsigned char maybe_expand_jump_insn (enum insn_code icode, unsigned int nops, > struct expand_operand *ops); >extern void expand_insn (enum insn_code icode, unsigned int nops, > struct expand_operand *ops); >extern void expand_jump_insn (enum insn_code icode, unsigned int nops, > struct expand_operand *ops); > >extern rtx prepare_operand (enum insn_code, rtx, int, enum machine_mode, > enum machine_mode, int); ># 98 "../../gcc/combine.c" 2 > ># 1 "../../gcc/rtlhooks-def.h" 1 ># 40 "../../gcc/rtlhooks-def.h" >extern rtx gen_lowpart_general (enum machine_mode, rtx); >extern rtx gen_lowpart_no_emit_general (enum machine_mode, rtx); >extern rtx reg_nonzero_bits_general (const_rtx, enum machine_mode, const_rtx, > enum machine_mode, > unsigned long long, > unsigned long long *); >extern rtx reg_num_sign_bit_copies_general (const_rtx, enum machine_mode, const_rtx, > enum machine_mode, > unsigned int, unsigned int *); >extern unsigned char reg_truncated_to_mode_general (enum machine_mode, const_rtx); ># 100 "../../gcc/combine.c" 2 > ># 1 "../../gcc/output.h" 1 ># 27 "../../gcc/output.h" >extern void init_final (const char *); > > > >extern void app_enable (void); > > > >extern void app_disable (void); > > > > >extern int dbr_sequence_length (void); > > >extern void init_insn_lengths (void); > > > >extern int get_attr_length (rtx); > > > >extern int get_attr_min_length (rtx); > > > >extern void shorten_branches (rtx); > > > > > > >extern void final_start_function (rtx, FILE *, int); > > > > >extern void final_end_function (void); > > >extern void final (rtx, FILE *, int); > > > > >extern rtx final_scan_insn (rtx, FILE *, int, int, int *); > > > >extern rtx alter_subreg (rtx *); > > >extern void output_operand (rtx, int); > > > >extern void output_operand_lossage (const char *, ...) __attribute__ ((__format__ (__printf__, 1, 2))) __attribute__ ((__nonnull__ (1))); > > > >extern void output_asm_insn (const char *, rtx *); > > > > >extern int insn_current_reference_address (rtx); > > > >extern int label_to_alignment (rtx); > > > >extern int label_to_max_skip (rtx); > > >extern void output_asm_label (rtx); > > >extern void mark_symbol_refs_as_used (rtx); > > > >extern void output_address (rtx); > > > > >extern void output_addr_const (FILE *, rtx); ># 127 "../../gcc/output.h" >typedef long long __gcc_host_wide_int__; > > > > >extern void fprint_whex (FILE *, unsigned long long); >extern void fprint_ul (FILE *, unsigned long); >extern int sprint_ul (char *, unsigned long); > >extern void asm_fprintf (FILE *file, const char *p, ...) > __attribute__ ((__format__ (__asm_fprintf__, 2, 3))) __attribute__ ((__nonnull__ (2))); > > > >extern void split_double (rtx, rtx *, rtx *); > > >extern int leaf_function_p (void); > > > > >extern int final_forward_branch_p (rtx); > > > >extern int only_leaf_regs_used (void); > > > >extern void leaf_renumber_regs_insn (rtx); > > >extern const char *get_insn_template (int, rtx); > > > > >extern void declare_weak (tree); > >extern void merge_weak (tree, tree); > > >extern void weak_finish (void); > > >extern enum tls_model decl_default_tls_model (const_tree); ># 182 "../../gcc/output.h" >extern int decode_reg_name (const char *); > > > > >extern int decode_reg_name_and_count (const char *, int *); > >extern void assemble_alias (tree, tree); > >extern void default_assemble_visibility (tree, int); > > > >extern void assemble_asm (tree); > > > > > >extern void assemble_start_function (tree, const char *); > > > >extern void assemble_end_function (tree, const char *); ># 216 "../../gcc/output.h" >extern void assemble_variable (tree, int, int, int); > > > >extern void align_variable (tree decl, unsigned char dont_output_data); > > > > >extern void assemble_external (tree); > > >extern void assemble_zeros (unsigned long long); > > >extern void assemble_align (int); > > >extern void assemble_string (const char *, int); > > >extern void assemble_external_libcall (rtx); > > >extern void assemble_label (FILE *, const char *); > > > > > >extern void assemble_name_raw (FILE *, const char *); > > > > > >extern void assemble_name (FILE *, const char *); ># 261 "../../gcc/output.h" >extern const char *integer_asm_op (int, int); > > > >extern void assemble_integer_with_op (const char *, rtx); > > >extern unsigned char default_assemble_integer (rtx, unsigned int, int); > > > > > >extern unsigned char assemble_integer (rtx, unsigned, unsigned, int); > > > >extern section *get_named_text_section (tree, const char *, const char *); ># 288 "../../gcc/output.h" >extern void assemble_real (struct real_value, enum machine_mode, unsigned); > > > >extern void assemble_addr_to_section (rtx, section *); > > >extern int get_pool_size (void); > > >extern rtx peephole (rtx); > > >extern void output_shared_constant_pool (void); > >extern void output_object_blocks (void); > >extern void output_quoted_string (FILE *, const char *); > > > > > > >extern unsigned char constructor_static_from_elts_p (const_tree); ># 323 "../../gcc/output.h" >extern tree initializer_constant_valid_p (tree, tree); > > > > >extern unsigned char initializer_constant_valid_for_bitfield_p (tree); ># 338 "../../gcc/output.h" >extern void output_constant (tree, unsigned long long, unsigned int); > > > > > > > >extern rtx final_sequence; ># 358 "../../gcc/output.h" >extern FILE *asm_out_file; > > > >extern const char *first_global_object_name; > > >extern const char *weak_global_object_name; > > > > > > >extern int current_function_is_leaf; > > > > > >extern int current_function_sp_is_unchanging; > > > > > >extern int current_function_uses_only_leaf_regs; > > > > >extern FILE *dump_file; > > > >extern rtx current_insn_predicate; > > >extern rtx current_output_insn; > > > > >extern rtx this_is_asm_operands; > > > >extern int size_directive_output; >extern tree last_assemble_variable_decl; > >extern unsigned char first_function_block_is_cold; > > > >extern unsigned char decl_readonly_section (const_tree, int); > > > >extern int compute_reloc_for_constant (tree); > > >extern const char *user_label_prefix; > > >extern void default_function_pro_epilogue (FILE *, long long); > > >extern void default_function_switched_text_sections (FILE *, tree, unsigned char); > > >extern void no_asm_to_stream (FILE *); ># 468 "../../gcc/output.h" >enum section_category >{ > SECCAT_TEXT, > > SECCAT_RODATA, > SECCAT_RODATA_MERGE_STR, > SECCAT_RODATA_MERGE_STR_INIT, > SECCAT_RODATA_MERGE_CONST, > SECCAT_SRODATA, > > SECCAT_DATA, ># 489 "../../gcc/output.h" > SECCAT_DATA_REL, > SECCAT_DATA_REL_LOCAL, > SECCAT_DATA_REL_RO, > SECCAT_DATA_REL_RO_LOCAL, > > SECCAT_SDATA, > SECCAT_TDATA, > > SECCAT_BSS, > SECCAT_SBSS, > SECCAT_TBSS >}; > > >struct section_common { > > unsigned int flags; >}; > > >struct named_section { > struct section_common common; > > > const char *name; > > > > tree decl; >}; > > > >typedef void (*unnamed_section_callback) (const void *); > > >struct unnamed_section { > struct section_common common; > > > > unnamed_section_callback callback; > const void * data; > > > section *next; >}; ># 546 "../../gcc/output.h" >typedef unsigned char (*noswitch_section_callback) (tree decl, const char *name, > unsigned long long size, > unsigned long long rounded); > > >struct noswitch_section { > struct section_common common; > > > noswitch_section_callback callback; >}; > > >union section { > struct section_common common; > struct named_section named; > struct unnamed_section unnamed; > struct noswitch_section noswitch; >}; > > > > >struct object_block; > > >extern section *text_section; >extern section *data_section; >extern section *readonly_data_section; >extern section *sdata_section; >extern section *ctors_section; >extern section *dtors_section; >extern section *bss_section; >extern section *sbss_section; >extern section *exception_section; >extern section *eh_frame_section; >extern section *tls_comm_section; >extern section *comm_section; >extern section *lcomm_section; >extern section *bss_noswitch_section; > >extern section *in_section; >extern unsigned char in_cold_section_p; > >extern section *get_unnamed_section (unsigned int, void (*) (const void *), > const void *); >extern section *get_section (const char *, unsigned int, tree); >extern section *get_named_section (tree, const char *, int); >extern section *get_variable_section (tree, unsigned char); >extern void place_block_symbol (rtx); >extern rtx get_section_anchor (struct object_block *, long long, > enum tls_model); >extern section *mergeable_constant_section (enum machine_mode, > unsigned long long, > unsigned int); >extern section *function_section (tree); >extern section *unlikely_text_section (void); >extern section *current_function_section (void); > > > >extern section *get_cdtor_priority_section (int, unsigned char); > >extern unsigned char unlikely_text_section_p (section *); >extern void switch_to_section (section *); >extern void output_section_asm_op (const void *); > >extern void record_tm_clone_pair (tree, tree); >extern void finish_tm_clone_pairs (void); >extern tree get_tm_clone_pair (tree); > >extern void default_asm_output_source_filename (FILE *, const char *); >extern void output_file_directive (FILE *, const char *); > >extern unsigned int default_section_type_flags (tree, const char *, int); > >extern unsigned char have_global_bss_p (void); >extern void default_no_named_section (const char *, unsigned int, tree); >extern void default_elf_asm_named_section (const char *, unsigned int, tree); >extern enum section_category categorize_decl_for_section (const_tree, int); >extern void default_coff_asm_named_section (const char *, unsigned int, tree); >extern void default_pe_asm_named_section (const char *, unsigned int, tree); > >extern void default_stabs_asm_out_destructor (rtx, int); >extern void default_named_section_asm_out_destructor (rtx, int); >extern void default_dtor_section_asm_out_destructor (rtx, int); >extern void default_stabs_asm_out_constructor (rtx, int); >extern void default_named_section_asm_out_constructor (rtx, int); >extern void default_ctor_section_asm_out_constructor (rtx, int); > >extern section *default_select_section (tree, int, unsigned long long); >extern section *default_elf_select_section (tree, int, unsigned long long); >extern void default_unique_section (tree, int); >extern section *default_function_rodata_section (tree); >extern section *default_no_function_rodata_section (tree); >extern section *default_clone_table_section (void); >extern section *default_select_rtx_section (enum machine_mode, rtx, > unsigned long long); >extern section *default_elf_select_rtx_section (enum machine_mode, rtx, > unsigned long long); >extern void default_encode_section_info (tree, rtx, int); >extern const char *default_strip_name_encoding (const char *); >extern void default_asm_output_anchor (rtx); >extern unsigned char default_use_anchors_for_symbol_p (const_rtx); >extern unsigned char default_binds_local_p (const_tree); >extern unsigned char default_binds_local_p_1 (const_tree, int); >extern void default_globalize_label (FILE *, const char *); >extern void default_globalize_decl_name (FILE *, tree); >extern void default_emit_unwind_label (FILE *, tree, int, int); >extern void default_emit_except_table_label (FILE *); >extern void default_generate_internal_label (char *, const char *, > unsigned long); >extern void default_internal_label (FILE *, const char *, unsigned long); >extern void default_asm_declare_constant_name (FILE *, const char *, > const_tree, long long); >extern void default_file_start (void); >extern void file_end_indicate_exec_stack (void); >extern void file_end_indicate_split_stack (void); > >extern void default_elf_asm_output_external (FILE *file, tree, > const char *); >extern void default_elf_asm_output_limited_string (FILE *, const char *); >extern void default_elf_asm_output_ascii (FILE *, const char *, unsigned int); >extern void default_elf_internal_label (FILE *, const char *, unsigned long); > >extern void default_elf_init_array_asm_out_constructor (rtx, int); >extern void default_elf_fini_array_asm_out_destructor (rtx, int); >extern int maybe_assemble_visibility (tree); > >extern int default_address_cost (rtx, unsigned char); > > >extern void output_stack_usage (void); > > > > >extern void dbxout_int (int); >extern void dbxout_stabd (int, int); >extern void dbxout_begin_stabn (int); >extern void dbxout_begin_stabn_sline (int); >extern void dbxout_begin_empty_stabs (int); >extern void dbxout_begin_simple_stabs (const char *, int); >extern void dbxout_begin_simple_stabs_desc (const char *, int, int); > >extern void dbxout_stab_value_zero (void); >extern void dbxout_stab_value_label (const char *); >extern void dbxout_stab_value_label_diff (const char *, const char *); >extern void dbxout_stab_value_internal_label (const char *, int *); >extern void dbxout_stab_value_internal_label_diff (const char *, int *, > const char *); ># 102 "../../gcc/combine.c" 2 ># 1 "../../gcc/params.h" 1 ># 42 "../../gcc/params.h" >typedef struct param_info >{ > > > const char *const option; > > > int default_value; > > > int min_value; > > > int max_value; > > > const char *const help; >} param_info; > > > > >extern param_info *compiler_params; > > >extern size_t get_num_compiler_params (void); > > > >extern void add_params (const param_info params[], size_t n); > > > > > >extern void set_param_value (const char *name, int value, > int *params, int *params_set); > > > > >typedef enum compiler_param >{ > > ># 1 "../../gcc/params.def" 1 ># 44 "../../gcc/params.def" >PARAM_PREDICTABLE_BRANCH_OUTCOME, ># 61 "../../gcc/params.def" >PARAM_MAX_INLINE_INSNS_SINGLE, ># 73 "../../gcc/params.def" >PARAM_MAX_INLINE_INSNS_AUTO, > > > > >PARAM_MAX_INLINE_INSNS_RECURSIVE, > > > > >PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO, > > > > >PARAM_MAX_INLINE_RECURSIVE_DEPTH, > > > > >PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO, > > > > >PARAM_MIN_INLINE_RECURSIVE_PROBABILITY, > > > > > > > >PARAM_EARLY_INLINER_MAX_ITERATIONS, > > > > > >PARAM_COMDAT_SHARING_PROBABILITY, > > > > > >PARAM_PARTIAL_INLINING_ENTRY_PROBABILITY, > > > > > > >PARAM_MAX_VARIABLE_EXPANSIONS, > > > > > >PARAM_MIN_VECT_LOOP_BOUND, ># 142 "../../gcc/params.def" >PARAM_MAX_DELAY_SLOT_INSN_SEARCH, ># 153 "../../gcc/params.def" >PARAM_MAX_DELAY_SLOT_LIVE_SEARCH, ># 163 "../../gcc/params.def" >PARAM_MAX_PENDING_LIST_LENGTH, > > > > > > >PARAM_MAX_MODULO_BACKTRACK_ATTEMPTS, > > > > >PARAM_LARGE_FUNCTION_INSNS, > > > >PARAM_LARGE_FUNCTION_GROWTH, > > > >PARAM_LARGE_UNIT_INSNS, > > > >PARAM_INLINE_UNIT_GROWTH, > > > >PARAM_IPCP_UNIT_GROWTH, > > > >PARAM_EARLY_INLINING_INSNS, > > > >PARAM_LARGE_STACK_FRAME, > > > >PARAM_STACK_FRAME_GROWTH, > > > > > > >PARAM_MAX_GCSE_MEMORY, > > > > > > >PARAM_MAX_GCSE_INSERTION_RATIO, ># 228 "../../gcc/params.def" >PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION, > > > > > > >PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION, > > > > > > > >PARAM_GCSE_COST_DISTANCE_RATIO, > > > > > >PARAM_GCSE_UNRESTRICTED_COST, > > > > > > > >PARAM_MAX_HOIST_DEPTH, ># 269 "../../gcc/params.def" >PARAM_MAX_UNROLLED_INSNS, > > > > > >PARAM_MAX_AVERAGE_UNROLLED_INSNS, > > > > >PARAM_MAX_UNROLL_TIMES, > > > > >PARAM_MAX_PEELED_INSNS, > > > > >PARAM_MAX_PEEL_TIMES, > > > > >PARAM_MAX_COMPLETELY_PEELED_INSNS, > > > > >PARAM_MAX_COMPLETELY_PEEL_TIMES, > > > > >PARAM_MAX_ONCE_PEELED_INSNS, > > > > >PARAM_MAX_UNROLL_ITERATIONS, > > > > > >PARAM_MAX_UNSWITCH_INSNS, > > > > >PARAM_MAX_UNSWITCH_LEVEL, > > > > > > >PARAM_MAX_ITERATIONS_TO_TRACK, > > > > > >PARAM_MAX_ITERATIONS_COMPUTATION_COST, > > > > > >PARAM_SMS_MAX_II_FACTOR, > > > > >PARAM_SMS_MIN_SC, > > > >PARAM_SMS_DFA_HISTORY, > > > >PARAM_SMS_LOOP_AVERAGE_COUNT_THRESHOLD, > > > > >HOT_BB_COUNT_FRACTION, > > > >HOT_BB_FREQUENCY_FRACTION, > > > > >PARAM_ALIGN_THRESHOLD, > > > > >PARAM_ALIGN_LOOP_ITERATIONS, ># 388 "../../gcc/params.def" >PARAM_MAX_PREDICTED_ITERATIONS, > > > >TRACER_DYNAMIC_COVERAGE_FEEDBACK, > > > >TRACER_DYNAMIC_COVERAGE, > > > >TRACER_MAX_CODE_GROWTH, > > > >TRACER_MIN_BRANCH_RATIO, > > > >TRACER_MIN_BRANCH_PROBABILITY_FEEDBACK, > > > >TRACER_MIN_BRANCH_PROBABILITY, > > > > > >PARAM_MAX_CROSSJUMP_EDGES, > > > > > >PARAM_MIN_CROSSJUMP_INSNS, > > > > > >PARAM_MAX_GROW_COPY_BB_INSNS, > > > > > >PARAM_MAX_GOTO_DUPLICATION_INSNS, > > > > > >PARAM_MAX_CSE_PATH_LENGTH, > > > >PARAM_MAX_CSE_INSNS, > > > > > > >PARAM_LIM_EXPENSIVE, ># 462 "../../gcc/params.def" >PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND, > > > > > > > >PARAM_IV_MAX_CONSIDERED_USES, > > > > > > > >PARAM_IV_ALWAYS_PRUNE_CAND_SET_BOUND, > > > > >PARAM_SCEV_MAX_EXPR_SIZE, > > > > >PARAM_SCEV_MAX_EXPR_COMPLEXITY, > > > > >PARAM_OMEGA_MAX_VARS, > > > > >PARAM_OMEGA_MAX_GEQS, > > > > >PARAM_OMEGA_MAX_EQS, > > > > >PARAM_OMEGA_MAX_WILD_CARDS, > > > > >PARAM_OMEGA_HASH_TABLE_SIZE, > > > > >PARAM_OMEGA_MAX_KEYS, > > > > >PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS, > > > > >PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS, > > > > >PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS, > > > > >PARAM_MAX_CSELIB_MEMORY_LOCATIONS, ># 551 "../../gcc/params.def" >GGC_MIN_EXPAND, > > > > >GGC_MIN_HEAPSIZE, > > > > > > > >PARAM_MAX_RELOAD_SEARCH_INSNS, > > > > >PARAM_SINK_FREQUENCY_THRESHOLD, > > > > >PARAM_MAX_SCHED_REGION_BLOCKS, > > > > >PARAM_MAX_SCHED_REGION_INSNS, > > > > >PARAM_MAX_PIPELINE_REGION_BLOCKS, > > > > >PARAM_MAX_PIPELINE_REGION_INSNS, > > > > >PARAM_MIN_SPEC_PROB, > > > > >PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS, > > > > >PARAM_MAX_SCHED_INSN_CONFLICT_DELAY, > > > > >PARAM_SCHED_SPEC_PROB_CUTOFF, > > > > >PARAM_SELSCHED_MAX_LOOKAHEAD, > > > > >PARAM_SELSCHED_MAX_SCHED_TIMES, > > > > >PARAM_SELSCHED_INSNS_TO_RENAME, > > > > >PARAM_SCHED_MEM_TRUE_DEP_COST, > > > > >PARAM_MAX_LAST_VALUE_RTL, > > > > > > > >PARAM_INTEGER_SHARE_LIMIT, ># 661 "../../gcc/params.def" >PARAM_MIN_VIRTUAL_MAPPINGS, > > > > >PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO, > > > > >PARAM_SSP_BUFFER_SIZE, ># 689 "../../gcc/params.def" >PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS, ># 698 "../../gcc/params.def" >PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE, > > > > >PARAM_MAX_SCHED_READY_INSNS, > > > > > >PARAM_MAX_DSE_ACTIVE_LOCAL_STORES, ># 719 "../../gcc/params.def" >PARAM_PREFETCH_LATENCY, > > > > > > >PARAM_SIMULTANEOUS_PREFETCHES, > > > > > > >PARAM_L1_CACHE_SIZE, > > > > > > >PARAM_L1_CACHE_LINE_SIZE, > > > > > > >PARAM_L2_CACHE_SIZE, ># 758 "../../gcc/params.def" >PARAM_USE_CANONICAL_TYPES, > > > > >PARAM_MAX_PARTIAL_ANTIC_LENGTH, ># 773 "../../gcc/params.def" >PARAM_SCCVN_MAX_SCC_SIZE, > > > > >PARAM_IRA_MAX_LOOPS_NUM, > > > > >PARAM_IRA_MAX_CONFLICT_TABLE_SIZE, > > > > >PARAM_IRA_LOOP_RESERVED_REGS, > > > > > > > >PARAM_SWITCH_CONVERSION_BRANCH_RATIO, > > > > > > > >PARAM_LOOP_BLOCK_TILE_SIZE, > > > > > > >PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS, > > > > > > >PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION, > > > > > >PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS, > > > > > > >PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP, > > > > > >PARAM_SLP_MAX_INSNS_IN_BB, > > > > >PARAM_MIN_INSN_TO_PREFETCH_RATIO, > > > > > >PARAM_PREFETCH_MIN_INSN_TO_MEM_RATIO, > > > > > > >PARAM_MAX_VARTRACK_SIZE, > > > > > > > >PARAM_MAX_VARTRACK_EXPR_DEPTH, > > > > > > >PARAM_MIN_NONDEBUG_INSN_UID, > > > > >PARAM_IPA_SRA_PTR_GROWTH_FACTOR, > > > > > >PARAM_TM_MAX_AGGREGATE_SIZE, > > > > > > >PARAM_IPA_CP_VALUE_LIST_SIZE, > > > > > >PARAM_IPA_CP_EVAL_THRESHOLD, > > > > > > > >PARAM_LTO_PARTITIONS, > > > > >MIN_PARTITION_SIZE, > > > > > > >CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP, > > > > > > >PARAM_MAX_STORES_TO_SINK, > > > > > > > >PARAM_CASE_VALUES_THRESHOLD, > > > > > > > >PARAM_ALLOW_LOAD_DATA_RACES, > > > > >PARAM_ALLOW_STORE_DATA_RACES, > > > > >PARAM_ALLOW_PACKED_LOAD_DATA_RACES, > > > > >PARAM_ALLOW_PACKED_STORE_DATA_RACES, > > > > > >PARAM_TREE_REASSOC_WIDTH, > > > > > >PARAM_MAX_TAIL_MERGE_COMPARISONS, > > > > >PARAM_MAX_TAIL_MERGE_ITERATIONS, > > > > > > >PARAM_MAX_TRACKED_STRLENS, ># 88 "../../gcc/params.h" 2 > > LAST_PARAM >} compiler_param; ># 100 "../../gcc/params.h" >extern void maybe_set_param_value (compiler_param num, int value, > int *params, int *params_set); > > > > >extern void set_default_param_value (compiler_param num, int value); > > > > >extern void global_init_params (void); > > > >extern void finish_params (void); > > > >extern int default_param_value (compiler_param num); > > > >extern void init_param_values (int *params); ># 103 "../../gcc/combine.c" 2 ># 1 "../../gcc/timevar.h" 1 ># 53 "../../gcc/timevar.h" >struct timevar_time_def >{ > > double user; > > > > double sys; > > > double wall; > > > unsigned ggc_mem; >}; > > > > > > >typedef enum >{ > TV_NONE, ># 1 "../../gcc/timevar.def" 1 ># 35 "../../gcc/timevar.def" >TV_TOTAL, >TV_PHASE_SETUP, >TV_PHASE_PARSING, >TV_PHASE_DEFERRED, >TV_PHASE_CGRAPH, >TV_PHASE_DBGINFO, >TV_PHASE_CHECK_DBGINFO, >TV_PHASE_GENERATE, >TV_PHASE_FINALIZE, > > >TV_NAME_LOOKUP, >TV_OVERLOAD, > > >TV_GC, > > >TV_DUMP, > > >TV_PCH_SAVE, >TV_PCH_CPP_SAVE, >TV_PCH_PTR_REALLOC, >TV_PCH_PTR_SORT, >TV_PCH_RESTORE, >TV_PCH_CPP_RESTORE, > >TV_CGRAPH, >TV_CGRAPHOPT, >TV_VARPOOL, >TV_IPA_CONSTANT_PROP, >TV_IPA_FNSPLIT, >TV_IPA_OPT, >TV_IPA_LTO_GIMPLE_IN, >TV_IPA_LTO_GIMPLE_OUT, >TV_IPA_LTO_DECL_IN, >TV_IPA_LTO_DECL_OUT, >TV_IPA_LTO_DECL_INIT_IO, >TV_IPA_LTO_CGRAPH_IO, >TV_IPA_LTO_DECL_MERGE, >TV_IPA_LTO_CGRAPH_MERGE, >TV_LTO, >TV_WHOPR_WPA, >TV_WHOPR_WPA_IO, >TV_WHOPR_LTRANS, >TV_WHOPR_WPA_LTRANS_EXEC, >TV_IPA_REFERENCE, >TV_IPA_PROFILE, >TV_IPA_PURE_CONST, >TV_IPA_PTA, >TV_IPA_SRA, >TV_IPA_FREE_LANG_DATA, > >TV_CFG, > >TV_CLEANUP_CFG, >TV_CFG_VERIFY, >TV_DELETE_TRIVIALLY_DEAD, > >TV_LIFE, >TV_LIFE_UPDATE, > > >TV_DF_SCAN, >TV_DF_MD, >TV_DF_RD, >TV_DF_LR, >TV_DF_LIVE, >TV_DF_UREC, >TV_DF_CHAIN, >TV_DF_WORD_LR, >TV_DF_NOTE, >TV_REG_STATS, > >TV_ALIAS_ANALYSIS, >TV_ALIAS_STMT_WALK, >TV_REG_SCAN, >TV_REBUILD_JUMP, > >TV_CPP, >TV_LEX, >TV_PARSE_GLOBAL, >TV_PARSE_STRUCT, >TV_PARSE_ENUM, >TV_PARSE_FUNC, >TV_PARSE_INLINE, >TV_PARSE_INMETH, >TV_TEMPLATE_INST, >TV_INLINE_HEURISTICS, >TV_INTEGRATION, >TV_TREE_GIMPLIFY, >TV_TREE_EH, >TV_TREE_CFG, >TV_TREE_CLEANUP_CFG, >TV_TREE_TAIL_MERGE, >TV_TREE_VRP, >TV_TREE_COPY_PROP, >TV_FIND_REFERENCED_VARS, >TV_TREE_PTA, >TV_TREE_INSERT_PHI_NODES, >TV_TREE_SSA_REWRITE_BLOCKS, >TV_TREE_SSA_OTHER, >TV_TREE_SSA_INCREMENTAL, >TV_TREE_OPS, >TV_TREE_SSA_DOMINATOR_OPTS, >TV_TREE_SRA, >TV_TREE_CCP, >TV_TREE_PHI_CPROP, >TV_TREE_SPLIT_EDGES, >TV_TREE_REASSOC, >TV_TREE_PRE, >TV_TREE_FRE, >TV_TREE_SINK, >TV_TREE_PHIOPT, >TV_TREE_FORWPROP, >TV_TREE_PHIPROP, >TV_TREE_DCE, >TV_TREE_CD_DCE, >TV_TREE_CALL_CDCE, >TV_TREE_DSE, >TV_TREE_MERGE_PHI, >TV_TREE_LOOP, >TV_TREE_LOOP_BOUNDS, >TV_LIM, >TV_TREE_LOOP_IVCANON, >TV_SCEV_CONST, >TV_TREE_LOOP_UNSWITCH, >TV_COMPLETE_UNROLL, >TV_TREE_PARALLELIZE_LOOPS, >TV_TREE_VECTORIZATION, >TV_TREE_SLP_VECTORIZATION, >TV_GRAPHITE, >TV_GRAPHITE_TRANSFORMS, >TV_GRAPHITE_DATA_DEPS, >TV_GRAPHITE_CODE_GEN, >TV_TREE_LINEAR_TRANSFORM, >TV_TREE_LOOP_DISTRIBUTION, >TV_CHECK_DATA_DEPS, >TV_TREE_PREFETCH, >TV_TREE_LOOP_IVOPTS, >TV_PREDCOM, >TV_TREE_LOOP_INIT, >TV_TREE_LOOP_FINI, >TV_TREE_CH, >TV_TREE_SSA_UNCPROP, >TV_TREE_SSA_TO_NORMAL, >TV_TREE_NRV, >TV_TREE_COPY_RENAME, >TV_TREE_SSA_VERIFY, >TV_TREE_STMT_VERIFY, >TV_TREE_SWITCH_CONVERSION, >TV_TRANS_MEM, >TV_TREE_STRLEN, >TV_CGRAPH_VERIFY, >TV_DOM_FRONTIERS, >TV_DOMINANCE, >TV_CONTROL_DEPENDENCES, >TV_OUT_OF_SSA, >TV_VAR_EXPAND, >TV_EXPAND, >TV_POST_EXPAND, >TV_VARCONST, >TV_LOWER_SUBREG, >TV_JUMP, >TV_FWPROP, >TV_CSE, >TV_DCE, >TV_DSE1, >TV_DSE2, >TV_LOOP, >TV_LOOP_MOVE_INVARIANTS, >TV_LOOP_UNSWITCH, >TV_LOOP_UNROLL, >TV_LOOP_DOLOOP, >TV_CPROP, >TV_PRE, >TV_HOIST, >TV_LSM, >TV_TRACER, >TV_WEB, >TV_AUTO_INC_DEC, >TV_CSE2, >TV_BRANCH_PROB, >TV_VPT, >TV_COMBINE, >TV_IFCVT, >TV_REGMOVE, >TV_MODE_SWITCH, >TV_SMS, >TV_SCHED, >TV_LOCAL_ALLOC, >TV_GLOBAL_ALLOC, >TV_IRA, >TV_RELOAD, >TV_RELOAD_CSE_REGS, >TV_SEQABSTR, >TV_GCSE_AFTER_RELOAD, >TV_REE, >TV_THREAD_PROLOGUE_AND_EPILOGUE, >TV_IFCVT2, >TV_COMBINE_STACK_ADJUST, >TV_PEEPHOLE2, >TV_RENAME_REGISTERS, >TV_CPROP_REGISTERS, >TV_SCHED2, >TV_MACH_DEP, >TV_DBR_SCHED, >TV_REORDER_BLOCKS, >TV_SHORTEN_BRANCH, >TV_REG_STACK, >TV_FINAL, >TV_VAROUT, >TV_SYMOUT, >TV_VAR_TRACKING, >TV_VAR_TRACKING_DATAFLOW, >TV_VAR_TRACKING_EMIT, >TV_TREE_IFCOMBINE, >TV_TREE_UNINIT, >TV_PLUGIN_INIT, >TV_PLUGIN_RUN, > > >TV_EARLY_LOCAL, >TV_OPTIMIZE, >TV_REST_OF_COMPILATION, >TV_POSTRELOAD, >TV_REMOVE_UNUSED, >TV_ADDRESS_TAKEN, >TV_TODO, >TV_VERIFY_LOOP_CLOSED, >TV_VERIFY_RTL_SHARING, >TV_REBUILD_FREQUENCIES, >TV_REPAIR_LOOPS, ># 78 "../../gcc/timevar.h" 2 > TIMEVAR_LAST >} >timevar_id_t; > > > > >extern unsigned char timevar_enable; > > >extern size_t timevar_ggc_mem_total; > >extern void timevar_init (void); >extern void timevar_push_1 (timevar_id_t); >extern void timevar_pop_1 (timevar_id_t); >extern void timevar_start (timevar_id_t); >extern void timevar_stop (timevar_id_t); >extern unsigned char timevar_cond_start (timevar_id_t); >extern void timevar_cond_stop (timevar_id_t, unsigned char); >extern void timevar_print (FILE *); > > >static __inline__ void >timevar_push (timevar_id_t tv) >{ > if (timevar_enable) > timevar_push_1 (tv); >} > >static __inline__ void >timevar_pop (timevar_id_t tv) >{ > if (timevar_enable) > timevar_pop_1 (tv); >} > >extern void print_time (const char *, long); ># 104 "../../gcc/combine.c" 2 ># 1 "../../gcc/tree-pass.h" 1 ># 30 "../../gcc/tree-pass.h" >enum tree_dump_index >{ > TDI_none, > TDI_cgraph, > TDI_tu, > TDI_class, > TDI_original, > TDI_generic, > TDI_nested, > TDI_vcg, > > TDI_ada, > TDI_tree_all, > TDI_rtl_all, > TDI_ipa_all, > > TDI_end >}; ># 91 "../../gcc/tree-pass.h" >extern char *get_dump_file_name (int); >extern int dump_enabled_p (int); >extern int dump_initialized_p (int); >extern FILE *dump_begin (int, int *); >extern void dump_end (int, FILE *); >extern void dump_node (const_tree, int, FILE *); >extern int dump_switch_p (const char *); >extern const char *dump_flag_name (int); > > >extern FILE *dump_file; >extern int dump_flags; >extern const char *dump_file_name; > > >extern struct dump_file_info *get_dump_file_info (int); > > >enum opt_pass_type >{ > GIMPLE_PASS, > RTL_PASS, > SIMPLE_IPA_PASS, > IPA_PASS >}; > > > >struct opt_pass >{ > > enum opt_pass_type type; > > > > const char *name; > > > > unsigned char (*gate) (void); > > > > > unsigned int (*execute) (void); > > > struct opt_pass *sub; > > > struct opt_pass *next; > > > int static_pass_number; > > > > timevar_id_t tv_id; > > > unsigned int properties_required; > unsigned int properties_provided; > unsigned int properties_destroyed; > > > unsigned int todo_flags_start; > unsigned int todo_flags_finish; >}; > > >struct gimple_opt_pass >{ > struct opt_pass pass; >}; > > >struct rtl_opt_pass >{ > struct opt_pass pass; >}; > >struct varpool_node; >struct cgraph_node; >struct cgraph_node_set_def; >struct varpool_node_set_def; > > > >struct ipa_opt_pass_d >{ > struct opt_pass pass; > > > > void (*generate_summary) (void); > > > void (*write_summary) (struct cgraph_node_set_def *, > struct varpool_node_set_def *); > > > void (*read_summary) (void); > > > void (*write_optimization_summary) (struct cgraph_node_set_def *, > struct varpool_node_set_def *); > > > void (*read_optimization_summary) (void); > > > > void (*stmt_fixup) (struct cgraph_node *, gimple *); > > > > unsigned int function_transform_todo_flags_start; > unsigned int (*function_transform) (struct cgraph_node *); > void (*variable_transform) (struct varpool_node *); >}; > > > >struct simple_ipa_opt_pass >{ > struct opt_pass pass; >}; > > >struct dump_file_info >{ > const char *suffix; > const char *swtch; > const char *glob; > int flags; > int state; > int num; >}; ># 333 "../../gcc/tree-pass.h" >enum pass_positioning_ops >{ > PASS_POS_INSERT_AFTER, > PASS_POS_INSERT_BEFORE, > PASS_POS_REPLACE >}; > >struct register_pass_info >{ > struct opt_pass *pass; > const char *reference_pass_name; > > int ref_pass_instance_number; > > > enum pass_positioning_ops pos_op; >}; > >extern void tree_lowering_passes (tree decl); > >extern struct gimple_opt_pass pass_mudflap_1; >extern struct gimple_opt_pass pass_mudflap_2; >extern struct gimple_opt_pass pass_lower_cf; >extern struct gimple_opt_pass pass_refactor_eh; >extern struct gimple_opt_pass pass_lower_eh; >extern struct gimple_opt_pass pass_lower_eh_dispatch; >extern struct gimple_opt_pass pass_lower_resx; >extern struct gimple_opt_pass pass_build_cfg; >extern struct gimple_opt_pass pass_early_tree_profile; >extern struct gimple_opt_pass pass_referenced_vars; >extern struct gimple_opt_pass pass_cleanup_eh; >extern struct gimple_opt_pass pass_sra; >extern struct gimple_opt_pass pass_sra_early; >extern struct gimple_opt_pass pass_early_ipa_sra; >extern struct gimple_opt_pass pass_tail_recursion; >extern struct gimple_opt_pass pass_tail_calls; >extern struct gimple_opt_pass pass_tree_loop; >extern struct gimple_opt_pass pass_tree_loop_init; >extern struct gimple_opt_pass pass_lim; >extern struct gimple_opt_pass pass_tree_unswitch; >extern struct gimple_opt_pass pass_predcom; >extern struct gimple_opt_pass pass_iv_canon; >extern struct gimple_opt_pass pass_scev_cprop; >extern struct gimple_opt_pass pass_empty_loop; >extern struct gimple_opt_pass pass_record_bounds; >extern struct gimple_opt_pass pass_graphite; >extern struct gimple_opt_pass pass_graphite_transforms; >extern struct gimple_opt_pass pass_if_conversion; >extern struct gimple_opt_pass pass_loop_distribution; >extern struct gimple_opt_pass pass_vectorize; >extern struct gimple_opt_pass pass_slp_vectorize; >extern struct gimple_opt_pass pass_complete_unroll; >extern struct gimple_opt_pass pass_complete_unrolli; >extern struct gimple_opt_pass pass_parallelize_loops; >extern struct gimple_opt_pass pass_loop_prefetch; >extern struct gimple_opt_pass pass_iv_optimize; >extern struct gimple_opt_pass pass_tree_loop_done; >extern struct gimple_opt_pass pass_ch; >extern struct gimple_opt_pass pass_ccp; >extern struct gimple_opt_pass pass_phi_only_cprop; >extern struct gimple_opt_pass pass_build_ssa; >extern struct gimple_opt_pass pass_build_alias; >extern struct gimple_opt_pass pass_build_ealias; >extern struct gimple_opt_pass pass_dominator; >extern struct gimple_opt_pass pass_dce; >extern struct gimple_opt_pass pass_dce_loop; >extern struct gimple_opt_pass pass_cd_dce; >extern struct gimple_opt_pass pass_call_cdce; >extern struct gimple_opt_pass pass_merge_phi; >extern struct gimple_opt_pass pass_split_crit_edges; >extern struct gimple_opt_pass pass_pre; >extern unsigned int tail_merge_optimize (unsigned int); >extern struct gimple_opt_pass pass_profile; >extern struct gimple_opt_pass pass_strip_predict_hints; >extern struct gimple_opt_pass pass_lower_complex_O0; >extern struct gimple_opt_pass pass_lower_complex; >extern struct gimple_opt_pass pass_lower_vector; >extern struct gimple_opt_pass pass_lower_vector_ssa; >extern struct gimple_opt_pass pass_lower_omp; >extern struct gimple_opt_pass pass_diagnose_omp_blocks; >extern struct gimple_opt_pass pass_expand_omp; >extern struct gimple_opt_pass pass_expand_omp_ssa; >extern struct gimple_opt_pass pass_object_sizes; >extern struct gimple_opt_pass pass_strlen; >extern struct gimple_opt_pass pass_fold_builtins; >extern struct gimple_opt_pass pass_stdarg; >extern struct gimple_opt_pass pass_early_warn_uninitialized; >extern struct gimple_opt_pass pass_late_warn_uninitialized; >extern struct gimple_opt_pass pass_cse_reciprocals; >extern struct gimple_opt_pass pass_cse_sincos; >extern struct gimple_opt_pass pass_optimize_bswap; >extern struct gimple_opt_pass pass_optimize_widening_mul; >extern struct gimple_opt_pass pass_warn_function_return; >extern struct gimple_opt_pass pass_warn_function_noreturn; >extern struct gimple_opt_pass pass_cselim; >extern struct gimple_opt_pass pass_phiopt; >extern struct gimple_opt_pass pass_forwprop; >extern struct gimple_opt_pass pass_phiprop; >extern struct gimple_opt_pass pass_tree_ifcombine; >extern struct gimple_opt_pass pass_dse; >extern struct gimple_opt_pass pass_nrv; >extern struct gimple_opt_pass pass_rename_ssa_copies; >extern struct gimple_opt_pass pass_rest_of_compilation; >extern struct gimple_opt_pass pass_sink_code; >extern struct gimple_opt_pass pass_fre; >extern struct gimple_opt_pass pass_check_data_deps; >extern struct gimple_opt_pass pass_copy_prop; >extern struct gimple_opt_pass pass_vrp; >extern struct gimple_opt_pass pass_uncprop; >extern struct gimple_opt_pass pass_return_slot; >extern struct gimple_opt_pass pass_reassoc; >extern struct gimple_opt_pass pass_rebuild_cgraph_edges; >extern struct gimple_opt_pass pass_remove_cgraph_callee_edges; >extern struct gimple_opt_pass pass_build_cgraph_edges; >extern struct gimple_opt_pass pass_local_pure_const; >extern struct gimple_opt_pass pass_tracer; >extern struct gimple_opt_pass pass_warn_unused_result; >extern struct gimple_opt_pass pass_diagnose_tm_blocks; >extern struct gimple_opt_pass pass_lower_tm; >extern struct gimple_opt_pass pass_tm_init; >extern struct gimple_opt_pass pass_tm_mark; >extern struct gimple_opt_pass pass_tm_memopt; >extern struct gimple_opt_pass pass_tm_edges; >extern struct gimple_opt_pass pass_split_functions; >extern struct gimple_opt_pass pass_feedback_split_functions; > > >extern struct simple_ipa_opt_pass pass_ipa_lower_emutls; >extern struct simple_ipa_opt_pass pass_ipa_function_and_variable_visibility; >extern struct simple_ipa_opt_pass pass_ipa_tree_profile; > >extern struct simple_ipa_opt_pass pass_early_local_passes; > >extern struct ipa_opt_pass_d pass_ipa_whole_program_visibility; >extern struct ipa_opt_pass_d pass_ipa_lto_gimple_out; >extern struct simple_ipa_opt_pass pass_ipa_increase_alignment; >extern struct simple_ipa_opt_pass pass_ipa_matrix_reorg; >extern struct ipa_opt_pass_d pass_ipa_inline; >extern struct simple_ipa_opt_pass pass_ipa_free_lang_data; >extern struct ipa_opt_pass_d pass_ipa_cp; >extern struct ipa_opt_pass_d pass_ipa_reference; >extern struct ipa_opt_pass_d pass_ipa_pure_const; >extern struct simple_ipa_opt_pass pass_ipa_pta; >extern struct ipa_opt_pass_d pass_ipa_lto_wpa_fixup; >extern struct ipa_opt_pass_d pass_ipa_lto_finish_out; >extern struct simple_ipa_opt_pass pass_ipa_tm; >extern struct ipa_opt_pass_d pass_ipa_profile; >extern struct ipa_opt_pass_d pass_ipa_cdtor_merge; > >extern struct gimple_opt_pass pass_all_optimizations; >extern struct gimple_opt_pass pass_cleanup_cfg_post_optimizing; >extern struct gimple_opt_pass pass_init_datastructures; >extern struct gimple_opt_pass pass_fixup_cfg; > >extern struct rtl_opt_pass pass_expand; >extern struct rtl_opt_pass pass_init_function; >extern struct rtl_opt_pass pass_jump; >extern struct rtl_opt_pass pass_rtl_eh; >extern struct rtl_opt_pass pass_initial_value_sets; >extern struct rtl_opt_pass pass_unshare_all_rtl; >extern struct rtl_opt_pass pass_instantiate_virtual_regs; >extern struct rtl_opt_pass pass_rtl_fwprop; >extern struct rtl_opt_pass pass_rtl_fwprop_addr; >extern struct rtl_opt_pass pass_jump2; >extern struct rtl_opt_pass pass_lower_subreg; >extern struct rtl_opt_pass pass_cse; >extern struct rtl_opt_pass pass_fast_rtl_dce; >extern struct rtl_opt_pass pass_ud_rtl_dce; >extern struct rtl_opt_pass pass_rtl_dce; >extern struct rtl_opt_pass pass_rtl_dse1; >extern struct rtl_opt_pass pass_rtl_dse2; >extern struct rtl_opt_pass pass_rtl_dse3; >extern struct rtl_opt_pass pass_rtl_cprop; >extern struct rtl_opt_pass pass_rtl_pre; >extern struct rtl_opt_pass pass_rtl_hoist; >extern struct rtl_opt_pass pass_rtl_store_motion; >extern struct rtl_opt_pass pass_cse_after_global_opts; >extern struct rtl_opt_pass pass_rtl_ifcvt; > >extern struct rtl_opt_pass pass_into_cfg_layout_mode; >extern struct rtl_opt_pass pass_outof_cfg_layout_mode; > >extern struct rtl_opt_pass pass_loop2; >extern struct rtl_opt_pass pass_rtl_loop_init; >extern struct rtl_opt_pass pass_rtl_move_loop_invariants; >extern struct rtl_opt_pass pass_rtl_unswitch; >extern struct rtl_opt_pass pass_rtl_unroll_and_peel_loops; >extern struct rtl_opt_pass pass_rtl_doloop; >extern struct rtl_opt_pass pass_rtl_loop_done; > >extern struct rtl_opt_pass pass_web; >extern struct rtl_opt_pass pass_cse2; >extern struct rtl_opt_pass pass_df_initialize_opt; >extern struct rtl_opt_pass pass_df_initialize_no_opt; >extern struct rtl_opt_pass pass_reginfo_init; >extern struct rtl_opt_pass pass_inc_dec; >extern struct rtl_opt_pass pass_stack_ptr_mod; >extern struct rtl_opt_pass pass_initialize_regs; >extern struct rtl_opt_pass pass_combine; >extern struct rtl_opt_pass pass_if_after_combine; >extern struct rtl_opt_pass pass_ree; >extern struct rtl_opt_pass pass_partition_blocks; >extern struct rtl_opt_pass pass_match_asm_constraints; >extern struct rtl_opt_pass pass_regmove; >extern struct rtl_opt_pass pass_split_all_insns; >extern struct rtl_opt_pass pass_fast_rtl_byte_dce; >extern struct rtl_opt_pass pass_lower_subreg2; >extern struct rtl_opt_pass pass_mode_switching; >extern struct rtl_opt_pass pass_sms; >extern struct rtl_opt_pass pass_sched; >extern struct rtl_opt_pass pass_ira; >extern struct rtl_opt_pass pass_reload; >extern struct rtl_opt_pass pass_postreload; >extern struct rtl_opt_pass pass_clean_state; >extern struct rtl_opt_pass pass_branch_prob; >extern struct rtl_opt_pass pass_value_profile_transformations; >extern struct rtl_opt_pass pass_postreload_cse; >extern struct rtl_opt_pass pass_gcse2; >extern struct rtl_opt_pass pass_split_after_reload; >extern struct rtl_opt_pass pass_branch_target_load_optimize1; >extern struct rtl_opt_pass pass_thread_prologue_and_epilogue; >extern struct rtl_opt_pass pass_stack_adjustments; >extern struct rtl_opt_pass pass_peephole2; >extern struct rtl_opt_pass pass_if_after_reload; >extern struct rtl_opt_pass pass_regrename; >extern struct rtl_opt_pass pass_cprop_hardreg; >extern struct rtl_opt_pass pass_reorder_blocks; >extern struct rtl_opt_pass pass_branch_target_load_optimize2; >extern struct rtl_opt_pass pass_leaf_regs; >extern struct rtl_opt_pass pass_split_before_sched2; >extern struct rtl_opt_pass pass_compare_elim_after_reload; >extern struct rtl_opt_pass pass_sched2; >extern struct rtl_opt_pass pass_stack_regs; >extern struct rtl_opt_pass pass_stack_regs_run; >extern struct rtl_opt_pass pass_df_finish; >extern struct rtl_opt_pass pass_compute_alignments; >extern struct rtl_opt_pass pass_duplicate_computed_gotos; >extern struct rtl_opt_pass pass_variable_tracking; >extern struct rtl_opt_pass pass_free_cfg; >extern struct rtl_opt_pass pass_machine_reorg; >extern struct rtl_opt_pass pass_cleanup_barriers; >extern struct rtl_opt_pass pass_delay_slots; >extern struct rtl_opt_pass pass_split_for_shorten_branches; >extern struct rtl_opt_pass pass_split_before_regstack; >extern struct rtl_opt_pass pass_convert_to_eh_region_ranges; >extern struct rtl_opt_pass pass_shorten_branches; >extern struct rtl_opt_pass pass_set_nothrow_function_flags; >extern struct rtl_opt_pass pass_dwarf2_frame; >extern struct rtl_opt_pass pass_final; >extern struct rtl_opt_pass pass_rtl_seqabstr; >extern struct gimple_opt_pass pass_release_ssa_names; >extern struct gimple_opt_pass pass_early_inline; >extern struct gimple_opt_pass pass_inline_parameters; >extern struct gimple_opt_pass pass_all_early_optimizations; >extern struct gimple_opt_pass pass_update_address_taken; >extern struct gimple_opt_pass pass_convert_switch; > > >extern struct opt_pass *all_passes, *all_small_ipa_passes, *all_lowering_passes, > *all_regular_ipa_passes, *all_lto_gen_passes, *all_late_ipa_passes; ># 604 "../../gcc/tree-pass.h" >enum >{ > PASS_LIST_NO_all_lowering_passes, PASS_LIST_NO_all_small_ipa_passes, PASS_LIST_NO_all_regular_ipa_passes, PASS_LIST_NO_all_lto_gen_passes, PASS_LIST_NO_all_passes, > PASS_LIST_NUM >}; > > > > >extern struct opt_pass **gcc_pass_lists[]; > > >extern struct opt_pass *current_pass; > >extern struct opt_pass * get_pass_for_id (int); >extern unsigned char execute_one_pass (struct opt_pass *); >extern void execute_pass_list (struct opt_pass *); >extern void execute_ipa_pass_list (struct opt_pass *); >extern void execute_ipa_summary_passes (struct ipa_opt_pass_d *); >extern void execute_all_ipa_transforms (void); >extern void execute_all_ipa_stmt_fixups (struct cgraph_node *, gimple *); >extern unsigned char pass_init_dump_file (struct opt_pass *); >extern void pass_fini_dump_file (struct opt_pass *); > >extern const char *get_current_pass_name (void); >extern void print_current_pass (FILE *); >extern void debug_pass (void); >extern void ipa_write_summaries (void); >extern void ipa_write_optimization_summaries (struct cgraph_node_set_def *, > struct varpool_node_set_def *); >extern void ipa_read_summaries (void); >extern void ipa_read_optimization_summaries (void); >extern void register_one_dump_file (struct opt_pass *); >extern unsigned char function_called_by_processed_nodes_p (void); >extern void register_pass (struct register_pass_info *); ># 647 "../../gcc/tree-pass.h" >extern unsigned char first_pass_instance; > > >extern void do_per_function_toporder (void (*) (void *), void *); > >extern void disable_pass (const char *); >extern void enable_pass (const char *); >extern void dump_passes (void); ># 105 "../../gcc/combine.c" 2 ># 1 "../../gcc/df.h" 1 ># 29 "../../gcc/df.h" ># 1 "../../gcc/bitmap.h" 1 ># 29 "../../gcc/bitmap.h" >typedef unsigned long BITMAP_WORD; ># 45 "../../gcc/bitmap.h" >typedef struct bitmap_obstack { > struct bitmap_element_def *elements; > struct bitmap_head_def *heads; > struct obstack obstack; >} bitmap_obstack; ># 63 "../../gcc/bitmap.h" >typedef struct bitmap_element_def { > struct bitmap_element_def *next; > struct bitmap_element_def *prev; > unsigned int indx; > BITMAP_WORD bits[((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u))]; >} bitmap_element; > >struct bitmap_descriptor; > > > > >typedef struct bitmap_head_def { > bitmap_element *first; > bitmap_element *current; > unsigned int indx; > bitmap_obstack *obstack; > > > > >} bitmap_head; > > >extern bitmap_element bitmap_zero_bits; >extern bitmap_obstack bitmap_default_obstack; > > >extern void bitmap_clear (bitmap); > > >extern void bitmap_copy (bitmap, const_bitmap); > > >extern unsigned char bitmap_equal_p (const_bitmap, const_bitmap); > > >extern unsigned char bitmap_intersect_p (const_bitmap, const_bitmap); > > > >extern unsigned char bitmap_intersect_compl_p (const_bitmap, const_bitmap); > > > > > >extern unsigned char bitmap_single_bit_set_p (const_bitmap); > > >extern unsigned long bitmap_count_bits (const_bitmap); > > > > > >extern void bitmap_and (bitmap, const_bitmap, const_bitmap); >extern void bitmap_and_into (bitmap, const_bitmap); >extern unsigned char bitmap_and_compl (bitmap, const_bitmap, const_bitmap); >extern unsigned char bitmap_and_compl_into (bitmap, const_bitmap); > >extern void bitmap_compl_and_into (bitmap, const_bitmap); >extern void bitmap_clear_range (bitmap, unsigned int, unsigned int); >extern void bitmap_set_range (bitmap, unsigned int, unsigned int); >extern unsigned char bitmap_ior (bitmap, const_bitmap, const_bitmap); >extern unsigned char bitmap_ior_into (bitmap, const_bitmap); >extern void bitmap_xor (bitmap, const_bitmap, const_bitmap); >extern void bitmap_xor_into (bitmap, const_bitmap); > > >extern unsigned char bitmap_ior_and_into (bitmap DST, const_bitmap B, const_bitmap C); > >extern unsigned char bitmap_ior_and_compl (bitmap DST, const_bitmap A, const_bitmap B, const_bitmap C); > >extern unsigned char bitmap_ior_and_compl_into (bitmap DST, const_bitmap B, const_bitmap C); > > >extern unsigned char bitmap_clear_bit (bitmap, int); > > >extern unsigned char bitmap_set_bit (bitmap, int); > > >extern int bitmap_bit_p (bitmap, int); > > >extern void debug_bitmap (const_bitmap); >extern void debug_bitmap_file (FILE *, const_bitmap); > > >extern void bitmap_print (FILE *, const_bitmap, const char *, const char *); > > >extern void bitmap_obstack_initialize (bitmap_obstack *); >extern void bitmap_obstack_release (bitmap_obstack *); >extern void bitmap_register (bitmap ); >extern void dump_bitmap_statistics (void); > > > > >static __inline__ void >bitmap_initialize_stat (bitmap head, bitmap_obstack *obstack ) >{ > head->first = head->current = ((void *)0); > head->obstack = obstack; > > > >} > > > >extern bitmap bitmap_obstack_alloc_stat (bitmap_obstack *obstack ); > >extern bitmap bitmap_gc_alloc_stat (void); > >extern void bitmap_obstack_free (bitmap); > > > > >extern unsigned bitmap_first_set_bit (const_bitmap); >extern unsigned bitmap_last_set_bit (const_bitmap); > > >extern hashval_t bitmap_hash(const_bitmap); ># 203 "../../gcc/bitmap.h" >typedef struct >{ > > bitmap_element *elt1; > > > bitmap_element *elt2; > > > unsigned word_no; > > > > > BITMAP_WORD bits; >} bitmap_iterator; > > > > >static __inline__ void >bmp_iter_set_init (bitmap_iterator *bi, const_bitmap map, > unsigned start_bit, unsigned *bit_no) >{ > bi->elt1 = map->first; > bi->elt2 = ((void *)0); > > > while (1) > { > if (!bi->elt1) > { > bi->elt1 = &bitmap_zero_bits; > break; > } > > if (bi->elt1->indx >= start_bit / (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u))) > break; > bi->elt1 = bi->elt1->next; > } > > > if (bi->elt1->indx != start_bit / (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u))) > start_bit = bi->elt1->indx * (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u)); > > > bi->word_no = start_bit / (8 * 4 * 1u) % ((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)); > bi->bits = bi->elt1->bits[bi->word_no]; > bi->bits >>= start_bit % (8 * 4 * 1u); > > > > > > start_bit += !bi->bits; > > *bit_no = start_bit; >} > > > > >static __inline__ void >bmp_iter_and_init (bitmap_iterator *bi, const_bitmap map1, const_bitmap map2, > unsigned start_bit, unsigned *bit_no) >{ > bi->elt1 = map1->first; > bi->elt2 = map2->first; > > > > while (1) > { > if (!bi->elt1) > { > bi->elt2 = ((void *)0); > break; > } > > if (bi->elt1->indx >= start_bit / (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u))) > break; > bi->elt1 = bi->elt1->next; > } > > > while (1) > { > if (!bi->elt2) > { > bi->elt1 = bi->elt2 = &bitmap_zero_bits; > break; > } > > if (bi->elt2->indx >= bi->elt1->indx) > break; > bi->elt2 = bi->elt2->next; > } > > > if (bi->elt1->indx == bi->elt2->indx) > { > > > if (bi->elt1->indx != start_bit / (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u))) > start_bit = bi->elt1->indx * (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u)); > > bi->word_no = start_bit / (8 * 4 * 1u) % ((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)); > bi->bits = bi->elt1->bits[bi->word_no] & bi->elt2->bits[bi->word_no]; > bi->bits >>= start_bit % (8 * 4 * 1u); > } > else > { > > > bi->word_no = ((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) - 1; > bi->bits = 0; > } > > > > > > start_bit += !bi->bits; > > *bit_no = start_bit; >} > > > > >static __inline__ void >bmp_iter_and_compl_init (bitmap_iterator *bi, const_bitmap map1, const_bitmap map2, > unsigned start_bit, unsigned *bit_no) >{ > bi->elt1 = map1->first; > bi->elt2 = map2->first; > > > while (1) > { > if (!bi->elt1) > { > bi->elt1 = &bitmap_zero_bits; > break; > } > > if (bi->elt1->indx >= start_bit / (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u))) > break; > bi->elt1 = bi->elt1->next; > } > > > while (bi->elt2 && bi->elt2->indx < bi->elt1->indx) > bi->elt2 = bi->elt2->next; > > > > if (bi->elt1->indx != start_bit / (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u))) > start_bit = bi->elt1->indx * (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u)); > > bi->word_no = start_bit / (8 * 4 * 1u) % ((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)); > bi->bits = bi->elt1->bits[bi->word_no]; > if (bi->elt2 && bi->elt1->indx == bi->elt2->indx) > bi->bits &= ~bi->elt2->bits[bi->word_no]; > bi->bits >>= start_bit % (8 * 4 * 1u); > > > > > > start_bit += !bi->bits; > > *bit_no = start_bit; >} > > > > >static __inline__ void >bmp_iter_next (bitmap_iterator *bi, unsigned *bit_no) >{ > bi->bits >>= 1; > *bit_no += 1; >} > > > >static __inline__ void >bmp_iter_next_bit (bitmap_iterator * bi, unsigned *bit_no) >{ > > { > unsigned int n = __builtin_ctzl (bi->bits); > ((void)(!(sizeof (unsigned long) == sizeof (BITMAP_WORD)) ? fancy_abort ("../../gcc/bitmap.h", 396, __FUNCTION__), 0 : 0)); > bi->bits >>= n; > *bit_no += n; > } > > > > > > > >} > > > > > >static __inline__ unsigned char >bmp_iter_set (bitmap_iterator *bi, unsigned *bit_no) >{ > > if (bi->bits) > { > next_bit: > bmp_iter_next_bit (bi, bit_no); > return 1; > } > > > > > *bit_no = ((*bit_no + (8 * 4 * 1u) - 1) > / (8 * 4 * 1u) * (8 * 4 * 1u)); > bi->word_no++; > > while (1) > { > > while (bi->word_no != ((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u))) > { > bi->bits = bi->elt1->bits[bi->word_no]; > if (bi->bits) > goto next_bit; > *bit_no += (8 * 4 * 1u); > bi->word_no++; > } > > > bi->elt1 = bi->elt1->next; > if (!bi->elt1) > return 0; > *bit_no = bi->elt1->indx * (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u)); > bi->word_no = 0; > } >} > > > > > >static __inline__ unsigned char >bmp_iter_and (bitmap_iterator *bi, unsigned *bit_no) >{ > > if (bi->bits) > { > next_bit: > bmp_iter_next_bit (bi, bit_no); > return 1; > } > > > > > *bit_no = ((*bit_no + (8 * 4 * 1u) - 1) > / (8 * 4 * 1u) * (8 * 4 * 1u)); > bi->word_no++; > > while (1) > { > > while (bi->word_no != ((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u))) > { > bi->bits = bi->elt1->bits[bi->word_no] & bi->elt2->bits[bi->word_no]; > if (bi->bits) > goto next_bit; > *bit_no += (8 * 4 * 1u); > bi->word_no++; > } > > > do > { > > > do > { > bi->elt1 = bi->elt1->next; > if (!bi->elt1) > return 0; > } > while (bi->elt1->indx < bi->elt2->indx); > > > > while (bi->elt2->indx < bi->elt1->indx) > { > bi->elt2 = bi->elt2->next; > if (!bi->elt2) > return 0; > } > } > while (bi->elt1->indx != bi->elt2->indx); > > *bit_no = bi->elt1->indx * (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u)); > bi->word_no = 0; > } >} > > > > > >static __inline__ unsigned char >bmp_iter_and_compl (bitmap_iterator *bi, unsigned *bit_no) >{ > > if (bi->bits) > { > next_bit: > bmp_iter_next_bit (bi, bit_no); > return 1; > } > > > > > *bit_no = ((*bit_no + (8 * 4 * 1u) - 1) > / (8 * 4 * 1u) * (8 * 4 * 1u)); > bi->word_no++; > > while (1) > { > > while (bi->word_no != ((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u))) > { > bi->bits = bi->elt1->bits[bi->word_no]; > if (bi->elt2 && bi->elt2->indx == bi->elt1->indx) > bi->bits &= ~bi->elt2->bits[bi->word_no]; > if (bi->bits) > goto next_bit; > *bit_no += (8 * 4 * 1u); > bi->word_no++; > } > > > bi->elt1 = bi->elt1->next; > if (!bi->elt1) > return 0; > > > while (bi->elt2 && bi->elt2->indx < bi->elt1->indx) > bi->elt2 = bi->elt2->next; > > *bit_no = bi->elt1->indx * (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u)); > bi->word_no = 0; > } >} ># 30 "../../gcc/df.h" 2 ># 1 "../../gcc/regset.h" 1 ># 38 "../../gcc/regset.h" >typedef bitmap_head regset_head; > > >typedef bitmap regset; ># 87 "../../gcc/regset.h" >extern void reg_set_to_hard_reg_set (HARD_REG_SET *, const_bitmap); > > > > > > >typedef bitmap_iterator reg_set_iterator; ># 116 "../../gcc/regset.h" >extern regset regs_invalidated_by_call_regset; > > >extern regset fixed_reg_set_regset; > > >extern bitmap_obstack reg_obstack; > > >extern void dump_regset (regset, FILE *); >extern void debug_regset (regset); ># 31 "../../gcc/df.h" 2 ># 1 "../../gcc/sbitmap.h" 1 ># 39 "../../gcc/sbitmap.h" >struct simple_bitmap_def >{ > unsigned char *popcount; > unsigned int n_bits; > unsigned int size; > unsigned long elms[1]; >}; ># 58 "../../gcc/sbitmap.h" >static __inline__ void >SET_BIT (sbitmap map, unsigned int bitno) >{ > if (map->popcount) > { > unsigned char oldbit; > oldbit = ((map)->elms [(bitno) / ((unsigned) (8 * 4))] >> (bitno) % ((unsigned) (8 * 4)) & 1); > if (!oldbit) > map->popcount[bitno / ((unsigned) (8 * 4))]++; > } > map->elms[bitno / ((unsigned) (8 * 4))] > |= (unsigned long) 1 << (bitno) % ((unsigned) (8 * 4)); >} > > > > > > >static __inline__ void >RESET_BIT (sbitmap map, unsigned int bitno) >{ > if (map->popcount) > { > unsigned char oldbit; > oldbit = ((map)->elms [(bitno) / ((unsigned) (8 * 4))] >> (bitno) % ((unsigned) (8 * 4)) & 1); > if (oldbit) > map->popcount[bitno / ((unsigned) (8 * 4))]--; > } > map->elms[bitno / ((unsigned) (8 * 4))] > &= ~((unsigned long) 1 << (bitno) % ((unsigned) (8 * 4))); >} > > >typedef struct { > > const unsigned long *ptr; > > > unsigned int size; > > > unsigned int word_num; > > > unsigned int bit_num; > > > unsigned long word; >} sbitmap_iterator; > > > > >static __inline__ void >sbitmap_iter_init (sbitmap_iterator *i, const_sbitmap bmp, unsigned int min) >{ > i->word_num = min / (unsigned int) ((unsigned) (8 * 4)); > i->bit_num = min; > i->size = bmp->size; > i->ptr = bmp->elms; > > if (i->word_num >= i->size) > i->word = 0; > else > i->word = (i->ptr[i->word_num] > >> (i->bit_num % (unsigned int) ((unsigned) (8 * 4)))); >} > > > > > >static __inline__ unsigned char >sbitmap_iter_cond (sbitmap_iterator *i, unsigned int *n) >{ > > for (; i->word == 0; i->word = i->ptr[i->word_num]) > { > i->word_num++; > > > if (i->word_num >= i->size) > return 0; > > i->bit_num = i->word_num * ((unsigned) (8 * 4)); > } > > > for (; (i->word & 1) == 0; i->word >>= 1) > i->bit_num++; > > *n = i->bit_num; > > return 1; >} > > > >static __inline__ void >sbitmap_iter_next (sbitmap_iterator *i) >{ > i->word >>= 1; > i->bit_num++; >} ># 204 "../../gcc/sbitmap.h" >struct int_list; > >extern void dump_sbitmap (FILE *, const_sbitmap); >extern void dump_sbitmap_file (FILE *, const_sbitmap); >extern void dump_sbitmap_vector (FILE *, const char *, const char *, sbitmap *, > int); >extern sbitmap sbitmap_alloc (unsigned int); >extern sbitmap sbitmap_alloc_with_popcount (unsigned int); >extern sbitmap *sbitmap_vector_alloc (unsigned int, unsigned int); >extern sbitmap sbitmap_resize (sbitmap, unsigned int, int); >extern void sbitmap_copy (sbitmap, const_sbitmap); >extern void sbitmap_copy_n (sbitmap, const_sbitmap, unsigned int); >extern int sbitmap_equal (const_sbitmap, const_sbitmap); >extern unsigned char sbitmap_empty_p (const_sbitmap); >extern unsigned char sbitmap_range_empty_p (const_sbitmap, unsigned int, unsigned int); >extern void sbitmap_zero (sbitmap); >extern void sbitmap_ones (sbitmap); >extern void sbitmap_vector_zero (sbitmap *, unsigned int); >extern void sbitmap_vector_ones (sbitmap *, unsigned int); > >extern void sbitmap_union_of_diff (sbitmap, const_sbitmap, const_sbitmap, const_sbitmap); >extern unsigned char sbitmap_union_of_diff_cg (sbitmap, const_sbitmap, const_sbitmap, const_sbitmap); >extern void sbitmap_difference (sbitmap, const_sbitmap, const_sbitmap); >extern void sbitmap_not (sbitmap, const_sbitmap); >extern void sbitmap_a_or_b_and_c (sbitmap, const_sbitmap, const_sbitmap, const_sbitmap); >extern unsigned char sbitmap_a_or_b_and_c_cg (sbitmap, const_sbitmap, const_sbitmap, const_sbitmap); >extern void sbitmap_a_and_b_or_c (sbitmap, const_sbitmap, const_sbitmap, const_sbitmap); >extern unsigned char sbitmap_a_and_b_or_c_cg (sbitmap, const_sbitmap, const_sbitmap, const_sbitmap); >extern unsigned char sbitmap_any_common_bits (const_sbitmap, const_sbitmap); >extern void sbitmap_a_and_b (sbitmap, const_sbitmap, const_sbitmap); >extern unsigned char sbitmap_a_and_b_cg (sbitmap, const_sbitmap, const_sbitmap); >extern void sbitmap_a_or_b (sbitmap, const_sbitmap, const_sbitmap); >extern unsigned char sbitmap_a_or_b_cg (sbitmap, const_sbitmap, const_sbitmap); >extern void sbitmap_a_xor_b (sbitmap, const_sbitmap, const_sbitmap); >extern unsigned char sbitmap_a_xor_b_cg (sbitmap, const_sbitmap, const_sbitmap); >extern unsigned char sbitmap_a_subset_b_p (const_sbitmap, const_sbitmap); > >extern int sbitmap_first_set_bit (const_sbitmap); >extern int sbitmap_last_set_bit (const_sbitmap); > >extern void sbitmap_intersect_of_predsucc (sbitmap, sbitmap *, int, > struct int_list **); > > > >extern void sbitmap_union_of_predsucc (sbitmap, sbitmap *, int, > struct int_list **); > > > > > > >extern void sbitmap_intersection_of_succs (sbitmap, sbitmap *, int); >extern void sbitmap_intersection_of_preds (sbitmap, sbitmap *, int); >extern void sbitmap_union_of_succs (sbitmap, sbitmap *, int); >extern void sbitmap_union_of_preds (sbitmap, sbitmap *, int); > >extern void debug_sbitmap (const_sbitmap); >extern sbitmap sbitmap_realloc (sbitmap, unsigned int); >extern unsigned long sbitmap_popcount(const_sbitmap, unsigned long); >extern void sbitmap_verify_popcount (const_sbitmap); ># 32 "../../gcc/df.h" 2 > ># 1 "../../gcc/alloc-pool.h" 1 ># 24 "../../gcc/alloc-pool.h" >typedef unsigned long ALLOC_POOL_ID_TYPE; > >typedef struct alloc_pool_list_def >{ > struct alloc_pool_list_def *next; >} > *alloc_pool_list; > >typedef struct alloc_pool_def >{ > const char *name; > > > > size_t elts_per_block; > > > alloc_pool_list returned_free_list; > > > > char* virgin_free_list; > > > > size_t virgin_elts_remaining; > > size_t elts_allocated; > size_t elts_free; > size_t blocks_allocated; > alloc_pool_list block_list; > size_t block_size; > size_t elt_size; >} > *alloc_pool; > >extern alloc_pool create_alloc_pool (const char *, size_t, size_t); >extern void free_alloc_pool (alloc_pool); >extern void empty_alloc_pool (alloc_pool); >extern void free_alloc_pool_if_empty (alloc_pool *); >extern void *pool_alloc (alloc_pool); >extern void pool_free (alloc_pool, void *); >extern void dump_alloc_pool_statistics (void); ># 34 "../../gcc/df.h" 2 > > >struct dataflow; >struct df_d; >struct df_problem; >struct df_link; >struct df_insn_info; >union df_ref_d; ># 62 "../../gcc/df.h" >enum df_flow_dir > { > DF_NONE, > DF_FORWARD, > DF_BACKWARD > }; > > >enum df_ref_class {DF_REF_BASE, DF_REF_ARTIFICIAL, DF_REF_REGULAR}; > > > > >enum df_ref_type {DF_REF_REG_DEF, DF_REF_REG_USE, > DF_REF_REG_MEM_LOAD, DF_REF_REG_MEM_STORE}; > >enum df_ref_flags > { > > > DF_REF_CONDITIONAL = 1 << 0, > > > > > > DF_REF_AT_TOP = 1 << 1, > > > > DF_REF_IN_NOTE = 1 << 2, > > > > DF_HARD_REG_LIVE = 1 << 3, > > > > > DF_REF_PARTIAL = 1 << 4, > > > > > DF_REF_READ_WRITE = 1 << 5, > > > > > > > DF_REF_MAY_CLOBBER = 1 << 6, ># 124 "../../gcc/df.h" > DF_REF_MUST_CLOBBER = 1 << 7, > > > > > > > > DF_REF_SIGN_EXTRACT = 1 << 8, > > > DF_REF_ZERO_EXTRACT = 1 << 9, > > > DF_REF_STRICT_LOW_PART = 1 << 10, > > > DF_REF_SUBREG = 1 << 11, > > > > DF_REF_MW_HARDREG = 1 << 12, > > > > DF_REF_CALL_STACK_USAGE = 1 << 13, > > > DF_REF_REG_MARKER = 1 << 14, > > > DF_REF_PRE_POST_MODIFY = 1 << 15 > > }; > > >enum df_ref_order > { > > DF_REF_ORDER_NO_TABLE, > > > > DF_REF_ORDER_UNORDERED, > DF_REF_ORDER_UNORDERED_WITH_NOTES, > > > > > DF_REF_ORDER_BY_REG, > > > > DF_REF_ORDER_BY_REG_WITH_NOTES, > > > > DF_REF_ORDER_BY_INSN, > > > > DF_REF_ORDER_BY_INSN_WITH_NOTES > }; > > > > >typedef void (*df_alloc_function) (bitmap); > > > > > > > >typedef void (*df_reset_function) (bitmap); > > > >typedef void (*df_free_bb_function) (basic_block, void *); > > >typedef void (*df_local_compute_function) (bitmap); > > >typedef void (*df_init_function) (bitmap); > > >typedef void (*df_dataflow_function) (struct dataflow *, bitmap, int *, int); > > >typedef void (*df_confluence_function_0) (basic_block); > > > >typedef unsigned char (*df_confluence_function_n) (edge); > > > >typedef unsigned char (*df_transfer_function) (int); > > >typedef void (*df_finalizer_function) (bitmap); > > >typedef void (*df_free_function) (void); > > > > >typedef void (*df_remove_problem_function) (void); > > >typedef void (*df_dump_problem_function) (FILE *); > > >typedef void (*df_dump_bb_problem_function) (basic_block, FILE *); > > >typedef void (*df_verify_solution_start) (void); > > >typedef void (*df_verify_solution_end) (void); > > > > >struct df_problem { > > > unsigned int id; > enum df_flow_dir dir; > df_alloc_function alloc_fun; > df_reset_function reset_fun; > df_free_bb_function free_bb_fun; > df_local_compute_function local_compute_fun; > df_init_function init_fun; > df_dataflow_function dataflow_fun; > df_confluence_function_0 con_fun_0; > df_confluence_function_n con_fun_n; > df_transfer_function trans_fun; > df_finalizer_function finalize_fun; > df_free_function free_fun; > df_remove_problem_function remove_problem_fun; > df_dump_problem_function dump_start_fun; > df_dump_bb_problem_function dump_top_fun; > df_dump_bb_problem_function dump_bottom_fun; > df_verify_solution_start verify_start_fun; > df_verify_solution_end verify_end_fun; > struct df_problem *dependent_problem; > unsigned int block_info_elt_size; > > > timevar_id_t tv_id; > > > > unsigned char free_blocks_on_set_blocks; >}; > > > >struct dataflow >{ > struct df_problem *problem; > > > > void *block_info; > unsigned int block_info_size; > > > alloc_pool block_pool; > > > > > > > bitmap out_of_date_transfer_functions; > > > > > > void *problem_data; > > > unsigned int local_flags; > > > > > > unsigned char computed; > > > > > unsigned char solutions_dirty; > > > > > unsigned char optional_p; >}; > > > > > > >struct df_mw_hardreg >{ > rtx mw_reg; > > > __extension__ enum df_ref_type type : 16; > > int flags : 16; > unsigned int start_regno; > unsigned int end_regno; > unsigned int mw_order; >}; > > > > > >struct df_base_ref >{ > > > __extension__ enum df_ref_class cl : 8; > > __extension__ enum df_ref_type type : 8; > > int flags : 16; > unsigned int regno; > rtx reg; > struct df_link *chain; > > > > struct df_insn_info *insn_info; > > > > union df_ref_d *next_reg; > union df_ref_d *prev_reg; > > > int id; > > > unsigned int ref_order; >}; > > > > >struct df_artificial_ref >{ > struct df_base_ref base; > > > > basic_block bb; >}; > > >struct df_regular_ref >{ > struct df_base_ref base; > > > > > rtx *loc; >}; > > >union df_ref_d >{ > struct df_base_ref base; > struct df_regular_ref regular_ref; > struct df_artificial_ref artificial_ref; >}; >typedef union df_ref_d *df_ref; > > > >struct df_insn_info >{ > rtx insn; > df_ref *defs; > df_ref *uses; > > df_ref *eq_uses; > struct df_mw_hardreg **mw_hardregs; > > > > int luid; >}; > > > >struct df_link >{ > df_ref ref; > struct df_link *next; >}; > > >enum df_chain_flags >{ > > DF_DU_CHAIN = 1, > DF_UD_CHAIN = 2 >}; > >enum df_changeable_flags >{ > > > DF_LR_RUN_DCE = 1 << 0, > DF_NO_HARD_REGS = 1 << 1, > > DF_EQ_NOTES = 1 << 2, > DF_NO_REGS_EVER_LIVE = 1 << 3, > > > > > DF_NO_INSN_RESCAN = 1 << 4, > > > > > DF_DEFER_INSN_RESCAN = 1 << 5, > > DF_VERIFY_SCHEDULED = 1 << 6 >}; > > > > >struct df_ref_info >{ > df_ref *refs; > unsigned int *begin; > unsigned int *count; > unsigned int refs_size; > > > > > > > > unsigned int table_size; > unsigned int total_size; > > enum df_ref_order ref_order; >}; > > > >struct df_reg_info >{ > > df_ref reg_chain; > > unsigned int n_refs; >}; ># 508 "../../gcc/df.h" >struct df_d >{ ># 519 "../../gcc/df.h" > struct dataflow *problems_in_order[(7 + 1)]; > struct dataflow *problems_by_index[(7 + 1)]; > > > > > > bitmap blocks_to_analyze; > > > > > struct df_ref_info def_info; > struct df_ref_info use_info; > > > > struct df_reg_info **def_regs; > struct df_reg_info **use_regs; > struct df_reg_info **eq_use_regs; > unsigned int regs_size; > unsigned int regs_inited; > > > struct df_insn_info **insns; > unsigned int insns_size; > > int num_problems_defined; > > bitmap_head hardware_regs_used; > > > bitmap_head regular_block_artificial_uses; > > > bitmap_head eh_block_artificial_uses; > > bitmap entry_block_defs; > bitmap exit_block_uses; > > > > bitmap_head insns_to_delete; > bitmap_head insns_to_rescan; > bitmap_head insns_to_notes_rescan; > int *postorder; > > int *postorder_inverted; > > int n_blocks; > int n_blocks_inverted; ># 582 "../../gcc/df.h" > unsigned int *hard_regs_live_count; > > > > unsigned int ref_order; > > > > int changeable_flags : 8; > > > > unsigned char analyze_subset; > > > > unsigned char redo_entry_and_exit; >}; ># 750 "../../gcc/df.h" >extern bitmap_obstack df_bitmap_obstack; > > > >struct df_scan_bb_info >{ ># 765 "../../gcc/df.h" > df_ref *artificial_defs; > > > > > > df_ref *artificial_uses; >}; > > > > >struct df_rd_bb_info >{ > > bitmap_head kill; > bitmap_head sparse_kill; > bitmap_head gen; > > > bitmap_head in; > bitmap_head out; >}; > > > > > >struct df_md_bb_info >{ > > bitmap_head gen; > bitmap_head kill; > bitmap_head init; > > > bitmap_head in; > bitmap_head out; >}; > > > > > >struct df_lr_bb_info >{ > > bitmap_head def; > > bitmap_head use; > > > bitmap_head in; > bitmap_head out; >}; > > > > > > >struct df_live_bb_info >{ > > bitmap_head kill; > > bitmap_head gen; > > > bitmap_head in; > bitmap_head out; >}; > > > > > > > >struct df_word_lr_bb_info >{ > > bitmap_head def; > > bitmap_head use; > > > bitmap_head in; > bitmap_head out; >}; > > > > > >extern struct df_d *df; ># 884 "../../gcc/df.h" >extern void df_add_problem (struct df_problem *); >extern int df_set_flags (int); >extern int df_clear_flags (int); >extern void df_set_blocks (bitmap); >extern void df_remove_problem (struct dataflow *); >extern void df_finish_pass (unsigned char); >extern void df_analyze_problem (struct dataflow *, bitmap, int *, int); >extern void df_analyze (void); >extern int df_get_n_blocks (enum df_flow_dir); >extern int *df_get_postorder (enum df_flow_dir); >extern void df_simple_dataflow (enum df_flow_dir, df_init_function, > df_confluence_function_0, df_confluence_function_n, > df_transfer_function, bitmap, int *, int); >extern void df_mark_solutions_dirty (void); >extern unsigned char df_get_bb_dirty (basic_block); >extern void df_set_bb_dirty (basic_block); >extern void df_compact_blocks (void); >extern void df_bb_replace (int, basic_block); >extern void df_bb_delete (int); >extern void df_verify (void); > > > >extern df_ref df_bb_regno_first_def_find (basic_block, unsigned int); >extern df_ref df_bb_regno_last_def_find (basic_block, unsigned int); >extern df_ref df_find_def (rtx, rtx); >extern unsigned char df_reg_defined (rtx, rtx); >extern df_ref df_find_use (rtx, rtx); >extern unsigned char df_reg_used (rtx, rtx); >extern void df_worklist_dataflow (struct dataflow *,bitmap, int *, int); >extern void df_print_regset (FILE *file, bitmap r); >extern void df_print_word_regset (FILE *file, bitmap r); >extern void df_dump (FILE *); >extern void df_dump_region (FILE *); >extern void df_dump_start (FILE *); >extern void df_dump_top (basic_block, FILE *); >extern void df_dump_bottom (basic_block, FILE *); >extern void df_refs_chain_dump (df_ref *, unsigned char, FILE *); >extern void df_regs_chain_dump (df_ref, FILE *); >extern void df_insn_debug (rtx, unsigned char, FILE *); >extern void df_insn_debug_regno (rtx, FILE *); >extern void df_regno_debug (unsigned int, FILE *); >extern void df_ref_debug (df_ref, FILE *); >extern void debug_df_insn (rtx); >extern void debug_df_regno (unsigned int); >extern void debug_df_reg (rtx); >extern void debug_df_defno (unsigned int); >extern void debug_df_useno (unsigned int); >extern void debug_df_ref (df_ref); >extern void debug_df_chain (struct df_link *); > > > >extern struct df_link *df_chain_create (df_ref, df_ref); >extern void df_chain_unlink (df_ref); >extern void df_chain_copy (df_ref, struct df_link *); >extern bitmap df_get_live_in (basic_block); >extern bitmap df_get_live_out (basic_block); >extern void df_grow_bb_info (struct dataflow *); >extern void df_chain_dump (struct df_link *, FILE *); >extern void df_print_bb_index (basic_block bb, FILE *file); >extern void df_rd_add_problem (void); >extern void df_rd_simulate_artificial_defs_at_top (basic_block, bitmap); >extern void df_rd_simulate_one_insn (basic_block, rtx, bitmap); >extern void df_lr_add_problem (void); >extern void df_lr_verify_transfer_functions (void); >extern void df_live_verify_transfer_functions (void); >extern void df_live_add_problem (void); >extern void df_live_set_all_dirty (void); >extern void df_chain_add_problem (unsigned int); >extern void df_word_lr_add_problem (void); >extern unsigned char df_word_lr_mark_ref (df_ref, unsigned char, bitmap); >extern unsigned char df_word_lr_simulate_defs (rtx, bitmap); >extern void df_word_lr_simulate_uses (rtx, bitmap); >extern void df_word_lr_simulate_artificial_refs_at_top (basic_block, bitmap); >extern void df_word_lr_simulate_artificial_refs_at_end (basic_block, bitmap); >extern void df_note_add_problem (void); >extern void df_md_add_problem (void); >extern void df_md_simulate_artificial_defs_at_top (basic_block, bitmap); >extern void df_md_simulate_one_insn (basic_block, rtx, bitmap); >extern void df_simulate_find_noclobber_defs (rtx, bitmap); >extern void df_simulate_find_defs (rtx, bitmap); >extern void df_simulate_defs (rtx, bitmap); >extern void df_simulate_uses (rtx, bitmap); >extern void df_simulate_initialize_backwards (basic_block, bitmap); >extern void df_simulate_one_insn_backwards (basic_block, rtx, bitmap); >extern void df_simulate_finalize_backwards (basic_block, bitmap); >extern void df_simulate_initialize_forwards (basic_block, bitmap); >extern void df_simulate_one_insn_forwards (basic_block, rtx, bitmap); >extern void simulate_backwards_to_point (basic_block, regset, rtx); >extern unsigned char can_move_insns_across (rtx, rtx, rtx, rtx, basic_block, regset, > regset, rtx *); > > >extern void df_scan_alloc (bitmap); >extern void df_scan_add_problem (void); >extern void df_grow_reg_info (void); >extern void df_grow_insn_info (void); >extern void df_scan_blocks (void); >extern df_ref df_ref_create (rtx, rtx *, rtx,basic_block, > enum df_ref_type, int ref_flags); >extern void df_uses_create (rtx *, rtx, int); >extern void df_ref_remove (df_ref); >extern struct df_insn_info * df_insn_create_insn_record (rtx); >extern void df_insn_delete (basic_block, unsigned int); >extern void df_bb_refs_record (int, unsigned char); >extern unsigned char df_insn_rescan (rtx); >extern unsigned char df_insn_rescan_debug_internal (rtx); >extern void df_insn_rescan_all (void); >extern void df_process_deferred_rescans (void); >extern void df_recompute_luids (basic_block); >extern void df_insn_change_bb (rtx, basic_block); >extern void df_maybe_reorganize_use_refs (enum df_ref_order); >extern void df_maybe_reorganize_def_refs (enum df_ref_order); >extern void df_ref_change_reg_with_loc (int, int, rtx); >extern void df_notes_rescan (rtx); >extern void df_hard_reg_init (void); >extern void df_update_entry_block_defs (void); >extern void df_update_exit_block_uses (void); >extern void df_update_entry_exit_and_calls (void); >extern unsigned char df_hard_reg_used_p (unsigned int); >extern unsigned int df_hard_reg_used_count (unsigned int); >extern unsigned char df_regs_ever_live_p (unsigned int); >extern void df_set_regs_ever_live (unsigned int, unsigned char); >extern void df_compute_regs_ever_live (unsigned char); >extern unsigned char df_read_modify_subreg_p (rtx); >extern void df_scan_verify (void); > > > >static __inline__ struct df_scan_bb_info * >df_scan_get_bb_info (unsigned int index) >{ > if (index < (df->problems_by_index[0])->block_info_size) > return &((struct df_scan_bb_info *) (df->problems_by_index[0])->block_info)[index]; > else > return ((void *)0); >} > >static __inline__ struct df_rd_bb_info * >df_rd_get_bb_info (unsigned int index) >{ > if (index < (df->problems_by_index[3])->block_info_size) > return &((struct df_rd_bb_info *) (df->problems_by_index[3])->block_info)[index]; > else > return ((void *)0); >} > >static __inline__ struct df_lr_bb_info * >df_lr_get_bb_info (unsigned int index) >{ > if (index < (df->problems_by_index[1])->block_info_size) > return &((struct df_lr_bb_info *) (df->problems_by_index[1])->block_info)[index]; > else > return ((void *)0); >} > >static __inline__ struct df_md_bb_info * >df_md_get_bb_info (unsigned int index) >{ > if (index < (df->problems_by_index[7])->block_info_size) > return &((struct df_md_bb_info *) (df->problems_by_index[7])->block_info)[index]; > else > return ((void *)0); >} > >static __inline__ struct df_live_bb_info * >df_live_get_bb_info (unsigned int index) >{ > if (index < (df->problems_by_index[2])->block_info_size) > return &((struct df_live_bb_info *) (df->problems_by_index[2])->block_info)[index]; > else > return ((void *)0); >} > >static __inline__ struct df_word_lr_bb_info * >df_word_lr_get_bb_info (unsigned int index) >{ > if (index < (df->problems_by_index[5])->block_info_size) > return &((struct df_word_lr_bb_info *) (df->problems_by_index[5])->block_info)[index]; > else > return ((void *)0); >} > > > >static __inline__ df_ref * >df_get_artificial_defs (unsigned int bb_index) >{ > return df_scan_get_bb_info (bb_index)->artificial_defs; >} > > > > >static __inline__ df_ref * >df_get_artificial_uses (unsigned int bb_index) >{ > return df_scan_get_bb_info (bb_index)->artificial_uses; >} > > > > > >struct web_entry >{ > > struct web_entry *pred; > > rtx reg; > void* extra_info; >}; > >extern struct web_entry *unionfind_root (struct web_entry *); >extern unsigned char unionfind_union (struct web_entry *, struct web_entry *); >extern void union_defs (df_ref, struct web_entry *, > unsigned int *used, struct web_entry *, > unsigned char (*fun) (struct web_entry *, struct web_entry *)); ># 106 "../../gcc/combine.c" 2 ># 1 "../../gcc/cgraph.h" 1 ># 25 "../../gcc/cgraph.h" ># 1 "../../gcc/../include/plugin-api.h" 1 ># 47 "../../gcc/../include/plugin-api.h" >enum ld_plugin_status >{ > LDPS_OK = 0, > LDPS_NO_SYMS, > LDPS_BAD_HANDLE, > LDPS_ERR > >}; > > > >enum ld_plugin_api_version >{ > LD_PLUGIN_API_VERSION = 1 >}; > > > >enum ld_plugin_output_file_type >{ > LDPO_REL, > LDPO_EXEC, > LDPO_DYN >}; > > > >struct ld_plugin_input_file >{ > const char *name; > int fd; > off_t offset; > off_t filesize; > void *handle; >}; > > > >struct ld_plugin_symbol >{ > char *name; > char *version; > int def; > int visibility; > uint64_t size; > char *comdat_key; > int resolution; >}; > > > >struct ld_plugin_section >{ > const void* handle; > unsigned int shndx; >}; > > > >enum ld_plugin_symbol_kind >{ > LDPK_DEF, > LDPK_WEAKDEF, > LDPK_UNDEF, > LDPK_WEAKUNDEF, > LDPK_COMMON >}; > > > >enum ld_plugin_symbol_visibility >{ > LDPV_DEFAULT, > LDPV_PROTECTED, > LDPV_INTERNAL, > LDPV_HIDDEN >}; > > > >enum ld_plugin_symbol_resolution >{ > LDPR_UNKNOWN = 0, > > > LDPR_UNDEF, > > > > LDPR_PREVAILING_DEF, > > > > > LDPR_PREVAILING_DEF_IRONLY, > > > > LDPR_PREEMPTED_REG, > > > LDPR_PREEMPTED_IR, > > > LDPR_RESOLVED_IR, > > > > LDPR_RESOLVED_EXEC, > > > LDPR_RESOLVED_DYN, > > > > > > LDPR_PREVAILING_DEF_IRONLY_EXP >}; > > > >typedef >enum ld_plugin_status >(*ld_plugin_claim_file_handler) ( > const struct ld_plugin_input_file *file, int *claimed); > > > >typedef >enum ld_plugin_status >(*ld_plugin_all_symbols_read_handler) (void); > > > >typedef >enum ld_plugin_status >(*ld_plugin_cleanup_handler) (void); > > > >typedef >enum ld_plugin_status >(*ld_plugin_register_claim_file) (ld_plugin_claim_file_handler handler); > > > >typedef >enum ld_plugin_status >(*ld_plugin_register_all_symbols_read) ( > ld_plugin_all_symbols_read_handler handler); > > > >typedef >enum ld_plugin_status >(*ld_plugin_register_cleanup) (ld_plugin_cleanup_handler handler); > > > >typedef >enum ld_plugin_status >(*ld_plugin_add_symbols) (void *handle, int nsyms, > const struct ld_plugin_symbol *syms); > > > > >typedef >enum ld_plugin_status >(*ld_plugin_get_input_file) (const void *handle, > struct ld_plugin_input_file *file); > >typedef >enum ld_plugin_status >(*ld_plugin_get_view) (const void *handle, const void **viewp); > > > >typedef >enum ld_plugin_status >(*ld_plugin_release_input_file) (const void *handle); > > > >typedef >enum ld_plugin_status >(*ld_plugin_get_symbols) (const void *handle, int nsyms, > struct ld_plugin_symbol *syms); > > > >typedef >enum ld_plugin_status >(*ld_plugin_add_input_file) (const char *pathname); > > > >typedef >enum ld_plugin_status >(*ld_plugin_add_input_library) (const char *libname); > > > >typedef >enum ld_plugin_status >(*ld_plugin_set_extra_library_path) (const char *path); > > > >typedef >enum ld_plugin_status >(*ld_plugin_message) (int level, const char *format, ...); > > > > > > >typedef >enum ld_plugin_status >(*ld_plugin_get_input_section_count) (const void* handle, unsigned int *count); > > > > > >typedef >enum ld_plugin_status >(*ld_plugin_get_input_section_type) (const struct ld_plugin_section section, > unsigned int *type); > > > > > > >typedef >enum ld_plugin_status >(*ld_plugin_get_input_section_name) (const struct ld_plugin_section section, > char **section_name_ptr); > > > > > > > >typedef >enum ld_plugin_status >(*ld_plugin_get_input_section_contents) (const struct ld_plugin_section section, > const unsigned char **section_contents, > size_t* len); > > > > > > > >typedef >enum ld_plugin_status >(*ld_plugin_update_section_order) (const struct ld_plugin_section *section_list, > unsigned int num_sections); > > > > > >typedef >enum ld_plugin_status >(*ld_plugin_allow_section_ordering) (void); > >enum ld_plugin_level >{ > LDPL_INFO, > LDPL_WARNING, > LDPL_ERROR, > LDPL_FATAL >}; > > > >enum ld_plugin_tag >{ > LDPT_NULL = 0, > LDPT_API_VERSION, > LDPT_GOLD_VERSION, > LDPT_LINKER_OUTPUT, > LDPT_OPTION, > LDPT_REGISTER_CLAIM_FILE_HOOK, > LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK, > LDPT_REGISTER_CLEANUP_HOOK, > LDPT_ADD_SYMBOLS, > LDPT_GET_SYMBOLS, > LDPT_ADD_INPUT_FILE, > LDPT_MESSAGE, > LDPT_GET_INPUT_FILE, > LDPT_RELEASE_INPUT_FILE, > LDPT_ADD_INPUT_LIBRARY, > LDPT_OUTPUT_NAME, > LDPT_SET_EXTRA_LIBRARY_PATH, > LDPT_GNU_LD_VERSION, > LDPT_GET_VIEW, > LDPT_GET_INPUT_SECTION_COUNT, > LDPT_GET_INPUT_SECTION_TYPE, > LDPT_GET_INPUT_SECTION_NAME, > LDPT_GET_INPUT_SECTION_CONTENTS, > LDPT_UPDATE_SECTION_ORDER, > LDPT_ALLOW_SECTION_ORDERING, > LDPT_GET_SYMBOLS_V2 >}; > > > >struct ld_plugin_tv >{ > enum ld_plugin_tag tv_tag; > union > { > int tv_val; > const char *tv_string; > ld_plugin_register_claim_file tv_register_claim_file; > ld_plugin_register_all_symbols_read tv_register_all_symbols_read; > ld_plugin_register_cleanup tv_register_cleanup; > ld_plugin_add_symbols tv_add_symbols; > ld_plugin_get_symbols tv_get_symbols; > ld_plugin_add_input_file tv_add_input_file; > ld_plugin_message tv_message; > ld_plugin_get_input_file tv_get_input_file; > ld_plugin_get_view tv_get_view; > ld_plugin_release_input_file tv_release_input_file; > ld_plugin_add_input_library tv_add_input_library; > ld_plugin_set_extra_library_path tv_set_extra_library_path; > ld_plugin_get_input_section_count tv_get_input_section_count; > ld_plugin_get_input_section_type tv_get_input_section_type; > ld_plugin_get_input_section_name tv_get_input_section_name; > ld_plugin_get_input_section_contents tv_get_input_section_contents; > ld_plugin_update_section_order tv_update_section_order; > ld_plugin_allow_section_ordering tv_allow_section_ordering; > } tv_u; >}; > > > >typedef >enum ld_plugin_status >(*ld_plugin_onload) (struct ld_plugin_tv *tv); ># 26 "../../gcc/cgraph.h" 2 > > > > ># 1 "../../gcc/ipa-ref.h" 1 ># 22 "../../gcc/ipa-ref.h" >struct cgraph_node; >struct varpool_node; > > >enum ipa_ref_use >{ > IPA_REF_LOAD, > IPA_REF_STORE, > IPA_REF_ADDR, > IPA_REF_ALIAS >}; > > >enum ipa_ref_type >{ > IPA_REF_CGRAPH, > IPA_REF_VARPOOL >}; > > > >union ipa_ref_ptr_u >{ > struct cgraph_node * cgraph_node; > struct varpool_node * varpool_node; >}; > > >struct ipa_ref >{ > union ipa_ref_ptr_u refering; > union ipa_ref_ptr_u refered; > gimple stmt; > unsigned int refered_index; > __extension__ enum ipa_ref_type refering_type:1; > __extension__ enum ipa_ref_type refered_type:1; > __extension__ enum ipa_ref_use use:2; >}; > >typedef struct ipa_ref ipa_ref_t; >typedef struct ipa_ref *ipa_ref_ptr; > >typedef struct VEC_ipa_ref_t_base { struct vec_prefix prefix; ipa_ref_t vec[1]; } VEC_ipa_ref_t_base; typedef struct VEC_ipa_ref_t_none { VEC_ipa_ref_t_base base; } VEC_ipa_ref_t_none; static __inline__ unsigned VEC_ipa_ref_t_base_length (const VEC_ipa_ref_t_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ ipa_ref_t *VEC_ipa_ref_t_base_last (VEC_ipa_ref_t_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return &vec_->vec[vec_->prefix.num - 1]; } static __inline__ ipa_ref_t *VEC_ipa_ref_t_base_index (VEC_ipa_ref_t_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return &vec_->vec[ix_]; } static __inline__ int VEC_ipa_ref_t_base_iterate (VEC_ipa_ref_t_base *vec_, unsigned ix_, ipa_ref_t **ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = &vec_->vec[ix_]; return 1; } else { *ptr = 0; return 0; } } static __inline__ size_t VEC_ipa_ref_t_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_ipa_ref_t_base, vec) + alloc_ * sizeof(ipa_ref_t); } static __inline__ void VEC_ipa_ref_t_base_embedded_init (VEC_ipa_ref_t_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_ipa_ref_t_base_space (VEC_ipa_ref_t_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_ipa_ref_t_base_splice (VEC_ipa_ref_t_base *dst_, VEC_ipa_ref_t_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (ipa_ref_t)); dst_->prefix.num += len_; } } static __inline__ ipa_ref_t *VEC_ipa_ref_t_base_quick_push (VEC_ipa_ref_t_base *vec_, const ipa_ref_t *obj_ ) { ipa_ref_t *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; if (obj_) *slot_ = *obj_; return slot_; } static __inline__ void VEC_ipa_ref_t_base_pop (VEC_ipa_ref_t_base *vec_ ) { (void)(vec_->prefix.num); --vec_->prefix.num; } static __inline__ void VEC_ipa_ref_t_base_truncate (VEC_ipa_ref_t_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ ipa_ref_t *VEC_ipa_ref_t_base_replace (VEC_ipa_ref_t_base *vec_, unsigned ix_, const ipa_ref_t *obj_ ) { ipa_ref_t *slot_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; if (obj_) *slot_ = *obj_; return slot_; } static __inline__ ipa_ref_t *VEC_ipa_ref_t_base_quick_insert (VEC_ipa_ref_t_base *vec_, unsigned ix_, const ipa_ref_t *obj_ ) { ipa_ref_t *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (ipa_ref_t)); if (obj_) *slot_ = *obj_; return slot_; } static __inline__ void VEC_ipa_ref_t_base_ordered_remove (VEC_ipa_ref_t_base *vec_, unsigned ix_ ) { ipa_ref_t *slot_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (ipa_ref_t)); } static __inline__ void VEC_ipa_ref_t_base_unordered_remove (VEC_ipa_ref_t_base *vec_, unsigned ix_ ) { (void)(ix_ < vec_->prefix.num); vec_->vec[ix_] = vec_->vec[--vec_->prefix.num]; } static __inline__ void VEC_ipa_ref_t_base_block_remove (VEC_ipa_ref_t_base *vec_, unsigned ix_, unsigned len_ ) { ipa_ref_t *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (ipa_ref_t)); } static __inline__ ipa_ref_t *VEC_ipa_ref_t_base_address (VEC_ipa_ref_t_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_ipa_ref_t_base_lower_bound (VEC_ipa_ref_t_base *vec_, const ipa_ref_t *obj_, unsigned char (*lessthan_)(const ipa_ref_t *, const ipa_ref_t *) ) { unsigned int len_ = VEC_ipa_ref_t_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { ipa_ref_t *middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_ipa_ref_t_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_ipa_ref_t_gc { VEC_ipa_ref_t_base base; } VEC_ipa_ref_t_gc; static __inline__ VEC_ipa_ref_t_gc *VEC_ipa_ref_t_gc_alloc (int alloc_ ) { return (VEC_ipa_ref_t_gc *) vec_gc_o_reserve_exact (((void *)0), alloc_, __builtin_offsetof (VEC_ipa_ref_t_gc, base.vec), sizeof (ipa_ref_t) ); } static __inline__ VEC_ipa_ref_t_gc *VEC_ipa_ref_t_gc_copy (VEC_ipa_ref_t_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_ipa_ref_t_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_ipa_ref_t_gc *)(vec_gc_o_reserve_exact (((void *)0), len_, __builtin_offsetof (VEC_ipa_ref_t_gc, base.vec), sizeof (ipa_ref_t) )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (ipa_ref_t) * len_); } return new_vec_; } static __inline__ void VEC_ipa_ref_t_gc_free (VEC_ipa_ref_t_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ int VEC_ipa_ref_t_gc_reserve (VEC_ipa_ref_t_gc **vec_, int alloc_ ) { int extend = !VEC_ipa_ref_t_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_ipa_ref_t_gc *) vec_gc_o_reserve (*vec_, alloc_, __builtin_offsetof (VEC_ipa_ref_t_gc, base.vec), sizeof (ipa_ref_t) ); return extend; } static __inline__ int VEC_ipa_ref_t_gc_reserve_exact (VEC_ipa_ref_t_gc **vec_, int alloc_ ) { int extend = !VEC_ipa_ref_t_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_ipa_ref_t_gc *) vec_gc_o_reserve_exact (*vec_, alloc_, __builtin_offsetof (VEC_ipa_ref_t_gc, base.vec), sizeof (ipa_ref_t) ); return extend; } static __inline__ void VEC_ipa_ref_t_gc_safe_grow (VEC_ipa_ref_t_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_ipa_ref_t_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_ipa_ref_t_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_ipa_ref_t_gc_safe_grow_cleared (VEC_ipa_ref_t_gc **vec_, int size_ ) { int oldsize = VEC_ipa_ref_t_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_ipa_ref_t_gc_safe_grow (vec_, size_ ); memset (&(VEC_ipa_ref_t_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (ipa_ref_t) * (size_ - oldsize)); } static __inline__ void VEC_ipa_ref_t_gc_safe_splice (VEC_ipa_ref_t_gc **dst_, VEC_ipa_ref_t_base *src_ ) { if (src_) { VEC_ipa_ref_t_gc_reserve_exact (dst_, src_->prefix.num ); VEC_ipa_ref_t_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ ipa_ref_t *VEC_ipa_ref_t_gc_safe_push (VEC_ipa_ref_t_gc **vec_, const ipa_ref_t *obj_ ) { VEC_ipa_ref_t_gc_reserve (vec_, 1 ); return VEC_ipa_ref_t_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ ipa_ref_t *VEC_ipa_ref_t_gc_safe_insert (VEC_ipa_ref_t_gc **vec_, unsigned ix_, const ipa_ref_t *obj_ ) { VEC_ipa_ref_t_gc_reserve (vec_, 1 ); return VEC_ipa_ref_t_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; >static __inline__ void VEC_ipa_ref_ptr_must_be_pointer_type (void) { (void)((ipa_ref_ptr)1 == (void *)1); } typedef struct VEC_ipa_ref_ptr_base { struct vec_prefix prefix; ipa_ref_ptr vec[1]; } VEC_ipa_ref_ptr_base; typedef struct VEC_ipa_ref_ptr_none { VEC_ipa_ref_ptr_base base; } VEC_ipa_ref_ptr_none; static __inline__ unsigned VEC_ipa_ref_ptr_base_length (const VEC_ipa_ref_ptr_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ ipa_ref_ptr VEC_ipa_ref_ptr_base_last (const VEC_ipa_ref_ptr_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ ipa_ref_ptr VEC_ipa_ref_ptr_base_index (const VEC_ipa_ref_ptr_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_ipa_ref_ptr_base_iterate (const VEC_ipa_ref_ptr_base *vec_, unsigned ix_, ipa_ref_ptr *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (ipa_ref_ptr) 0; return 0; } } static __inline__ size_t VEC_ipa_ref_ptr_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_ipa_ref_ptr_base, vec) + alloc_ * sizeof(ipa_ref_ptr); } static __inline__ void VEC_ipa_ref_ptr_base_embedded_init (VEC_ipa_ref_ptr_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_ipa_ref_ptr_base_space (VEC_ipa_ref_ptr_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_ipa_ref_ptr_base_splice (VEC_ipa_ref_ptr_base *dst_, VEC_ipa_ref_ptr_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (ipa_ref_ptr)); dst_->prefix.num += len_; } } static __inline__ ipa_ref_ptr *VEC_ipa_ref_ptr_base_quick_push (VEC_ipa_ref_ptr_base *vec_, ipa_ref_ptr obj_ ) { ipa_ref_ptr *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ ipa_ref_ptr VEC_ipa_ref_ptr_base_pop (VEC_ipa_ref_ptr_base *vec_ ) { ipa_ref_ptr obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_ipa_ref_ptr_base_truncate (VEC_ipa_ref_ptr_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ ipa_ref_ptr VEC_ipa_ref_ptr_base_replace (VEC_ipa_ref_ptr_base *vec_, unsigned ix_, ipa_ref_ptr obj_ ) { ipa_ref_ptr old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ ipa_ref_ptr *VEC_ipa_ref_ptr_base_quick_insert (VEC_ipa_ref_ptr_base *vec_, unsigned ix_, ipa_ref_ptr obj_ ) { ipa_ref_ptr *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (ipa_ref_ptr)); *slot_ = obj_; return slot_; } static __inline__ ipa_ref_ptr VEC_ipa_ref_ptr_base_ordered_remove (VEC_ipa_ref_ptr_base *vec_, unsigned ix_ ) { ipa_ref_ptr *slot_; ipa_ref_ptr obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (ipa_ref_ptr)); return obj_; } static __inline__ ipa_ref_ptr VEC_ipa_ref_ptr_base_unordered_remove (VEC_ipa_ref_ptr_base *vec_, unsigned ix_ ) { ipa_ref_ptr *slot_; ipa_ref_ptr obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_ipa_ref_ptr_base_block_remove (VEC_ipa_ref_ptr_base *vec_, unsigned ix_, unsigned len_ ) { ipa_ref_ptr *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (ipa_ref_ptr)); } static __inline__ ipa_ref_ptr *VEC_ipa_ref_ptr_base_address (VEC_ipa_ref_ptr_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_ipa_ref_ptr_base_lower_bound (VEC_ipa_ref_ptr_base *vec_, const ipa_ref_ptr obj_, unsigned char (*lessthan_)(const ipa_ref_ptr, const ipa_ref_ptr) ) { unsigned int len_ = VEC_ipa_ref_ptr_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { ipa_ref_ptr middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_ipa_ref_ptr_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_ipa_ref_ptr_heap { VEC_ipa_ref_ptr_base base; } VEC_ipa_ref_ptr_heap; static __inline__ VEC_ipa_ref_ptr_heap *VEC_ipa_ref_ptr_heap_alloc (int alloc_ ) { return (VEC_ipa_ref_ptr_heap *) vec_heap_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_ipa_ref_ptr_heap_free (VEC_ipa_ref_ptr_heap **vec_) { if (*vec_) (free) (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_ipa_ref_ptr_heap *VEC_ipa_ref_ptr_heap_copy (VEC_ipa_ref_ptr_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_ipa_ref_ptr_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_ipa_ref_ptr_heap *)(vec_heap_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (ipa_ref_ptr) * len_); } return new_vec_; } static __inline__ int VEC_ipa_ref_ptr_heap_reserve (VEC_ipa_ref_ptr_heap **vec_, int alloc_ ) { int extend = !VEC_ipa_ref_ptr_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_ipa_ref_ptr_heap *) vec_heap_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_ipa_ref_ptr_heap_reserve_exact (VEC_ipa_ref_ptr_heap **vec_, int alloc_ ) { int extend = !VEC_ipa_ref_ptr_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_ipa_ref_ptr_heap *) vec_heap_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_ipa_ref_ptr_heap_safe_grow (VEC_ipa_ref_ptr_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_ipa_ref_ptr_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_ipa_ref_ptr_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_ipa_ref_ptr_heap_safe_grow_cleared (VEC_ipa_ref_ptr_heap **vec_, int size_ ) { int oldsize = VEC_ipa_ref_ptr_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_ipa_ref_ptr_heap_safe_grow (vec_, size_ ); memset (&(VEC_ipa_ref_ptr_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (ipa_ref_ptr) * (size_ - oldsize)); } static __inline__ void VEC_ipa_ref_ptr_heap_safe_splice (VEC_ipa_ref_ptr_heap **dst_, VEC_ipa_ref_ptr_base *src_ ) { if (src_) { VEC_ipa_ref_ptr_heap_reserve_exact (dst_, src_->prefix.num ); VEC_ipa_ref_ptr_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ ipa_ref_ptr *VEC_ipa_ref_ptr_heap_safe_push (VEC_ipa_ref_ptr_heap **vec_, ipa_ref_ptr obj_ ) { VEC_ipa_ref_ptr_heap_reserve (vec_, 1 ); return VEC_ipa_ref_ptr_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ ipa_ref_ptr *VEC_ipa_ref_ptr_heap_safe_insert (VEC_ipa_ref_ptr_heap **vec_, unsigned ix_, ipa_ref_ptr obj_ ) { VEC_ipa_ref_ptr_heap_reserve (vec_, 1 ); return VEC_ipa_ref_ptr_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; > > >struct ipa_ref_list >{ > > VEC_ipa_ref_t_gc *references; > > > VEC_ipa_ref_ptr_heap * refering; >}; > >struct ipa_ref * ipa_record_reference (struct cgraph_node *, > struct varpool_node *, > struct cgraph_node *, > struct varpool_node *, > enum ipa_ref_use, gimple); > >void ipa_remove_reference (struct ipa_ref *); >void ipa_remove_all_references (struct ipa_ref_list *); >void ipa_remove_all_refering (struct ipa_ref_list *); >void ipa_dump_references (FILE *, struct ipa_ref_list *); >void ipa_dump_refering (FILE *, struct ipa_ref_list *); >void ipa_clone_references (struct cgraph_node *, struct varpool_node *, struct ipa_ref_list *); >void ipa_clone_refering (struct cgraph_node *, struct varpool_node *, struct ipa_ref_list *); >unsigned char ipa_ref_cannot_lead_to_return (struct ipa_ref *); >unsigned char ipa_ref_has_aliases_p (struct ipa_ref_list *); ># 31 "../../gcc/cgraph.h" 2 > >enum availability >{ > > AVAIL_UNSET, > > AVAIL_NOT_AVAILABLE, > > > > > > AVAIL_OVERWRITABLE, > > > AVAIL_AVAILABLE, > > > > > AVAIL_LOCAL >}; > > > >struct lto_file_decl_data; > >extern const char * const cgraph_availability_names[]; >extern const char * const ld_plugin_symbol_resolution_names[]; > > > >struct cgraph_thunk_info { > > long long fixed_offset; > long long virtual_value; > tree alias; > unsigned char this_adjusting; > unsigned char virtual_offset_p; > > unsigned char thunk_p; >}; > > > > >struct cgraph_local_info { > > struct lto_file_decl_data * lto_file_data; > > > > unsigned local : 1; > > > unsigned externally_visible : 1; > > > unsigned finalized : 1; > > > unsigned versionable : 1; > > > > unsigned can_change_signature : 1; > > > > unsigned redefined_extern_inline : 1; > > > unsigned tm_may_enter_irr : 1; >}; > > > > >struct cgraph_global_info { > > > struct cgraph_node *inlined_to; >}; > > > > >struct cgraph_rtl_info { > unsigned int preferred_incoming_stack_boundary; >}; > > > >struct ipa_replace_map >{ > > tree old_tree; > > tree new_tree; > > int parm_num; > > unsigned char replace_p; > > unsigned char ref_p; >}; >typedef struct ipa_replace_map *ipa_replace_map_p; >static __inline__ void VEC_ipa_replace_map_p_must_be_pointer_type (void) { (void)((ipa_replace_map_p)1 == (void *)1); } typedef struct VEC_ipa_replace_map_p_base { struct vec_prefix prefix; ipa_replace_map_p vec[1]; } VEC_ipa_replace_map_p_base; typedef struct VEC_ipa_replace_map_p_none { VEC_ipa_replace_map_p_base base; } VEC_ipa_replace_map_p_none; static __inline__ unsigned VEC_ipa_replace_map_p_base_length (const VEC_ipa_replace_map_p_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ ipa_replace_map_p VEC_ipa_replace_map_p_base_last (const VEC_ipa_replace_map_p_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ ipa_replace_map_p VEC_ipa_replace_map_p_base_index (const VEC_ipa_replace_map_p_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_ipa_replace_map_p_base_iterate (const VEC_ipa_replace_map_p_base *vec_, unsigned ix_, ipa_replace_map_p *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (ipa_replace_map_p) 0; return 0; } } static __inline__ size_t VEC_ipa_replace_map_p_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_ipa_replace_map_p_base, vec) + alloc_ * sizeof(ipa_replace_map_p); } static __inline__ void VEC_ipa_replace_map_p_base_embedded_init (VEC_ipa_replace_map_p_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_ipa_replace_map_p_base_space (VEC_ipa_replace_map_p_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_ipa_replace_map_p_base_splice (VEC_ipa_replace_map_p_base *dst_, VEC_ipa_replace_map_p_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (ipa_replace_map_p)); dst_->prefix.num += len_; } } static __inline__ ipa_replace_map_p *VEC_ipa_replace_map_p_base_quick_push (VEC_ipa_replace_map_p_base *vec_, ipa_replace_map_p obj_ ) { ipa_replace_map_p *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ ipa_replace_map_p VEC_ipa_replace_map_p_base_pop (VEC_ipa_replace_map_p_base *vec_ ) { ipa_replace_map_p obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_ipa_replace_map_p_base_truncate (VEC_ipa_replace_map_p_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ ipa_replace_map_p VEC_ipa_replace_map_p_base_replace (VEC_ipa_replace_map_p_base *vec_, unsigned ix_, ipa_replace_map_p obj_ ) { ipa_replace_map_p old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ ipa_replace_map_p *VEC_ipa_replace_map_p_base_quick_insert (VEC_ipa_replace_map_p_base *vec_, unsigned ix_, ipa_replace_map_p obj_ ) { ipa_replace_map_p *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (ipa_replace_map_p)); *slot_ = obj_; return slot_; } static __inline__ ipa_replace_map_p VEC_ipa_replace_map_p_base_ordered_remove (VEC_ipa_replace_map_p_base *vec_, unsigned ix_ ) { ipa_replace_map_p *slot_; ipa_replace_map_p obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (ipa_replace_map_p)); return obj_; } static __inline__ ipa_replace_map_p VEC_ipa_replace_map_p_base_unordered_remove (VEC_ipa_replace_map_p_base *vec_, unsigned ix_ ) { ipa_replace_map_p *slot_; ipa_replace_map_p obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_ipa_replace_map_p_base_block_remove (VEC_ipa_replace_map_p_base *vec_, unsigned ix_, unsigned len_ ) { ipa_replace_map_p *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (ipa_replace_map_p)); } static __inline__ ipa_replace_map_p *VEC_ipa_replace_map_p_base_address (VEC_ipa_replace_map_p_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_ipa_replace_map_p_base_lower_bound (VEC_ipa_replace_map_p_base *vec_, const ipa_replace_map_p obj_, unsigned char (*lessthan_)(const ipa_replace_map_p, const ipa_replace_map_p) ) { unsigned int len_ = VEC_ipa_replace_map_p_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { ipa_replace_map_p middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_ipa_replace_map_p_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_ipa_replace_map_p_gc { VEC_ipa_replace_map_p_base base; } VEC_ipa_replace_map_p_gc; static __inline__ VEC_ipa_replace_map_p_gc *VEC_ipa_replace_map_p_gc_alloc (int alloc_ ) { return (VEC_ipa_replace_map_p_gc *) vec_gc_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_ipa_replace_map_p_gc_free (VEC_ipa_replace_map_p_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_ipa_replace_map_p_gc *VEC_ipa_replace_map_p_gc_copy (VEC_ipa_replace_map_p_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_ipa_replace_map_p_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_ipa_replace_map_p_gc *)(vec_gc_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (ipa_replace_map_p) * len_); } return new_vec_; } static __inline__ int VEC_ipa_replace_map_p_gc_reserve (VEC_ipa_replace_map_p_gc **vec_, int alloc_ ) { int extend = !VEC_ipa_replace_map_p_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_ipa_replace_map_p_gc *) vec_gc_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_ipa_replace_map_p_gc_reserve_exact (VEC_ipa_replace_map_p_gc **vec_, int alloc_ ) { int extend = !VEC_ipa_replace_map_p_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_ipa_replace_map_p_gc *) vec_gc_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_ipa_replace_map_p_gc_safe_grow (VEC_ipa_replace_map_p_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_ipa_replace_map_p_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_ipa_replace_map_p_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_ipa_replace_map_p_gc_safe_grow_cleared (VEC_ipa_replace_map_p_gc **vec_, int size_ ) { int oldsize = VEC_ipa_replace_map_p_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_ipa_replace_map_p_gc_safe_grow (vec_, size_ ); memset (&(VEC_ipa_replace_map_p_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (ipa_replace_map_p) * (size_ - oldsize)); } static __inline__ void VEC_ipa_replace_map_p_gc_safe_splice (VEC_ipa_replace_map_p_gc **dst_, VEC_ipa_replace_map_p_base *src_ ) { if (src_) { VEC_ipa_replace_map_p_gc_reserve_exact (dst_, src_->prefix.num ); VEC_ipa_replace_map_p_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ ipa_replace_map_p *VEC_ipa_replace_map_p_gc_safe_push (VEC_ipa_replace_map_p_gc **vec_, ipa_replace_map_p obj_ ) { VEC_ipa_replace_map_p_gc_reserve (vec_, 1 ); return VEC_ipa_replace_map_p_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ ipa_replace_map_p *VEC_ipa_replace_map_p_gc_safe_insert (VEC_ipa_replace_map_p_gc **vec_, unsigned ix_, ipa_replace_map_p obj_ ) { VEC_ipa_replace_map_p_gc_reserve (vec_, 1 ); return VEC_ipa_replace_map_p_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; > >struct cgraph_clone_info >{ > VEC_ipa_replace_map_p_gc* tree_map; > bitmap args_to_skip; > bitmap combined_args_to_skip; >}; > > > > > >struct cgraph_node { > tree decl; > struct cgraph_edge *callees; > struct cgraph_edge *callers; > struct cgraph_node *next; > struct cgraph_node *previous; > > > struct cgraph_edge *indirect_calls; > > struct cgraph_node *origin; > > struct cgraph_node *nested; > > struct cgraph_node *next_nested; > > struct cgraph_node *next_needed; > > struct cgraph_node *next_sibling_clone; > struct cgraph_node *prev_sibling_clone; > struct cgraph_node *clones; > struct cgraph_node *clone_of; > > struct cgraph_node *same_comdat_group; > > > htab_t call_site_hash; > > tree former_clone_of; > > void * aux; > > > > > VEC_ipa_opt_pass_heap * ipa_transforms_to_apply; > > struct ipa_ref_list ref_list; > struct cgraph_local_info local; > struct cgraph_global_info global; > struct cgraph_rtl_info rtl; > struct cgraph_clone_info clone; > struct cgraph_thunk_info thunk; > > > gcov_type count; > > > int count_materialization_scale; > > int uid; > > int order; > > enum ld_plugin_symbol_resolution resolution; > > > > > > > unsigned needed : 1; > > > unsigned address_taken : 1; > > > unsigned abstract_and_needed : 1; > > > > > > > unsigned reachable : 1; > > unsigned reachable_from_other_partition : 1; > > unsigned lowered : 1; > > > unsigned analyzed : 1; > > > > unsigned in_other_partition : 1; > > unsigned process : 1; > > unsigned alias : 1; > > unsigned same_body_alias : 1; > > > __extension__ enum node_frequency frequency : 2; > > unsigned only_called_at_startup : 1; > > unsigned only_called_at_exit : 1; > > > > > unsigned tm_clone : 1; >}; > >typedef struct cgraph_node *cgraph_node_ptr; > >static __inline__ void VEC_cgraph_node_ptr_must_be_pointer_type (void) { (void)((cgraph_node_ptr)1 == (void *)1); } typedef struct VEC_cgraph_node_ptr_base { struct vec_prefix prefix; cgraph_node_ptr vec[1]; } VEC_cgraph_node_ptr_base; typedef struct VEC_cgraph_node_ptr_none { VEC_cgraph_node_ptr_base base; } VEC_cgraph_node_ptr_none; static __inline__ unsigned VEC_cgraph_node_ptr_base_length (const VEC_cgraph_node_ptr_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ cgraph_node_ptr VEC_cgraph_node_ptr_base_last (const VEC_cgraph_node_ptr_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ cgraph_node_ptr VEC_cgraph_node_ptr_base_index (const VEC_cgraph_node_ptr_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_cgraph_node_ptr_base_iterate (const VEC_cgraph_node_ptr_base *vec_, unsigned ix_, cgraph_node_ptr *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (cgraph_node_ptr) 0; return 0; } } static __inline__ size_t VEC_cgraph_node_ptr_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_cgraph_node_ptr_base, vec) + alloc_ * sizeof(cgraph_node_ptr); } static __inline__ void VEC_cgraph_node_ptr_base_embedded_init (VEC_cgraph_node_ptr_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_cgraph_node_ptr_base_space (VEC_cgraph_node_ptr_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_cgraph_node_ptr_base_splice (VEC_cgraph_node_ptr_base *dst_, VEC_cgraph_node_ptr_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (cgraph_node_ptr)); dst_->prefix.num += len_; } } static __inline__ cgraph_node_ptr *VEC_cgraph_node_ptr_base_quick_push (VEC_cgraph_node_ptr_base *vec_, cgraph_node_ptr obj_ ) { cgraph_node_ptr *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ cgraph_node_ptr VEC_cgraph_node_ptr_base_pop (VEC_cgraph_node_ptr_base *vec_ ) { cgraph_node_ptr obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_cgraph_node_ptr_base_truncate (VEC_cgraph_node_ptr_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ cgraph_node_ptr VEC_cgraph_node_ptr_base_replace (VEC_cgraph_node_ptr_base *vec_, unsigned ix_, cgraph_node_ptr obj_ ) { cgraph_node_ptr old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ cgraph_node_ptr *VEC_cgraph_node_ptr_base_quick_insert (VEC_cgraph_node_ptr_base *vec_, unsigned ix_, cgraph_node_ptr obj_ ) { cgraph_node_ptr *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (cgraph_node_ptr)); *slot_ = obj_; return slot_; } static __inline__ cgraph_node_ptr VEC_cgraph_node_ptr_base_ordered_remove (VEC_cgraph_node_ptr_base *vec_, unsigned ix_ ) { cgraph_node_ptr *slot_; cgraph_node_ptr obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (cgraph_node_ptr)); return obj_; } static __inline__ cgraph_node_ptr VEC_cgraph_node_ptr_base_unordered_remove (VEC_cgraph_node_ptr_base *vec_, unsigned ix_ ) { cgraph_node_ptr *slot_; cgraph_node_ptr obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_cgraph_node_ptr_base_block_remove (VEC_cgraph_node_ptr_base *vec_, unsigned ix_, unsigned len_ ) { cgraph_node_ptr *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (cgraph_node_ptr)); } static __inline__ cgraph_node_ptr *VEC_cgraph_node_ptr_base_address (VEC_cgraph_node_ptr_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_cgraph_node_ptr_base_lower_bound (VEC_cgraph_node_ptr_base *vec_, const cgraph_node_ptr obj_, unsigned char (*lessthan_)(const cgraph_node_ptr, const cgraph_node_ptr) ) { unsigned int len_ = VEC_cgraph_node_ptr_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { cgraph_node_ptr middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_cgraph_node_ptr_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_cgraph_node_ptr_heap { VEC_cgraph_node_ptr_base base; } VEC_cgraph_node_ptr_heap; static __inline__ VEC_cgraph_node_ptr_heap *VEC_cgraph_node_ptr_heap_alloc (int alloc_ ) { return (VEC_cgraph_node_ptr_heap *) vec_heap_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_cgraph_node_ptr_heap_free (VEC_cgraph_node_ptr_heap **vec_) { if (*vec_) (free) (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_cgraph_node_ptr_heap *VEC_cgraph_node_ptr_heap_copy (VEC_cgraph_node_ptr_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_cgraph_node_ptr_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_cgraph_node_ptr_heap *)(vec_heap_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (cgraph_node_ptr) * len_); } return new_vec_; } static __inline__ int VEC_cgraph_node_ptr_heap_reserve (VEC_cgraph_node_ptr_heap **vec_, int alloc_ ) { int extend = !VEC_cgraph_node_ptr_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_cgraph_node_ptr_heap *) vec_heap_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_cgraph_node_ptr_heap_reserve_exact (VEC_cgraph_node_ptr_heap **vec_, int alloc_ ) { int extend = !VEC_cgraph_node_ptr_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_cgraph_node_ptr_heap *) vec_heap_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_cgraph_node_ptr_heap_safe_grow (VEC_cgraph_node_ptr_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_cgraph_node_ptr_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_cgraph_node_ptr_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_cgraph_node_ptr_heap_safe_grow_cleared (VEC_cgraph_node_ptr_heap **vec_, int size_ ) { int oldsize = VEC_cgraph_node_ptr_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_cgraph_node_ptr_heap_safe_grow (vec_, size_ ); memset (&(VEC_cgraph_node_ptr_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (cgraph_node_ptr) * (size_ - oldsize)); } static __inline__ void VEC_cgraph_node_ptr_heap_safe_splice (VEC_cgraph_node_ptr_heap **dst_, VEC_cgraph_node_ptr_base *src_ ) { if (src_) { VEC_cgraph_node_ptr_heap_reserve_exact (dst_, src_->prefix.num ); VEC_cgraph_node_ptr_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ cgraph_node_ptr *VEC_cgraph_node_ptr_heap_safe_push (VEC_cgraph_node_ptr_heap **vec_, cgraph_node_ptr obj_ ) { VEC_cgraph_node_ptr_heap_reserve (vec_, 1 ); return VEC_cgraph_node_ptr_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ cgraph_node_ptr *VEC_cgraph_node_ptr_heap_safe_insert (VEC_cgraph_node_ptr_heap **vec_, unsigned ix_, cgraph_node_ptr obj_ ) { VEC_cgraph_node_ptr_heap_reserve (vec_, 1 ); return VEC_cgraph_node_ptr_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; >typedef struct VEC_cgraph_node_ptr_gc { VEC_cgraph_node_ptr_base base; } VEC_cgraph_node_ptr_gc; static __inline__ VEC_cgraph_node_ptr_gc *VEC_cgraph_node_ptr_gc_alloc (int alloc_ ) { return (VEC_cgraph_node_ptr_gc *) vec_gc_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_cgraph_node_ptr_gc_free (VEC_cgraph_node_ptr_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_cgraph_node_ptr_gc *VEC_cgraph_node_ptr_gc_copy (VEC_cgraph_node_ptr_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_cgraph_node_ptr_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_cgraph_node_ptr_gc *)(vec_gc_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (cgraph_node_ptr) * len_); } return new_vec_; } static __inline__ int VEC_cgraph_node_ptr_gc_reserve (VEC_cgraph_node_ptr_gc **vec_, int alloc_ ) { int extend = !VEC_cgraph_node_ptr_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_cgraph_node_ptr_gc *) vec_gc_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_cgraph_node_ptr_gc_reserve_exact (VEC_cgraph_node_ptr_gc **vec_, int alloc_ ) { int extend = !VEC_cgraph_node_ptr_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_cgraph_node_ptr_gc *) vec_gc_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_cgraph_node_ptr_gc_safe_grow (VEC_cgraph_node_ptr_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_cgraph_node_ptr_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_cgraph_node_ptr_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_cgraph_node_ptr_gc_safe_grow_cleared (VEC_cgraph_node_ptr_gc **vec_, int size_ ) { int oldsize = VEC_cgraph_node_ptr_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_cgraph_node_ptr_gc_safe_grow (vec_, size_ ); memset (&(VEC_cgraph_node_ptr_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (cgraph_node_ptr) * (size_ - oldsize)); } static __inline__ void VEC_cgraph_node_ptr_gc_safe_splice (VEC_cgraph_node_ptr_gc **dst_, VEC_cgraph_node_ptr_base *src_ ) { if (src_) { VEC_cgraph_node_ptr_gc_reserve_exact (dst_, src_->prefix.num ); VEC_cgraph_node_ptr_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ cgraph_node_ptr *VEC_cgraph_node_ptr_gc_safe_push (VEC_cgraph_node_ptr_gc **vec_, cgraph_node_ptr obj_ ) { VEC_cgraph_node_ptr_gc_reserve (vec_, 1 ); return VEC_cgraph_node_ptr_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ cgraph_node_ptr *VEC_cgraph_node_ptr_gc_safe_insert (VEC_cgraph_node_ptr_gc **vec_, unsigned ix_, cgraph_node_ptr obj_ ) { VEC_cgraph_node_ptr_gc_reserve (vec_, 1 ); return VEC_cgraph_node_ptr_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; > > > >struct cgraph_node_set_def >{ > struct pointer_map_t *map; > VEC_cgraph_node_ptr_heap *nodes; >}; > >typedef struct varpool_node *varpool_node_ptr; > >static __inline__ void VEC_varpool_node_ptr_must_be_pointer_type (void) { (void)((varpool_node_ptr)1 == (void *)1); } typedef struct VEC_varpool_node_ptr_base { struct vec_prefix prefix; varpool_node_ptr vec[1]; } VEC_varpool_node_ptr_base; typedef struct VEC_varpool_node_ptr_none { VEC_varpool_node_ptr_base base; } VEC_varpool_node_ptr_none; static __inline__ unsigned VEC_varpool_node_ptr_base_length (const VEC_varpool_node_ptr_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ varpool_node_ptr VEC_varpool_node_ptr_base_last (const VEC_varpool_node_ptr_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ varpool_node_ptr VEC_varpool_node_ptr_base_index (const VEC_varpool_node_ptr_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_varpool_node_ptr_base_iterate (const VEC_varpool_node_ptr_base *vec_, unsigned ix_, varpool_node_ptr *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (varpool_node_ptr) 0; return 0; } } static __inline__ size_t VEC_varpool_node_ptr_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_varpool_node_ptr_base, vec) + alloc_ * sizeof(varpool_node_ptr); } static __inline__ void VEC_varpool_node_ptr_base_embedded_init (VEC_varpool_node_ptr_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_varpool_node_ptr_base_space (VEC_varpool_node_ptr_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_varpool_node_ptr_base_splice (VEC_varpool_node_ptr_base *dst_, VEC_varpool_node_ptr_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (varpool_node_ptr)); dst_->prefix.num += len_; } } static __inline__ varpool_node_ptr *VEC_varpool_node_ptr_base_quick_push (VEC_varpool_node_ptr_base *vec_, varpool_node_ptr obj_ ) { varpool_node_ptr *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ varpool_node_ptr VEC_varpool_node_ptr_base_pop (VEC_varpool_node_ptr_base *vec_ ) { varpool_node_ptr obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_varpool_node_ptr_base_truncate (VEC_varpool_node_ptr_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ varpool_node_ptr VEC_varpool_node_ptr_base_replace (VEC_varpool_node_ptr_base *vec_, unsigned ix_, varpool_node_ptr obj_ ) { varpool_node_ptr old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ varpool_node_ptr *VEC_varpool_node_ptr_base_quick_insert (VEC_varpool_node_ptr_base *vec_, unsigned ix_, varpool_node_ptr obj_ ) { varpool_node_ptr *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (varpool_node_ptr)); *slot_ = obj_; return slot_; } static __inline__ varpool_node_ptr VEC_varpool_node_ptr_base_ordered_remove (VEC_varpool_node_ptr_base *vec_, unsigned ix_ ) { varpool_node_ptr *slot_; varpool_node_ptr obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (varpool_node_ptr)); return obj_; } static __inline__ varpool_node_ptr VEC_varpool_node_ptr_base_unordered_remove (VEC_varpool_node_ptr_base *vec_, unsigned ix_ ) { varpool_node_ptr *slot_; varpool_node_ptr obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_varpool_node_ptr_base_block_remove (VEC_varpool_node_ptr_base *vec_, unsigned ix_, unsigned len_ ) { varpool_node_ptr *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (varpool_node_ptr)); } static __inline__ varpool_node_ptr *VEC_varpool_node_ptr_base_address (VEC_varpool_node_ptr_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_varpool_node_ptr_base_lower_bound (VEC_varpool_node_ptr_base *vec_, const varpool_node_ptr obj_, unsigned char (*lessthan_)(const varpool_node_ptr, const varpool_node_ptr) ) { unsigned int len_ = VEC_varpool_node_ptr_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { varpool_node_ptr middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_varpool_node_ptr_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_varpool_node_ptr_heap { VEC_varpool_node_ptr_base base; } VEC_varpool_node_ptr_heap; static __inline__ VEC_varpool_node_ptr_heap *VEC_varpool_node_ptr_heap_alloc (int alloc_ ) { return (VEC_varpool_node_ptr_heap *) vec_heap_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_varpool_node_ptr_heap_free (VEC_varpool_node_ptr_heap **vec_) { if (*vec_) (free) (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_varpool_node_ptr_heap *VEC_varpool_node_ptr_heap_copy (VEC_varpool_node_ptr_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_varpool_node_ptr_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_varpool_node_ptr_heap *)(vec_heap_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (varpool_node_ptr) * len_); } return new_vec_; } static __inline__ int VEC_varpool_node_ptr_heap_reserve (VEC_varpool_node_ptr_heap **vec_, int alloc_ ) { int extend = !VEC_varpool_node_ptr_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_varpool_node_ptr_heap *) vec_heap_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_varpool_node_ptr_heap_reserve_exact (VEC_varpool_node_ptr_heap **vec_, int alloc_ ) { int extend = !VEC_varpool_node_ptr_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_varpool_node_ptr_heap *) vec_heap_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_varpool_node_ptr_heap_safe_grow (VEC_varpool_node_ptr_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_varpool_node_ptr_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_varpool_node_ptr_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_varpool_node_ptr_heap_safe_grow_cleared (VEC_varpool_node_ptr_heap **vec_, int size_ ) { int oldsize = VEC_varpool_node_ptr_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_varpool_node_ptr_heap_safe_grow (vec_, size_ ); memset (&(VEC_varpool_node_ptr_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (varpool_node_ptr) * (size_ - oldsize)); } static __inline__ void VEC_varpool_node_ptr_heap_safe_splice (VEC_varpool_node_ptr_heap **dst_, VEC_varpool_node_ptr_base *src_ ) { if (src_) { VEC_varpool_node_ptr_heap_reserve_exact (dst_, src_->prefix.num ); VEC_varpool_node_ptr_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ varpool_node_ptr *VEC_varpool_node_ptr_heap_safe_push (VEC_varpool_node_ptr_heap **vec_, varpool_node_ptr obj_ ) { VEC_varpool_node_ptr_heap_reserve (vec_, 1 ); return VEC_varpool_node_ptr_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ varpool_node_ptr *VEC_varpool_node_ptr_heap_safe_insert (VEC_varpool_node_ptr_heap **vec_, unsigned ix_, varpool_node_ptr obj_ ) { VEC_varpool_node_ptr_heap_reserve (vec_, 1 ); return VEC_varpool_node_ptr_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; >typedef struct VEC_varpool_node_ptr_gc { VEC_varpool_node_ptr_base base; } VEC_varpool_node_ptr_gc; static __inline__ VEC_varpool_node_ptr_gc *VEC_varpool_node_ptr_gc_alloc (int alloc_ ) { return (VEC_varpool_node_ptr_gc *) vec_gc_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_varpool_node_ptr_gc_free (VEC_varpool_node_ptr_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_varpool_node_ptr_gc *VEC_varpool_node_ptr_gc_copy (VEC_varpool_node_ptr_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_varpool_node_ptr_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_varpool_node_ptr_gc *)(vec_gc_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (varpool_node_ptr) * len_); } return new_vec_; } static __inline__ int VEC_varpool_node_ptr_gc_reserve (VEC_varpool_node_ptr_gc **vec_, int alloc_ ) { int extend = !VEC_varpool_node_ptr_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_varpool_node_ptr_gc *) vec_gc_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_varpool_node_ptr_gc_reserve_exact (VEC_varpool_node_ptr_gc **vec_, int alloc_ ) { int extend = !VEC_varpool_node_ptr_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_varpool_node_ptr_gc *) vec_gc_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_varpool_node_ptr_gc_safe_grow (VEC_varpool_node_ptr_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_varpool_node_ptr_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_varpool_node_ptr_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_varpool_node_ptr_gc_safe_grow_cleared (VEC_varpool_node_ptr_gc **vec_, int size_ ) { int oldsize = VEC_varpool_node_ptr_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_varpool_node_ptr_gc_safe_grow (vec_, size_ ); memset (&(VEC_varpool_node_ptr_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (varpool_node_ptr) * (size_ - oldsize)); } static __inline__ void VEC_varpool_node_ptr_gc_safe_splice (VEC_varpool_node_ptr_gc **dst_, VEC_varpool_node_ptr_base *src_ ) { if (src_) { VEC_varpool_node_ptr_gc_reserve_exact (dst_, src_->prefix.num ); VEC_varpool_node_ptr_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ varpool_node_ptr *VEC_varpool_node_ptr_gc_safe_push (VEC_varpool_node_ptr_gc **vec_, varpool_node_ptr obj_ ) { VEC_varpool_node_ptr_gc_reserve (vec_, 1 ); return VEC_varpool_node_ptr_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ varpool_node_ptr *VEC_varpool_node_ptr_gc_safe_insert (VEC_varpool_node_ptr_gc **vec_, unsigned ix_, varpool_node_ptr obj_ ) { VEC_varpool_node_ptr_gc_reserve (vec_, 1 ); return VEC_varpool_node_ptr_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; > > > >struct varpool_node_set_def >{ > struct pointer_map_t * map; > VEC_varpool_node_ptr_heap *nodes; >}; > >typedef struct cgraph_node_set_def *cgraph_node_set; > >static __inline__ void VEC_cgraph_node_set_must_be_pointer_type (void) { (void)((cgraph_node_set)1 == (void *)1); } typedef struct VEC_cgraph_node_set_base { struct vec_prefix prefix; cgraph_node_set vec[1]; } VEC_cgraph_node_set_base; typedef struct VEC_cgraph_node_set_none { VEC_cgraph_node_set_base base; } VEC_cgraph_node_set_none; static __inline__ unsigned VEC_cgraph_node_set_base_length (const VEC_cgraph_node_set_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ cgraph_node_set VEC_cgraph_node_set_base_last (const VEC_cgraph_node_set_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ cgraph_node_set VEC_cgraph_node_set_base_index (const VEC_cgraph_node_set_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_cgraph_node_set_base_iterate (const VEC_cgraph_node_set_base *vec_, unsigned ix_, cgraph_node_set *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (cgraph_node_set) 0; return 0; } } static __inline__ size_t VEC_cgraph_node_set_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_cgraph_node_set_base, vec) + alloc_ * sizeof(cgraph_node_set); } static __inline__ void VEC_cgraph_node_set_base_embedded_init (VEC_cgraph_node_set_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_cgraph_node_set_base_space (VEC_cgraph_node_set_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_cgraph_node_set_base_splice (VEC_cgraph_node_set_base *dst_, VEC_cgraph_node_set_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (cgraph_node_set)); dst_->prefix.num += len_; } } static __inline__ cgraph_node_set *VEC_cgraph_node_set_base_quick_push (VEC_cgraph_node_set_base *vec_, cgraph_node_set obj_ ) { cgraph_node_set *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ cgraph_node_set VEC_cgraph_node_set_base_pop (VEC_cgraph_node_set_base *vec_ ) { cgraph_node_set obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_cgraph_node_set_base_truncate (VEC_cgraph_node_set_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ cgraph_node_set VEC_cgraph_node_set_base_replace (VEC_cgraph_node_set_base *vec_, unsigned ix_, cgraph_node_set obj_ ) { cgraph_node_set old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ cgraph_node_set *VEC_cgraph_node_set_base_quick_insert (VEC_cgraph_node_set_base *vec_, unsigned ix_, cgraph_node_set obj_ ) { cgraph_node_set *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (cgraph_node_set)); *slot_ = obj_; return slot_; } static __inline__ cgraph_node_set VEC_cgraph_node_set_base_ordered_remove (VEC_cgraph_node_set_base *vec_, unsigned ix_ ) { cgraph_node_set *slot_; cgraph_node_set obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (cgraph_node_set)); return obj_; } static __inline__ cgraph_node_set VEC_cgraph_node_set_base_unordered_remove (VEC_cgraph_node_set_base *vec_, unsigned ix_ ) { cgraph_node_set *slot_; cgraph_node_set obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_cgraph_node_set_base_block_remove (VEC_cgraph_node_set_base *vec_, unsigned ix_, unsigned len_ ) { cgraph_node_set *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (cgraph_node_set)); } static __inline__ cgraph_node_set *VEC_cgraph_node_set_base_address (VEC_cgraph_node_set_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_cgraph_node_set_base_lower_bound (VEC_cgraph_node_set_base *vec_, const cgraph_node_set obj_, unsigned char (*lessthan_)(const cgraph_node_set, const cgraph_node_set) ) { unsigned int len_ = VEC_cgraph_node_set_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { cgraph_node_set middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_cgraph_node_set_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_cgraph_node_set_gc { VEC_cgraph_node_set_base base; } VEC_cgraph_node_set_gc; static __inline__ VEC_cgraph_node_set_gc *VEC_cgraph_node_set_gc_alloc (int alloc_ ) { return (VEC_cgraph_node_set_gc *) vec_gc_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_cgraph_node_set_gc_free (VEC_cgraph_node_set_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_cgraph_node_set_gc *VEC_cgraph_node_set_gc_copy (VEC_cgraph_node_set_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_cgraph_node_set_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_cgraph_node_set_gc *)(vec_gc_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (cgraph_node_set) * len_); } return new_vec_; } static __inline__ int VEC_cgraph_node_set_gc_reserve (VEC_cgraph_node_set_gc **vec_, int alloc_ ) { int extend = !VEC_cgraph_node_set_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_cgraph_node_set_gc *) vec_gc_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_cgraph_node_set_gc_reserve_exact (VEC_cgraph_node_set_gc **vec_, int alloc_ ) { int extend = !VEC_cgraph_node_set_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_cgraph_node_set_gc *) vec_gc_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_cgraph_node_set_gc_safe_grow (VEC_cgraph_node_set_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_cgraph_node_set_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_cgraph_node_set_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_cgraph_node_set_gc_safe_grow_cleared (VEC_cgraph_node_set_gc **vec_, int size_ ) { int oldsize = VEC_cgraph_node_set_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_cgraph_node_set_gc_safe_grow (vec_, size_ ); memset (&(VEC_cgraph_node_set_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (cgraph_node_set) * (size_ - oldsize)); } static __inline__ void VEC_cgraph_node_set_gc_safe_splice (VEC_cgraph_node_set_gc **dst_, VEC_cgraph_node_set_base *src_ ) { if (src_) { VEC_cgraph_node_set_gc_reserve_exact (dst_, src_->prefix.num ); VEC_cgraph_node_set_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ cgraph_node_set *VEC_cgraph_node_set_gc_safe_push (VEC_cgraph_node_set_gc **vec_, cgraph_node_set obj_ ) { VEC_cgraph_node_set_gc_reserve (vec_, 1 ); return VEC_cgraph_node_set_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ cgraph_node_set *VEC_cgraph_node_set_gc_safe_insert (VEC_cgraph_node_set_gc **vec_, unsigned ix_, cgraph_node_set obj_ ) { VEC_cgraph_node_set_gc_reserve (vec_, 1 ); return VEC_cgraph_node_set_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; >typedef struct VEC_cgraph_node_set_heap { VEC_cgraph_node_set_base base; } VEC_cgraph_node_set_heap; static __inline__ VEC_cgraph_node_set_heap *VEC_cgraph_node_set_heap_alloc (int alloc_ ) { return (VEC_cgraph_node_set_heap *) vec_heap_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_cgraph_node_set_heap_free (VEC_cgraph_node_set_heap **vec_) { if (*vec_) (free) (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_cgraph_node_set_heap *VEC_cgraph_node_set_heap_copy (VEC_cgraph_node_set_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_cgraph_node_set_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_cgraph_node_set_heap *)(vec_heap_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (cgraph_node_set) * len_); } return new_vec_; } static __inline__ int VEC_cgraph_node_set_heap_reserve (VEC_cgraph_node_set_heap **vec_, int alloc_ ) { int extend = !VEC_cgraph_node_set_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_cgraph_node_set_heap *) vec_heap_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_cgraph_node_set_heap_reserve_exact (VEC_cgraph_node_set_heap **vec_, int alloc_ ) { int extend = !VEC_cgraph_node_set_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_cgraph_node_set_heap *) vec_heap_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_cgraph_node_set_heap_safe_grow (VEC_cgraph_node_set_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_cgraph_node_set_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_cgraph_node_set_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_cgraph_node_set_heap_safe_grow_cleared (VEC_cgraph_node_set_heap **vec_, int size_ ) { int oldsize = VEC_cgraph_node_set_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_cgraph_node_set_heap_safe_grow (vec_, size_ ); memset (&(VEC_cgraph_node_set_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (cgraph_node_set) * (size_ - oldsize)); } static __inline__ void VEC_cgraph_node_set_heap_safe_splice (VEC_cgraph_node_set_heap **dst_, VEC_cgraph_node_set_base *src_ ) { if (src_) { VEC_cgraph_node_set_heap_reserve_exact (dst_, src_->prefix.num ); VEC_cgraph_node_set_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ cgraph_node_set *VEC_cgraph_node_set_heap_safe_push (VEC_cgraph_node_set_heap **vec_, cgraph_node_set obj_ ) { VEC_cgraph_node_set_heap_reserve (vec_, 1 ); return VEC_cgraph_node_set_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ cgraph_node_set *VEC_cgraph_node_set_heap_safe_insert (VEC_cgraph_node_set_heap **vec_, unsigned ix_, cgraph_node_set obj_ ) { VEC_cgraph_node_set_heap_reserve (vec_, 1 ); return VEC_cgraph_node_set_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; > >typedef struct varpool_node_set_def *varpool_node_set; > >static __inline__ void VEC_varpool_node_set_must_be_pointer_type (void) { (void)((varpool_node_set)1 == (void *)1); } typedef struct VEC_varpool_node_set_base { struct vec_prefix prefix; varpool_node_set vec[1]; } VEC_varpool_node_set_base; typedef struct VEC_varpool_node_set_none { VEC_varpool_node_set_base base; } VEC_varpool_node_set_none; static __inline__ unsigned VEC_varpool_node_set_base_length (const VEC_varpool_node_set_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ varpool_node_set VEC_varpool_node_set_base_last (const VEC_varpool_node_set_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ varpool_node_set VEC_varpool_node_set_base_index (const VEC_varpool_node_set_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_varpool_node_set_base_iterate (const VEC_varpool_node_set_base *vec_, unsigned ix_, varpool_node_set *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (varpool_node_set) 0; return 0; } } static __inline__ size_t VEC_varpool_node_set_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_varpool_node_set_base, vec) + alloc_ * sizeof(varpool_node_set); } static __inline__ void VEC_varpool_node_set_base_embedded_init (VEC_varpool_node_set_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_varpool_node_set_base_space (VEC_varpool_node_set_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_varpool_node_set_base_splice (VEC_varpool_node_set_base *dst_, VEC_varpool_node_set_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (varpool_node_set)); dst_->prefix.num += len_; } } static __inline__ varpool_node_set *VEC_varpool_node_set_base_quick_push (VEC_varpool_node_set_base *vec_, varpool_node_set obj_ ) { varpool_node_set *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ varpool_node_set VEC_varpool_node_set_base_pop (VEC_varpool_node_set_base *vec_ ) { varpool_node_set obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_varpool_node_set_base_truncate (VEC_varpool_node_set_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ varpool_node_set VEC_varpool_node_set_base_replace (VEC_varpool_node_set_base *vec_, unsigned ix_, varpool_node_set obj_ ) { varpool_node_set old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ varpool_node_set *VEC_varpool_node_set_base_quick_insert (VEC_varpool_node_set_base *vec_, unsigned ix_, varpool_node_set obj_ ) { varpool_node_set *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (varpool_node_set)); *slot_ = obj_; return slot_; } static __inline__ varpool_node_set VEC_varpool_node_set_base_ordered_remove (VEC_varpool_node_set_base *vec_, unsigned ix_ ) { varpool_node_set *slot_; varpool_node_set obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (varpool_node_set)); return obj_; } static __inline__ varpool_node_set VEC_varpool_node_set_base_unordered_remove (VEC_varpool_node_set_base *vec_, unsigned ix_ ) { varpool_node_set *slot_; varpool_node_set obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_varpool_node_set_base_block_remove (VEC_varpool_node_set_base *vec_, unsigned ix_, unsigned len_ ) { varpool_node_set *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (varpool_node_set)); } static __inline__ varpool_node_set *VEC_varpool_node_set_base_address (VEC_varpool_node_set_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_varpool_node_set_base_lower_bound (VEC_varpool_node_set_base *vec_, const varpool_node_set obj_, unsigned char (*lessthan_)(const varpool_node_set, const varpool_node_set) ) { unsigned int len_ = VEC_varpool_node_set_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { varpool_node_set middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_varpool_node_set_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_varpool_node_set_gc { VEC_varpool_node_set_base base; } VEC_varpool_node_set_gc; static __inline__ VEC_varpool_node_set_gc *VEC_varpool_node_set_gc_alloc (int alloc_ ) { return (VEC_varpool_node_set_gc *) vec_gc_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_varpool_node_set_gc_free (VEC_varpool_node_set_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_varpool_node_set_gc *VEC_varpool_node_set_gc_copy (VEC_varpool_node_set_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_varpool_node_set_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_varpool_node_set_gc *)(vec_gc_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (varpool_node_set) * len_); } return new_vec_; } static __inline__ int VEC_varpool_node_set_gc_reserve (VEC_varpool_node_set_gc **vec_, int alloc_ ) { int extend = !VEC_varpool_node_set_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_varpool_node_set_gc *) vec_gc_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_varpool_node_set_gc_reserve_exact (VEC_varpool_node_set_gc **vec_, int alloc_ ) { int extend = !VEC_varpool_node_set_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_varpool_node_set_gc *) vec_gc_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_varpool_node_set_gc_safe_grow (VEC_varpool_node_set_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_varpool_node_set_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_varpool_node_set_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_varpool_node_set_gc_safe_grow_cleared (VEC_varpool_node_set_gc **vec_, int size_ ) { int oldsize = VEC_varpool_node_set_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_varpool_node_set_gc_safe_grow (vec_, size_ ); memset (&(VEC_varpool_node_set_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (varpool_node_set) * (size_ - oldsize)); } static __inline__ void VEC_varpool_node_set_gc_safe_splice (VEC_varpool_node_set_gc **dst_, VEC_varpool_node_set_base *src_ ) { if (src_) { VEC_varpool_node_set_gc_reserve_exact (dst_, src_->prefix.num ); VEC_varpool_node_set_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ varpool_node_set *VEC_varpool_node_set_gc_safe_push (VEC_varpool_node_set_gc **vec_, varpool_node_set obj_ ) { VEC_varpool_node_set_gc_reserve (vec_, 1 ); return VEC_varpool_node_set_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ varpool_node_set *VEC_varpool_node_set_gc_safe_insert (VEC_varpool_node_set_gc **vec_, unsigned ix_, varpool_node_set obj_ ) { VEC_varpool_node_set_gc_reserve (vec_, 1 ); return VEC_varpool_node_set_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; >typedef struct VEC_varpool_node_set_heap { VEC_varpool_node_set_base base; } VEC_varpool_node_set_heap; static __inline__ VEC_varpool_node_set_heap *VEC_varpool_node_set_heap_alloc (int alloc_ ) { return (VEC_varpool_node_set_heap *) vec_heap_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_varpool_node_set_heap_free (VEC_varpool_node_set_heap **vec_) { if (*vec_) (free) (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_varpool_node_set_heap *VEC_varpool_node_set_heap_copy (VEC_varpool_node_set_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_varpool_node_set_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_varpool_node_set_heap *)(vec_heap_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (varpool_node_set) * len_); } return new_vec_; } static __inline__ int VEC_varpool_node_set_heap_reserve (VEC_varpool_node_set_heap **vec_, int alloc_ ) { int extend = !VEC_varpool_node_set_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_varpool_node_set_heap *) vec_heap_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_varpool_node_set_heap_reserve_exact (VEC_varpool_node_set_heap **vec_, int alloc_ ) { int extend = !VEC_varpool_node_set_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_varpool_node_set_heap *) vec_heap_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_varpool_node_set_heap_safe_grow (VEC_varpool_node_set_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_varpool_node_set_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_varpool_node_set_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_varpool_node_set_heap_safe_grow_cleared (VEC_varpool_node_set_heap **vec_, int size_ ) { int oldsize = VEC_varpool_node_set_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_varpool_node_set_heap_safe_grow (vec_, size_ ); memset (&(VEC_varpool_node_set_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (varpool_node_set) * (size_ - oldsize)); } static __inline__ void VEC_varpool_node_set_heap_safe_splice (VEC_varpool_node_set_heap **dst_, VEC_varpool_node_set_base *src_ ) { if (src_) { VEC_varpool_node_set_heap_reserve_exact (dst_, src_->prefix.num ); VEC_varpool_node_set_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ varpool_node_set *VEC_varpool_node_set_heap_safe_push (VEC_varpool_node_set_heap **vec_, varpool_node_set obj_ ) { VEC_varpool_node_set_heap_reserve (vec_, 1 ); return VEC_varpool_node_set_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ varpool_node_set *VEC_varpool_node_set_heap_safe_insert (VEC_varpool_node_set_heap **vec_, unsigned ix_, varpool_node_set obj_ ) { VEC_varpool_node_set_heap_reserve (vec_, 1 ); return VEC_varpool_node_set_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; > > >typedef struct >{ > cgraph_node_set set; > unsigned index; >} cgraph_node_set_iterator; > > >typedef struct >{ > varpool_node_set set; > unsigned index; >} varpool_node_set_iterator; > > > >typedef enum cgraph_inline_failed_enum { ># 1 "../../gcc/cif-code.def" 1 ># 31 "../../gcc/cif-code.def" >CIF_OK, > > >CIF_UNSPECIFIED, > > > >CIF_FUNCTION_NOT_CONSIDERED, > > >CIF_BODY_NOT_AVAILABLE, > > > > > CIF_REDEFINED_EXTERN_INLINE ># 44 "../../gcc/cif-code.def" > , > > > > >CIF_FUNCTION_NOT_INLINABLE, > > >CIF_OVERWRITABLE, > > >CIF_FUNCTION_NOT_INLINE_CANDIDATE, > > > > CIF_LARGE_FUNCTION_GROWTH_LIMIT ># 58 "../../gcc/cif-code.def" > , > > > CIF_LARGE_STACK_FRAME_GROWTH_LIMIT ># 60 "../../gcc/cif-code.def" > , > > > CIF_MAX_INLINE_INSNS_SINGLE_LIMIT ># 62 "../../gcc/cif-code.def" > , > > > CIF_MAX_INLINE_INSNS_AUTO_LIMIT ># 64 "../../gcc/cif-code.def" > , > > > CIF_INLINE_UNIT_GROWTH_LIMIT ># 66 "../../gcc/cif-code.def" > , > > > >CIF_RECURSIVE_INLINING, > > >CIF_UNLIKELY_CALL, > > > > CIF_NOT_DECLARED_INLINED ># 76 "../../gcc/cif-code.def" > , > > > > > CIF_OPTIMIZING_FOR_SIZE ># 80 "../../gcc/cif-code.def" > , > > > >CIF_MISMATCHED_ARGUMENTS, > > > > CIF_ORIGINALLY_INDIRECT_CALL ># 87 "../../gcc/cif-code.def" > , > > > > > CIF_INDIRECT_UNKNOWN_CALL ># 91 "../../gcc/cif-code.def" > , > > > >CIF_EH_PERSONALITY, > > > >CIF_NON_CALL_EXCEPTIONS, > > >CIF_TARGET_OPTION_MISMATCH, > > >CIF_OPTIMIZATION_MISMATCH, ># 316 "../../gcc/cgraph.h" 2 > CIF_N_REASONS >} cgraph_inline_failed_t; > > > >struct cgraph_indirect_call_info >{ > > > long long anc_offset; > > long long otr_token; > > tree otr_type; > > int param_index; > > int ecf_flags; > > > > unsigned polymorphic : 1; >}; > >struct cgraph_edge { > > gcov_type count; > struct cgraph_node *caller; > struct cgraph_node *callee; > struct cgraph_edge *prev_caller; > struct cgraph_edge *next_caller; > struct cgraph_edge *prev_callee; > struct cgraph_edge *next_callee; > gimple call_stmt; > > > struct cgraph_indirect_call_info *indirect_info; > void * aux; > > > cgraph_inline_failed_t inline_failed; > > > unsigned int lto_stmt_uid; > > > > int frequency; > > int uid; > > unsigned int indirect_inlining_edge : 1; > > > unsigned int indirect_unknown_callee : 1; > > > unsigned int call_stmt_cannot_inline_p : 1; > > unsigned int can_throw_external : 1; >}; > > > > >typedef struct cgraph_edge *cgraph_edge_p; > >static __inline__ void VEC_cgraph_edge_p_must_be_pointer_type (void) { (void)((cgraph_edge_p)1 == (void *)1); } typedef struct VEC_cgraph_edge_p_base { struct vec_prefix prefix; cgraph_edge_p vec[1]; } VEC_cgraph_edge_p_base; typedef struct VEC_cgraph_edge_p_none { VEC_cgraph_edge_p_base base; } VEC_cgraph_edge_p_none; static __inline__ unsigned VEC_cgraph_edge_p_base_length (const VEC_cgraph_edge_p_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ cgraph_edge_p VEC_cgraph_edge_p_base_last (const VEC_cgraph_edge_p_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return vec_->vec[vec_->prefix.num - 1]; } static __inline__ cgraph_edge_p VEC_cgraph_edge_p_base_index (const VEC_cgraph_edge_p_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return vec_->vec[ix_]; } static __inline__ int VEC_cgraph_edge_p_base_iterate (const VEC_cgraph_edge_p_base *vec_, unsigned ix_, cgraph_edge_p *ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = (cgraph_edge_p) 0; return 0; } } static __inline__ size_t VEC_cgraph_edge_p_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_cgraph_edge_p_base, vec) + alloc_ * sizeof(cgraph_edge_p); } static __inline__ void VEC_cgraph_edge_p_base_embedded_init (VEC_cgraph_edge_p_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_cgraph_edge_p_base_space (VEC_cgraph_edge_p_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_cgraph_edge_p_base_splice (VEC_cgraph_edge_p_base *dst_, VEC_cgraph_edge_p_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (cgraph_edge_p)); dst_->prefix.num += len_; } } static __inline__ cgraph_edge_p *VEC_cgraph_edge_p_base_quick_push (VEC_cgraph_edge_p_base *vec_, cgraph_edge_p obj_ ) { cgraph_edge_p *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; *slot_ = obj_; return slot_; } static __inline__ cgraph_edge_p VEC_cgraph_edge_p_base_pop (VEC_cgraph_edge_p_base *vec_ ) { cgraph_edge_p obj_; (void)(vec_->prefix.num); obj_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_cgraph_edge_p_base_truncate (VEC_cgraph_edge_p_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ cgraph_edge_p VEC_cgraph_edge_p_base_replace (VEC_cgraph_edge_p_base *vec_, unsigned ix_, cgraph_edge_p obj_ ) { cgraph_edge_p old_obj_; (void)(ix_ < vec_->prefix.num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ cgraph_edge_p *VEC_cgraph_edge_p_base_quick_insert (VEC_cgraph_edge_p_base *vec_, unsigned ix_, cgraph_edge_p obj_ ) { cgraph_edge_p *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (cgraph_edge_p)); *slot_ = obj_; return slot_; } static __inline__ cgraph_edge_p VEC_cgraph_edge_p_base_ordered_remove (VEC_cgraph_edge_p_base *vec_, unsigned ix_ ) { cgraph_edge_p *slot_; cgraph_edge_p obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (cgraph_edge_p)); return obj_; } static __inline__ cgraph_edge_p VEC_cgraph_edge_p_base_unordered_remove (VEC_cgraph_edge_p_base *vec_, unsigned ix_ ) { cgraph_edge_p *slot_; cgraph_edge_p obj_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->prefix.num]; return obj_; } static __inline__ void VEC_cgraph_edge_p_base_block_remove (VEC_cgraph_edge_p_base *vec_, unsigned ix_, unsigned len_ ) { cgraph_edge_p *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (cgraph_edge_p)); } static __inline__ cgraph_edge_p *VEC_cgraph_edge_p_base_address (VEC_cgraph_edge_p_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_cgraph_edge_p_base_lower_bound (VEC_cgraph_edge_p_base *vec_, const cgraph_edge_p obj_, unsigned char (*lessthan_)(const cgraph_edge_p, const cgraph_edge_p) ) { unsigned int len_ = VEC_cgraph_edge_p_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { cgraph_edge_p middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_cgraph_edge_p_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_cgraph_edge_p_heap { VEC_cgraph_edge_p_base base; } VEC_cgraph_edge_p_heap; static __inline__ VEC_cgraph_edge_p_heap *VEC_cgraph_edge_p_heap_alloc (int alloc_ ) { return (VEC_cgraph_edge_p_heap *) vec_heap_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_cgraph_edge_p_heap_free (VEC_cgraph_edge_p_heap **vec_) { if (*vec_) (free) (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_cgraph_edge_p_heap *VEC_cgraph_edge_p_heap_copy (VEC_cgraph_edge_p_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_cgraph_edge_p_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_cgraph_edge_p_heap *)(vec_heap_p_reserve_exact (((void *)0), len_ )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (cgraph_edge_p) * len_); } return new_vec_; } static __inline__ int VEC_cgraph_edge_p_heap_reserve (VEC_cgraph_edge_p_heap **vec_, int alloc_ ) { int extend = !VEC_cgraph_edge_p_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_cgraph_edge_p_heap *) vec_heap_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_cgraph_edge_p_heap_reserve_exact (VEC_cgraph_edge_p_heap **vec_, int alloc_ ) { int extend = !VEC_cgraph_edge_p_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_cgraph_edge_p_heap *) vec_heap_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_cgraph_edge_p_heap_safe_grow (VEC_cgraph_edge_p_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_cgraph_edge_p_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_cgraph_edge_p_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_cgraph_edge_p_heap_safe_grow_cleared (VEC_cgraph_edge_p_heap **vec_, int size_ ) { int oldsize = VEC_cgraph_edge_p_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_cgraph_edge_p_heap_safe_grow (vec_, size_ ); memset (&(VEC_cgraph_edge_p_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (cgraph_edge_p) * (size_ - oldsize)); } static __inline__ void VEC_cgraph_edge_p_heap_safe_splice (VEC_cgraph_edge_p_heap **dst_, VEC_cgraph_edge_p_base *src_ ) { if (src_) { VEC_cgraph_edge_p_heap_reserve_exact (dst_, src_->prefix.num ); VEC_cgraph_edge_p_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ cgraph_edge_p *VEC_cgraph_edge_p_heap_safe_push (VEC_cgraph_edge_p_heap **vec_, cgraph_edge_p obj_ ) { VEC_cgraph_edge_p_heap_reserve (vec_, 1 ); return VEC_cgraph_edge_p_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ cgraph_edge_p *VEC_cgraph_edge_p_heap_safe_insert (VEC_cgraph_edge_p_heap **vec_, unsigned ix_, cgraph_edge_p obj_ ) { VEC_cgraph_edge_p_heap_reserve (vec_, 1 ); return VEC_cgraph_edge_p_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; > > > > >struct varpool_node { > tree decl; > > tree alias_of; > > struct varpool_node *next, *prev; > > struct varpool_node *next_needed, *prev_needed; > > struct varpool_node *same_comdat_group; > struct ipa_ref_list ref_list; > > struct lto_file_decl_data * lto_file_data; > void * aux; > > int order; > enum ld_plugin_symbol_resolution resolution; > > > > unsigned needed : 1; > > > unsigned force_output : 1; > > > unsigned analyzed : 1; > > unsigned finalized : 1; > > unsigned output : 1; > > unsigned externally_visible : 1; > > > unsigned alias : 1; > unsigned extra_name_alias : 1; > > unsigned used_from_other_partition : 1; > > > > unsigned in_other_partition : 1; >}; > > > >struct cgraph_asm_node { > > struct cgraph_asm_node *next; > > tree asm_str; > > int order; >}; > >extern struct cgraph_node *cgraph_nodes; >extern int cgraph_n_nodes; >extern int cgraph_max_uid; >extern int cgraph_edge_max_uid; >extern unsigned char cgraph_global_info_ready; >enum cgraph_state >{ > > CGRAPH_STATE_CONSTRUCTION, > > CGRAPH_STATE_IPA, > > CGRAPH_STATE_IPA_SSA, > > CGRAPH_STATE_EXPANSION, > > CGRAPH_STATE_FINISHED >}; >extern enum cgraph_state cgraph_state; >extern unsigned char cgraph_function_flags_ready; >extern struct cgraph_node *cgraph_nodes_queue; >extern struct cgraph_node *cgraph_new_nodes; > >extern struct cgraph_asm_node *cgraph_asm_nodes; >extern int cgraph_order; >extern unsigned char same_body_aliases_done; > > >void dump_cgraph (FILE *); >void debug_cgraph (void); >void dump_cgraph_node (FILE *, struct cgraph_node *); >void debug_cgraph_node (struct cgraph_node *); >void cgraph_insert_node_to_hashtable (struct cgraph_node *node); >void cgraph_remove_edge (struct cgraph_edge *); >void cgraph_remove_node (struct cgraph_node *); >void cgraph_add_to_same_comdat_group (struct cgraph_node *, struct cgraph_node *); >void cgraph_remove_node_and_inline_clones (struct cgraph_node *); >void cgraph_release_function_body (struct cgraph_node *); >void cgraph_node_remove_callees (struct cgraph_node *node); >struct cgraph_edge *cgraph_create_edge (struct cgraph_node *, > struct cgraph_node *, > gimple, gcov_type, int); >struct cgraph_edge *cgraph_create_indirect_edge (struct cgraph_node *, gimple, > int, gcov_type, int); >struct cgraph_indirect_call_info *cgraph_allocate_init_indirect_info (void); >struct cgraph_node * cgraph_get_node (const_tree); >struct cgraph_node * cgraph_create_node (tree); >struct cgraph_node * cgraph_get_create_node (tree); >struct cgraph_node * cgraph_same_body_alias (struct cgraph_node *, tree, tree); >struct cgraph_node * cgraph_add_thunk (struct cgraph_node *, tree, tree, unsigned char, long long, > long long, tree, tree); >struct cgraph_node *cgraph_node_for_asm (tree); >struct cgraph_edge *cgraph_edge (struct cgraph_node *, gimple); >void cgraph_set_call_stmt (struct cgraph_edge *, gimple); >void cgraph_set_call_stmt_including_clones (struct cgraph_node *, gimple, gimple); >void cgraph_create_edge_including_clones (struct cgraph_node *, > struct cgraph_node *, > gimple, gimple, gcov_type, int, > cgraph_inline_failed_t); >void cgraph_update_edges_for_call_stmt (gimple, tree, gimple); >struct cgraph_local_info *cgraph_local_info (tree); >struct cgraph_global_info *cgraph_global_info (tree); >struct cgraph_rtl_info *cgraph_rtl_info (tree); >const char * cgraph_node_name (struct cgraph_node *); >struct cgraph_edge * cgraph_clone_edge (struct cgraph_edge *, > struct cgraph_node *, gimple, > unsigned, gcov_type, int, unsigned char); >struct cgraph_node * cgraph_clone_node (struct cgraph_node *, tree, gcov_type, > int, unsigned char, VEC_cgraph_edge_p_heap *, > unsigned char); >struct cgraph_node *cgraph_create_function_alias (tree, tree); >void cgraph_call_node_duplication_hooks (struct cgraph_node *node1, > struct cgraph_node *node2); > >void cgraph_redirect_edge_callee (struct cgraph_edge *, struct cgraph_node *); >void cgraph_make_edge_direct (struct cgraph_edge *, struct cgraph_node *); >unsigned char cgraph_only_called_directly_p (struct cgraph_node *); > >struct cgraph_asm_node *cgraph_add_asm_node (tree); > >unsigned char cgraph_function_possibly_inlined_p (tree); >void cgraph_unnest_node (struct cgraph_node *); > >enum availability cgraph_function_body_availability (struct cgraph_node *); >void cgraph_add_new_function (tree, unsigned char); >const char* cgraph_inline_failed_string (cgraph_inline_failed_t); >struct cgraph_node * cgraph_create_virtual_clone (struct cgraph_node *old_node, > VEC_cgraph_edge_p_heap*, > VEC_ipa_replace_map_p_gc* tree_map, > bitmap args_to_skip, > const char *clone_name); > >void cgraph_set_nothrow_flag (struct cgraph_node *, unsigned char); >void cgraph_set_const_flag (struct cgraph_node *, unsigned char, unsigned char); >void cgraph_set_pure_flag (struct cgraph_node *, unsigned char, unsigned char); >tree clone_function_name (tree decl, const char *); >unsigned char cgraph_node_cannot_return (struct cgraph_node *); >unsigned char cgraph_edge_cannot_lead_to_return (struct cgraph_edge *); >unsigned char cgraph_will_be_removed_from_program_if_no_direct_calls > (struct cgraph_node *node); >unsigned char cgraph_can_remove_if_no_direct_calls_and_refs_p > (struct cgraph_node *node); >unsigned char cgraph_can_remove_if_no_direct_calls_p (struct cgraph_node *node); >unsigned char resolution_used_from_other_file_p (enum ld_plugin_symbol_resolution); >unsigned char cgraph_used_from_object_file_p (struct cgraph_node *); >unsigned char varpool_used_from_object_file_p (struct varpool_node *); >unsigned char cgraph_for_node_thunks_and_aliases (struct cgraph_node *, > unsigned char (*) (struct cgraph_node *, void *), > void *, > unsigned char); >unsigned char cgraph_for_node_and_aliases (struct cgraph_node *, > unsigned char (*) (struct cgraph_node *, void *), > void *, unsigned char); >VEC_cgraph_edge_p_heap * collect_callers_of_node (struct cgraph_node *node); > > > >extern FILE *cgraph_dump_file; >void cgraph_finalize_function (tree, unsigned char); >void cgraph_mark_if_needed (tree); >void cgraph_analyze_function (struct cgraph_node *); >void cgraph_finalize_compilation_unit (void); >void cgraph_optimize (void); >void cgraph_mark_needed_node (struct cgraph_node *); >void cgraph_mark_address_taken_node (struct cgraph_node *); >void cgraph_mark_reachable_node (struct cgraph_node *); >unsigned char cgraph_inline_p (struct cgraph_edge *, cgraph_inline_failed_t *reason); >unsigned char cgraph_preserve_function_body_p (struct cgraph_node *); >void verify_cgraph (void); >void verify_cgraph_node (struct cgraph_node *); >void cgraph_build_static_cdtor (char which, tree body, int priority); >void cgraph_reset_static_var_maps (void); >void init_cgraph (void); >struct cgraph_node * cgraph_copy_node_for_versioning (struct cgraph_node *, > tree, VEC_cgraph_edge_p_heap*, bitmap); >struct cgraph_node *cgraph_function_versioning (struct cgraph_node *, > VEC_cgraph_edge_p_heap*, > VEC_ipa_replace_map_p_gc*, > bitmap, unsigned char, bitmap, > basic_block, const char *); >void tree_function_versioning (tree, tree, VEC_ipa_replace_map_p_gc*, > unsigned char, bitmap, unsigned char, bitmap, basic_block); >void record_references_in_initializer (tree, unsigned char); >unsigned char cgraph_process_new_functions (void); >void cgraph_process_same_body_aliases (void); > >unsigned char cgraph_decide_is_function_needed (struct cgraph_node *, tree); > >typedef void (*cgraph_edge_hook)(struct cgraph_edge *, void *); >typedef void (*cgraph_node_hook)(struct cgraph_node *, void *); >typedef void (*cgraph_2edge_hook)(struct cgraph_edge *, struct cgraph_edge *, > void *); >typedef void (*cgraph_2node_hook)(struct cgraph_node *, struct cgraph_node *, > void *); >struct cgraph_edge_hook_list; >struct cgraph_node_hook_list; >struct cgraph_2edge_hook_list; >struct cgraph_2node_hook_list; >struct cgraph_edge_hook_list *cgraph_add_edge_removal_hook (cgraph_edge_hook, void *); >void cgraph_remove_edge_removal_hook (struct cgraph_edge_hook_list *); >struct cgraph_node_hook_list *cgraph_add_node_removal_hook (cgraph_node_hook, > void *); >void cgraph_remove_node_removal_hook (struct cgraph_node_hook_list *); >struct cgraph_node_hook_list *cgraph_add_function_insertion_hook (cgraph_node_hook, > void *); >void cgraph_remove_function_insertion_hook (struct cgraph_node_hook_list *); >void cgraph_call_function_insertion_hooks (struct cgraph_node *node); >struct cgraph_2edge_hook_list *cgraph_add_edge_duplication_hook (cgraph_2edge_hook, void *); >void cgraph_remove_edge_duplication_hook (struct cgraph_2edge_hook_list *); >struct cgraph_2node_hook_list *cgraph_add_node_duplication_hook (cgraph_2node_hook, void *); >void cgraph_remove_node_duplication_hook (struct cgraph_2node_hook_list *); >void cgraph_materialize_all_clones (void); >gimple cgraph_redirect_edge_call_stmt_to_callee (struct cgraph_edge *); >unsigned char cgraph_propagate_frequency (struct cgraph_node *node); > >unsigned int rebuild_cgraph_edges (void); >void cgraph_rebuild_references (void); >void reset_inline_failed (struct cgraph_node *); >int compute_call_stmt_bb_frequency (tree, basic_block bb); > > >unsigned char cgraph_remove_unreachable_nodes (unsigned char, FILE *); >cgraph_node_set cgraph_node_set_new (void); >cgraph_node_set_iterator cgraph_node_set_find (cgraph_node_set, > struct cgraph_node *); >void cgraph_node_set_add (cgraph_node_set, struct cgraph_node *); >void cgraph_node_set_remove (cgraph_node_set, struct cgraph_node *); >void dump_cgraph_node_set (FILE *, cgraph_node_set); >void debug_cgraph_node_set (cgraph_node_set); >void free_cgraph_node_set (cgraph_node_set); > >varpool_node_set varpool_node_set_new (void); >varpool_node_set_iterator varpool_node_set_find (varpool_node_set, > struct varpool_node *); >void varpool_node_set_add (varpool_node_set, struct varpool_node *); >void varpool_node_set_remove (varpool_node_set, struct varpool_node *); >void dump_varpool_node_set (FILE *, varpool_node_set); >void debug_varpool_node_set (varpool_node_set); >void free_varpool_node_set (varpool_node_set); >void ipa_discover_readonly_nonaddressable_vars (void); >unsigned char cgraph_comdat_can_be_unshared_p (struct cgraph_node *); >unsigned char varpool_externally_visible_p (struct varpool_node *, unsigned char); > > >unsigned char cgraph_maybe_hot_edge_p (struct cgraph_edge *e); >unsigned char cgraph_optimize_for_size_p (struct cgraph_node *); > > >extern struct varpool_node *varpool_nodes_queue; >extern struct varpool_node *varpool_nodes; > >struct varpool_node *varpool_node (tree); >struct varpool_node *varpool_node_for_asm (tree asmname); >void varpool_mark_needed_node (struct varpool_node *); >void debug_varpool (void); >void dump_varpool (FILE *); >void dump_varpool_node (FILE *, struct varpool_node *); > >void varpool_finalize_decl (tree); >unsigned char decide_is_variable_needed (struct varpool_node *, tree); >enum availability cgraph_variable_initializer_availability (struct varpool_node *); >void cgraph_make_decl_local (tree); >void cgraph_make_node_local (struct cgraph_node *); >unsigned char cgraph_node_can_be_local_p (struct cgraph_node *); > > >struct varpool_node * varpool_get_node (const_tree decl); >void varpool_remove_node (struct varpool_node *node); >void varpool_finalize_named_section_flags (struct varpool_node *node); >unsigned char varpool_assemble_pending_decls (void); >unsigned char varpool_assemble_decl (struct varpool_node *node); >unsigned char varpool_analyze_pending_decls (void); >void varpool_remove_unreferenced_decls (void); >void varpool_empty_needed_queue (void); >struct varpool_node * varpool_extra_name_alias (tree, tree); >struct varpool_node * varpool_create_variable_alias (tree, tree); >const char * varpool_node_name (struct varpool_node *node); >void varpool_reset_queue (void); >unsigned char const_value_known_p (tree); >unsigned char varpool_for_node_and_aliases (struct varpool_node *, > unsigned char (*) (struct varpool_node *, void *), > void *, unsigned char); >void varpool_add_new_variable (tree); > > > > > > >static __inline__ struct varpool_node * >varpool_first_static_initializer (void) >{ > struct varpool_node *node; > for (node = varpool_nodes_queue; node; node = node->next_needed) > { > ((void)(0 && (((enum tree_code) (node->decl)->base.code) == VAR_DECL))); > if (((node->decl)->decl_common.initial)) > return node; > } > return ((void *)0); >} > > >static __inline__ struct varpool_node * >varpool_next_static_initializer (struct varpool_node *node) >{ > for (node = node->next_needed; node; node = node->next_needed) > { > ((void)(0 && (((enum tree_code) (node->decl)->base.code) == VAR_DECL))); > if (((node->decl)->decl_common.initial)) > return node; > } > return ((void *)0); >} > > > > > > > >static __inline__ struct cgraph_node * >cgraph_first_defined_function (void) >{ > struct cgraph_node *node; > for (node = cgraph_nodes; node; node = node->next) > { > if (node->analyzed) > return node; > } > return ((void *)0); >} > > >static __inline__ struct cgraph_node * >cgraph_next_defined_function (struct cgraph_node *node) >{ > for (node = node->next; node; node = node->next) > { > if (node->analyzed) > return node; > } > return ((void *)0); >} ># 762 "../../gcc/cgraph.h" >static __inline__ unsigned char >cgraph_function_with_gimple_body_p (struct cgraph_node *node) >{ > return node->analyzed && !node->thunk.thunk_p && !node->alias; >} > > >static __inline__ struct cgraph_node * >cgraph_first_function_with_gimple_body (void) >{ > struct cgraph_node *node; > for (node = cgraph_nodes; node; node = node->next) > { > if (cgraph_function_with_gimple_body_p (node)) > return node; > } > return ((void *)0); >} > > >static __inline__ struct cgraph_node * >cgraph_next_function_with_gimple_body (struct cgraph_node *node) >{ > for (node = node->next; node; node = node->next) > { > if (cgraph_function_with_gimple_body_p (node)) > return node; > } > return ((void *)0); >} > > > > > > > >tree add_new_static_var (tree type); > > >static __inline__ unsigned char >csi_end_p (cgraph_node_set_iterator csi) >{ > return csi.index >= (VEC_cgraph_node_ptr_base_length(((__builtin_offsetof (__typeof (*csi.set->nodes), base) == 0 || (csi.set->nodes)) ? &(csi.set->nodes)->base : 0))); >} > > >static __inline__ void >csi_next (cgraph_node_set_iterator *csi) >{ > csi->index++; >} > > >static __inline__ struct cgraph_node * >csi_node (cgraph_node_set_iterator csi) >{ > return (VEC_cgraph_node_ptr_base_index(((__builtin_offsetof (__typeof (*csi.set->nodes), base) == 0 || (csi.set->nodes)) ? &(csi.set->nodes)->base : 0),csi.index )); >} > > >static __inline__ cgraph_node_set_iterator >csi_start (cgraph_node_set set) >{ > cgraph_node_set_iterator csi; > > csi.set = set; > csi.index = 0; > return csi; >} > > >static __inline__ unsigned char >cgraph_node_in_set_p (struct cgraph_node *node, cgraph_node_set set) >{ > cgraph_node_set_iterator csi; > csi = cgraph_node_set_find (set, node); > return !csi_end_p (csi); >} > > >static __inline__ size_t >cgraph_node_set_size (cgraph_node_set set) >{ > return (VEC_cgraph_node_ptr_base_length(((__builtin_offsetof (__typeof (*set->nodes), base) == 0 || (set->nodes)) ? &(set->nodes)->base : 0))); >} > > >static __inline__ unsigned char >vsi_end_p (varpool_node_set_iterator vsi) >{ > return vsi.index >= (VEC_varpool_node_ptr_base_length(((__builtin_offsetof (__typeof (*vsi.set->nodes), base) == 0 || (vsi.set->nodes)) ? &(vsi.set->nodes)->base : 0))); >} > > >static __inline__ void >vsi_next (varpool_node_set_iterator *vsi) >{ > vsi->index++; >} > > >static __inline__ struct varpool_node * >vsi_node (varpool_node_set_iterator vsi) >{ > return (VEC_varpool_node_ptr_base_index(((__builtin_offsetof (__typeof (*vsi.set->nodes), base) == 0 || (vsi.set->nodes)) ? &(vsi.set->nodes)->base : 0),vsi.index )); >} > > >static __inline__ varpool_node_set_iterator >vsi_start (varpool_node_set set) >{ > varpool_node_set_iterator vsi; > > vsi.set = set; > vsi.index = 0; > return vsi; >} > > >static __inline__ unsigned char >varpool_node_in_set_p (struct varpool_node *node, varpool_node_set set) >{ > varpool_node_set_iterator vsi; > vsi = varpool_node_set_find (set, node); > return !vsi_end_p (vsi); >} > > >static __inline__ size_t >varpool_node_set_size (varpool_node_set set) >{ > return (VEC_varpool_node_ptr_base_length(((__builtin_offsetof (__typeof (*set->nodes), base) == 0 || (set->nodes)) ? &(set->nodes)->base : 0))); >} > > > > > >struct constant_descriptor_tree { > > rtx rtl; > > > tree value; > > > > > hashval_t hash; >}; > > >static __inline__ unsigned char >cgraph_node_set_nonempty_p (cgraph_node_set set) >{ > return !((VEC_cgraph_node_ptr_base_length(((__builtin_offsetof (__typeof (*set->nodes), base) == 0 || (set->nodes)) ? &(set->nodes)->base : 0))) == 0); >} > > >static __inline__ unsigned char >varpool_node_set_nonempty_p (varpool_node_set set) >{ > return !((VEC_varpool_node_ptr_base_length(((__builtin_offsetof (__typeof (*set->nodes), base) == 0 || (set->nodes)) ? &(set->nodes)->base : 0))) == 0); >} > > > > > >static __inline__ unsigned char >cgraph_only_called_directly_or_aliased_p (struct cgraph_node *node) >{ > ((void)(!(!node->global.inlined_to) ? fancy_abort ("../../gcc/cgraph.h", 935, __FUNCTION__), 0 : 0)); > return (!node->needed && !node->address_taken > && !node->reachable_from_other_partition > && !((node->decl)->function_decl.static_ctor_flag) > && !((node->decl)->function_decl.static_dtor_flag) > && !node->local.externally_visible); >} > > > > >static __inline__ unsigned char >varpool_can_remove_if_no_refs (struct varpool_node *node) >{ > return (!node->force_output && !node->used_from_other_partition > && (global_options.x_flag_toplevel_reorder || ((node->decl)->decl_with_vis.comdat_flag) > || ((node->decl)->decl_common.artificial_flag)) > && (((node->decl)->decl_with_vis.comdat_flag) || !node->externally_visible)); >} > > > > > > >static __inline__ unsigned char >varpool_all_refs_explicit_p (struct varpool_node *vnode) >{ > return (vnode->analyzed > && !vnode->externally_visible > && !vnode->used_from_other_partition > && !vnode->force_output); >} > > >htab_t constant_pool_htab (void); > > ># 1 "../../gcc/ipa-ref-inline.h" 1 ># 23 "../../gcc/ipa-ref-inline.h" >static __inline__ struct cgraph_node * >ipa_ref_node (struct ipa_ref *ref) >{ > ((void)(!(ref->refered_type == IPA_REF_CGRAPH) ? fancy_abort ("../../gcc/ipa-ref-inline.h", 26, __FUNCTION__), 0 : 0)); > return ref->refered.cgraph_node; >} > > > >static __inline__ struct varpool_node * >ipa_ref_varpool_node (struct ipa_ref *ref) >{ > ((void)(!(ref->refered_type == IPA_REF_VARPOOL) ? fancy_abort ("../../gcc/ipa-ref-inline.h", 35, __FUNCTION__), 0 : 0)); > return ref->refered.varpool_node; >} > > > >static __inline__ struct cgraph_node * >ipa_ref_refering_node (struct ipa_ref *ref) >{ > ((void)(!(ref->refering_type == IPA_REF_CGRAPH) ? fancy_abort ("../../gcc/ipa-ref-inline.h", 44, __FUNCTION__), 0 : 0)); > return ref->refering.cgraph_node; >} > > > >static __inline__ struct varpool_node * >ipa_ref_refering_varpool_node (struct ipa_ref *ref) >{ > ((void)(!(ref->refering_type == IPA_REF_VARPOOL) ? fancy_abort ("../../gcc/ipa-ref-inline.h", 53, __FUNCTION__), 0 : 0)); > return ref->refering.varpool_node; >} > > > >static __inline__ struct ipa_ref_list * >ipa_ref_refering_ref_list (struct ipa_ref *ref) >{ > if (ref->refering_type == IPA_REF_CGRAPH) > return &ipa_ref_refering_node (ref)->ref_list; > else > return &ipa_ref_refering_varpool_node (ref)->ref_list; >} > > > >static __inline__ struct ipa_ref_list * >ipa_ref_refered_ref_list (struct ipa_ref *ref) >{ > if (ref->refered_type == IPA_REF_CGRAPH) > return &ipa_ref_node (ref)->ref_list; > else > return &ipa_ref_varpool_node (ref)->ref_list; >} > > > >static __inline__ struct ipa_ref * >ipa_ref_list_first_reference (struct ipa_ref_list *list) >{ > if (!(VEC_ipa_ref_t_base_length(((__builtin_offsetof (__typeof (*list->references), base) == 0 || (list->references)) ? &(list->references)->base : 0)))) > return ((void *)0); > return (VEC_ipa_ref_t_base_index(((__builtin_offsetof (__typeof (*list->references), base) == 0 || (list->references)) ? &(list->references)->base : 0),0 )); >} > > > >static __inline__ struct ipa_ref * >ipa_ref_list_first_refering (struct ipa_ref_list *list) >{ > if (!(VEC_ipa_ref_ptr_base_length(((__builtin_offsetof (__typeof (*list->refering), base) == 0 || (list->refering)) ? &(list->refering)->base : 0)))) > return ((void *)0); > return (VEC_ipa_ref_ptr_base_index(((__builtin_offsetof (__typeof (*list->refering), base) == 0 || (list->refering)) ? &(list->refering)->base : 0),0 )); >} > > > >static __inline__ void >ipa_empty_ref_list (struct ipa_ref_list *list) >{ > list->refering = ((void *)0); > list->references = ((void *)0); >} > > > >static __inline__ unsigned int >ipa_ref_list_nreferences (struct ipa_ref_list *list) >{ > return (VEC_ipa_ref_t_base_length(((__builtin_offsetof (__typeof (*list->references), base) == 0 || (list->references)) ? &(list->references)->base : 0))); >} ># 974 "../../gcc/cgraph.h" 2 > > > >static __inline__ struct cgraph_node * >cgraph_alias_aliased_node (struct cgraph_node *n) >{ > struct ipa_ref *ref; > > (VEC_ipa_ref_t_base_iterate(((__builtin_offsetof (__typeof (*(&n->ref_list)->references), base) == 0 || ((&n->ref_list)->references)) ? &((&n->ref_list)->references)->base : 0),(0),&((ref)))); > ((void)(0 && (ref->use == IPA_REF_ALIAS))); > if (ref->refered_type == IPA_REF_CGRAPH) > return ipa_ref_node (ref); > return ((void *)0); >} > > > >static __inline__ struct varpool_node * >varpool_alias_aliased_node (struct varpool_node *n) >{ > struct ipa_ref *ref; > > (VEC_ipa_ref_t_base_iterate(((__builtin_offsetof (__typeof (*(&n->ref_list)->references), base) == 0 || ((&n->ref_list)->references)) ? &((&n->ref_list)->references)->base : 0),(0),&((ref)))); > ((void)(0 && (ref->use == IPA_REF_ALIAS))); > if (ref->refered_type == IPA_REF_VARPOOL) > return ipa_ref_varpool_node (ref); > return ((void *)0); >} > > > > > >static __inline__ struct cgraph_node * >cgraph_function_node (struct cgraph_node *node, enum availability *availability) >{ > if (availability) > *availability = cgraph_function_body_availability (node); > while (node) > { > if (node->alias && node->analyzed) > node = cgraph_alias_aliased_node (node); > else if (node->thunk.thunk_p) > node = node->callees->callee; > else > return node; > if (node && availability) > { > enum availability a; > a = cgraph_function_body_availability (node); > if (a < *availability) > *availability = a; > } > } > if (availability) > *availability = AVAIL_NOT_AVAILABLE; > return ((void *)0); >} > > > > > >static __inline__ struct cgraph_node * >cgraph_function_or_thunk_node (struct cgraph_node *node, enum availability *availability) >{ > if (availability) > *availability = cgraph_function_body_availability (node); > while (node) > { > if (node->alias && node->analyzed) > node = cgraph_alias_aliased_node (node); > else > return node; > if (node && availability) > { > enum availability a; > a = cgraph_function_body_availability (node); > if (a < *availability) > *availability = a; > } > } > if (availability) > *availability = AVAIL_NOT_AVAILABLE; > return ((void *)0); >} > > > > > >static __inline__ struct varpool_node * >varpool_variable_node (struct varpool_node *node, enum availability *availability) >{ > if (availability) > *availability = cgraph_variable_initializer_availability (node); > while (node) > { > if (node->alias && node->analyzed) > node = varpool_alias_aliased_node (node); > else > return node; > if (node && availability) > { > enum availability a; > a = cgraph_variable_initializer_availability (node); > if (a < *availability) > *availability = a; > } > } > if (availability) > *availability = AVAIL_NOT_AVAILABLE; > return ((void *)0); >} > > >static __inline__ unsigned char >cgraph_edge_recursive_p (struct cgraph_edge *e) >{ > struct cgraph_node *callee = cgraph_function_or_thunk_node (e->callee, ((void *)0)); > if (e->caller->global.inlined_to) > return e->caller->global.inlined_to->decl == callee->decl; > else > return e->caller->decl == callee->decl; >} > > >static __inline__ unsigned char >decl_is_tm_clone (const_tree fndecl) >{ > struct cgraph_node *n = cgraph_get_node (fndecl); > if (n) > return n->tm_clone; > return 0; >} ># 107 "../../gcc/combine.c" 2 > > > > >static int combine_attempts; > > > >static int combine_merges; > > > >static int combine_extras; > > > >static int combine_successes; > > > >static int total_attempts, total_merges, total_extras, total_successes; ># 136 "../../gcc/combine.c" >static rtx i2mod; > > > >static rtx i2mod_old_rhs; > > > >static rtx i2mod_new_rhs; > >typedef struct reg_stat_struct { > > rtx last_death; > > > rtx last_set; ># 198 "../../gcc/combine.c" > rtx last_set_value; > > > > > int last_set_table_tick; > > > > > int last_set_label; > > > > > > > unsigned long long last_set_nonzero_bits; > char last_set_sign_bit_copies; > __extension__ enum machine_mode last_set_mode : 8; > > > > > > char last_set_invalid; ># 237 "../../gcc/combine.c" > unsigned char sign_bit_copies; > > unsigned long long nonzero_bits; > > > > > > int truncation_label; > > > > > > > __extension__ enum machine_mode truncated_to_mode : 8; >} reg_stat_type; > >typedef struct VEC_reg_stat_type_base { struct vec_prefix prefix; reg_stat_type vec[1]; } VEC_reg_stat_type_base; typedef struct VEC_reg_stat_type_none { VEC_reg_stat_type_base base; } VEC_reg_stat_type_none; static __inline__ unsigned VEC_reg_stat_type_base_length (const VEC_reg_stat_type_base *vec_) { return vec_ ? vec_->prefix.num : 0; } static __inline__ reg_stat_type *VEC_reg_stat_type_base_last (VEC_reg_stat_type_base *vec_ ) { (void)(vec_ && vec_->prefix.num); return &vec_->vec[vec_->prefix.num - 1]; } static __inline__ reg_stat_type *VEC_reg_stat_type_base_index (VEC_reg_stat_type_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->prefix.num); return &vec_->vec[ix_]; } static __inline__ int VEC_reg_stat_type_base_iterate (VEC_reg_stat_type_base *vec_, unsigned ix_, reg_stat_type **ptr) { if (vec_ && ix_ < vec_->prefix.num) { *ptr = &vec_->vec[ix_]; return 1; } else { *ptr = 0; return 0; } } static __inline__ size_t VEC_reg_stat_type_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_reg_stat_type_base, vec) + alloc_ * sizeof(reg_stat_type); } static __inline__ void VEC_reg_stat_type_base_embedded_init (VEC_reg_stat_type_base *vec_, int alloc_) { vec_->prefix.num = 0; vec_->prefix.alloc = alloc_; } static __inline__ int VEC_reg_stat_type_base_space (VEC_reg_stat_type_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->prefix.alloc - vec_->prefix.num >= (unsigned)alloc_ : !alloc_; } static __inline__ void VEC_reg_stat_type_base_splice (VEC_reg_stat_type_base *dst_, VEC_reg_stat_type_base *src_ ) { if (src_) { unsigned len_ = src_->prefix.num; (void)(dst_->prefix.num + len_ <= dst_->prefix.alloc); memcpy (&dst_->vec[dst_->prefix.num], &src_->vec[0], len_ * sizeof (reg_stat_type)); dst_->prefix.num += len_; } } static __inline__ reg_stat_type *VEC_reg_stat_type_base_quick_push (VEC_reg_stat_type_base *vec_, const reg_stat_type *obj_ ) { reg_stat_type *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); slot_ = &vec_->vec[vec_->prefix.num++]; if (obj_) *slot_ = *obj_; return slot_; } static __inline__ void VEC_reg_stat_type_base_pop (VEC_reg_stat_type_base *vec_ ) { (void)(vec_->prefix.num); --vec_->prefix.num; } static __inline__ void VEC_reg_stat_type_base_truncate (VEC_reg_stat_type_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->prefix.num >= size_ : !size_); if (vec_) vec_->prefix.num = size_; } static __inline__ reg_stat_type *VEC_reg_stat_type_base_replace (VEC_reg_stat_type_base *vec_, unsigned ix_, const reg_stat_type *obj_ ) { reg_stat_type *slot_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; if (obj_) *slot_ = *obj_; return slot_; } static __inline__ reg_stat_type *VEC_reg_stat_type_base_quick_insert (VEC_reg_stat_type_base *vec_, unsigned ix_, const reg_stat_type *obj_ ) { reg_stat_type *slot_; (void)(vec_->prefix.num < vec_->prefix.alloc); (void)(ix_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->prefix.num++ - ix_) * sizeof (reg_stat_type)); if (obj_) *slot_ = *obj_; return slot_; } static __inline__ void VEC_reg_stat_type_base_ordered_remove (VEC_reg_stat_type_base *vec_, unsigned ix_ ) { reg_stat_type *slot_; (void)(ix_ < vec_->prefix.num); slot_ = &vec_->vec[ix_]; memmove (slot_, slot_ + 1, (--vec_->prefix.num - ix_) * sizeof (reg_stat_type)); } static __inline__ void VEC_reg_stat_type_base_unordered_remove (VEC_reg_stat_type_base *vec_, unsigned ix_ ) { (void)(ix_ < vec_->prefix.num); vec_->vec[ix_] = vec_->vec[--vec_->prefix.num]; } static __inline__ void VEC_reg_stat_type_base_block_remove (VEC_reg_stat_type_base *vec_, unsigned ix_, unsigned len_ ) { reg_stat_type *slot_; (void)(ix_ + len_ <= vec_->prefix.num); slot_ = &vec_->vec[ix_]; vec_->prefix.num -= len_; memmove (slot_, slot_ + len_, (vec_->prefix.num - ix_) * sizeof (reg_stat_type)); } static __inline__ reg_stat_type *VEC_reg_stat_type_base_address (VEC_reg_stat_type_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_reg_stat_type_base_lower_bound (VEC_reg_stat_type_base *vec_, const reg_stat_type *obj_, unsigned char (*lessthan_)(const reg_stat_type *, const reg_stat_type *) ) { unsigned int len_ = VEC_reg_stat_type_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { reg_stat_type *middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_reg_stat_type_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; >typedef struct VEC_reg_stat_type_heap { VEC_reg_stat_type_base base; } VEC_reg_stat_type_heap; static __inline__ VEC_reg_stat_type_heap *VEC_reg_stat_type_heap_alloc (int alloc_ ) { return (VEC_reg_stat_type_heap *) vec_heap_o_reserve_exact (((void *)0), alloc_, __builtin_offsetof (VEC_reg_stat_type_heap, base.vec), sizeof (reg_stat_type) ); } static __inline__ VEC_reg_stat_type_heap *VEC_reg_stat_type_heap_copy (VEC_reg_stat_type_base *vec_ ) { size_t len_ = vec_ ? vec_->prefix.num : 0; VEC_reg_stat_type_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_reg_stat_type_heap *)(vec_heap_o_reserve_exact (((void *)0), len_, __builtin_offsetof (VEC_reg_stat_type_heap, base.vec), sizeof (reg_stat_type) )); new_vec_->base.prefix.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (reg_stat_type) * len_); } return new_vec_; } static __inline__ void VEC_reg_stat_type_heap_free (VEC_reg_stat_type_heap **vec_) { if (*vec_) (free) (*vec_); *vec_ = ((void *)0); } static __inline__ int VEC_reg_stat_type_heap_reserve (VEC_reg_stat_type_heap **vec_, int alloc_ ) { int extend = !VEC_reg_stat_type_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_reg_stat_type_heap *) vec_heap_o_reserve (*vec_, alloc_, __builtin_offsetof (VEC_reg_stat_type_heap, base.vec), sizeof (reg_stat_type) ); return extend; } static __inline__ int VEC_reg_stat_type_heap_reserve_exact (VEC_reg_stat_type_heap **vec_, int alloc_ ) { int extend = !VEC_reg_stat_type_base_space (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_reg_stat_type_heap *) vec_heap_o_reserve_exact (*vec_, alloc_, __builtin_offsetof (VEC_reg_stat_type_heap, base.vec), sizeof (reg_stat_type) ); return extend; } static __inline__ void VEC_reg_stat_type_heap_safe_grow (VEC_reg_stat_type_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_reg_stat_type_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_reg_stat_type_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num : 0) ); ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0)->prefix.num = size_; } static __inline__ void VEC_reg_stat_type_heap_safe_grow_cleared (VEC_reg_stat_type_heap **vec_, int size_ ) { int oldsize = VEC_reg_stat_type_base_length ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0); VEC_reg_stat_type_heap_safe_grow (vec_, size_ ); memset (&(VEC_reg_stat_type_base_address ((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0))[oldsize], 0, sizeof (reg_stat_type) * (size_ - oldsize)); } static __inline__ void VEC_reg_stat_type_heap_safe_splice (VEC_reg_stat_type_heap **dst_, VEC_reg_stat_type_base *src_ ) { if (src_) { VEC_reg_stat_type_heap_reserve_exact (dst_, src_->prefix.num ); VEC_reg_stat_type_base_splice (((__builtin_offsetof (__typeof (**dst_), base) == 0 || (*dst_)) ? &(*dst_)->base : 0), src_ ); } } static __inline__ reg_stat_type *VEC_reg_stat_type_heap_safe_push (VEC_reg_stat_type_heap **vec_, const reg_stat_type *obj_ ) { VEC_reg_stat_type_heap_reserve (vec_, 1 ); return VEC_reg_stat_type_base_quick_push (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), obj_ ); } static __inline__ reg_stat_type *VEC_reg_stat_type_heap_safe_insert (VEC_reg_stat_type_heap **vec_, unsigned ix_, const reg_stat_type *obj_ ) { VEC_reg_stat_type_heap_reserve (vec_, 1 ); return VEC_reg_stat_type_base_quick_insert (((__builtin_offsetof (__typeof (**vec_), base) == 0 || (*vec_)) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; > >static VEC_reg_stat_type_heap *reg_stat; > > > > >static int mem_last_set; > > > > >static int last_call_luid; > > > > > > > >static rtx subst_insn; ># 285 "../../gcc/combine.c" >static int subst_low_luid; > > > > >static HARD_REG_SET newpat_used_regs; > > > > > >static rtx added_links_insn; > > >static basic_block this_basic_block; >static unsigned char optimize_this_for_speed_p; > > > > >static int max_uid_known; > > > > >static int *uid_insn_cost; > > > > >struct insn_link { > rtx insn; > struct insn_link *next; >}; > >static struct insn_link **uid_log_links; ># 330 "../../gcc/combine.c" >static struct obstack insn_link_obstack; > > > >static __inline__ struct insn_link * >alloc_insn_link (rtx insn, struct insn_link *next) >{ > struct insn_link *l > = (struct insn_link *) __extension__ ({ struct obstack *__h = (&insn_link_obstack); __extension__ ({ struct obstack *__o = (__h); int __len = ((sizeof (struct insn_link))); if (__o->chunk_limit - __o->next_free < __len) _obstack_newchunk (__o, __len); ((__o)->next_free += (__len)); (void) 0; }); __extension__ ({ struct obstack *__o1 = (__h); void *value; value = (void *) __o1->object_base; if (__o1->next_free == value) __o1->maybe_empty_object = 1; __o1->next_free = (((((__o1->next_free) - (char *) 0)+__o1->alignment_mask) & ~ (__o1->alignment_mask)) + (char *) 0); if (__o1->next_free - (char *)__o1->chunk > __o1->chunk_limit - (char *)__o1->chunk) __o1->next_free = __o1->chunk_limit; __o1->object_base = __o1->next_free; value; }); }) > ; > l->insn = insn; > l->next = next; > return l; >} > > > >static int label_tick; > > > >static int label_tick_ebb_start; > > > > >static enum machine_mode nonzero_bits_mode; > > > > > > > >static int nonzero_sign_valid; > > > > > >enum undo_kind { UNDO_RTX, UNDO_INT, UNDO_MODE, UNDO_LINKS }; > >struct undo >{ > struct undo *next; > enum undo_kind kind; > union { rtx r; int i; enum machine_mode m; struct insn_link *l; } old_contents; > union { rtx *r; int *i; struct insn_link **l; } where; >}; > > > > > > > >struct undobuf >{ > struct undo *undos; > struct undo *frees; > rtx other_insn; >}; > >static struct undobuf undobuf; > > > > >static int n_occurrences; > >static rtx reg_nonzero_bits_for_combine (const_rtx, enum machine_mode, const_rtx, > enum machine_mode, > unsigned long long, > unsigned long long *); >static rtx reg_num_sign_bit_copies_for_combine (const_rtx, enum machine_mode, const_rtx, > enum machine_mode, > unsigned int, unsigned int *); >static void do_SUBST (rtx *, rtx); >static void do_SUBST_INT (int *, int); >static void init_reg_last (void); >static void setup_incoming_promotions (rtx); >static void set_nonzero_bits_and_sign_copies (rtx, const_rtx, void *); >static int cant_combine_insn_p (rtx); >static int can_combine_p (rtx, rtx, rtx, rtx, rtx, rtx, rtx *, rtx *); >static int combinable_i3pat (rtx, rtx *, rtx, rtx, rtx, int, int, rtx *); >static int contains_muldiv (rtx); >static rtx try_combine (rtx, rtx, rtx, rtx, int *, rtx); >static void undo_all (void); >static void undo_commit (void); >static rtx *find_split_point (rtx *, rtx, unsigned char); >static rtx subst (rtx, rtx, rtx, int, int, int); >static rtx combine_simplify_rtx (rtx, enum machine_mode, int, int); >static rtx simplify_if_then_else (rtx); >static rtx simplify_set (rtx); >static rtx simplify_logical (rtx); >static rtx expand_compound_operation (rtx); >static const_rtx expand_field_assignment (const_rtx); >static rtx make_extraction (enum machine_mode, rtx, long long, > rtx, unsigned long long, int, int, int); >static rtx extract_left_shift (rtx, int); >static rtx make_compound_operation (rtx, enum rtx_code); >static int get_pos_from_mask (unsigned long long, > unsigned long long *); >static rtx canon_reg_for_combine (rtx, rtx); >static rtx force_to_mode (rtx, enum machine_mode, > unsigned long long, int); >static rtx if_then_else_cond (rtx, rtx *, rtx *); >static rtx known_cond (rtx, enum rtx_code, rtx, rtx); >static int rtx_equal_for_field_assignment_p (rtx, rtx); >static rtx make_field_assignment (rtx); >static rtx apply_distributive_law (rtx); >static rtx distribute_and_simplify_rtx (rtx, int); >static rtx simplify_and_const_int_1 (enum machine_mode, rtx, > unsigned long long); >static rtx simplify_and_const_int (rtx, enum machine_mode, rtx, > unsigned long long); >static int merge_outer_ops (enum rtx_code *, long long *, enum rtx_code, > long long, enum machine_mode, int *); >static rtx simplify_shift_const_1 (enum rtx_code, enum machine_mode, rtx, int); >static rtx simplify_shift_const (rtx, enum rtx_code, enum machine_mode, rtx, > int); >static int recog_for_combine (rtx *, rtx, rtx *); >static rtx gen_lowpart_for_combine (enum machine_mode, rtx); >static enum rtx_code simplify_compare_const (enum rtx_code, rtx, rtx *); >static enum rtx_code simplify_comparison (enum rtx_code, rtx *, rtx *); >static void update_table_tick (rtx); >static void record_value_for_reg (rtx, rtx, rtx); >static void check_promoted_subreg (rtx, rtx); >static void record_dead_and_set_regs_1 (rtx, const_rtx, void *); >static void record_dead_and_set_regs (rtx); >static int get_last_value_validate (rtx *, rtx, int, int); >static rtx get_last_value (const_rtx); >static int use_crosses_set_p (const_rtx, int); >static void reg_dead_at_p_1 (rtx, const_rtx, void *); >static int reg_dead_at_p (rtx, rtx); >static void move_deaths (rtx, rtx, int, rtx, rtx *); >static int reg_bitfield_target_p (rtx, rtx); >static void distribute_notes (rtx, rtx, rtx, rtx, rtx, rtx, rtx); >static void distribute_links (struct insn_link *); >static void mark_used_regs_combine (rtx); >static void record_promoted_value (rtx, rtx); >static int unmentioned_reg_p_1 (rtx *, void *); >static unsigned char unmentioned_reg_p (rtx, rtx); >static int record_truncated_value (rtx *, void *); >static void record_truncated_values (rtx *, void *); >static unsigned char reg_truncated_to_mode (enum machine_mode, const_rtx); >static rtx gen_lowpart_or_truncate (enum machine_mode, rtx); ># 497 "../../gcc/combine.c" >static const struct rtl_hooks combine_rtl_hooks = { gen_lowpart_for_combine, gen_lowpart_for_combine, reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine, reg_truncated_to_mode }; ># 506 "../../gcc/combine.c" >static rtx >combine_split_insns (rtx pattern, rtx insn) >{ > rtx ret; > unsigned int nregs; > > ret = split_insns (pattern, insn); > nregs = max_reg_num (); > if (nregs > (VEC_reg_stat_type_base_length(((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0)))) > (VEC_reg_stat_type_heap_safe_grow_cleared(&(reg_stat),nregs )); > return ret; >} > > > > > > > >static rtx * >find_single_use_1 (rtx dest, rtx *loc) >{ > rtx x = *loc; > enum rtx_code code = ((enum rtx_code) (x)->code); > rtx *result = ((void *)0); > rtx *this_result; > int i; > const char *fmt; > > switch (code) > { > case CONST_INT: > case CONST: > case LABEL_REF: > case SYMBOL_REF: > case CONST_DOUBLE: > case CONST_VECTOR: > case CLOBBER: > return 0; > > case SET: > > > > > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) != CC0 > && ((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) != PC > && !(((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == REG) > && ! (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == SUBREG > && (((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code) == REG) > && (((((unsigned short) mode_size[((enum machine_mode) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode)]) > + ((! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8) - 1)) / (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)) > == ((((unsigned short) mode_size[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)]) > + ((! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8) - 1)) / (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8))))) > break; > > return find_single_use_1 (dest, &(((x)->u.fld[1]).rt_rtx)); > > case MEM: > case SUBREG: > return find_single_use_1 (dest, &(((x)->u.fld[0]).rt_rtx)); > > default: > break; > } > > > > > fmt = (rtx_format[(int) (code)]); > for (i = (rtx_length[(int) (code)]) - 1; i >= 0; i--) > { > if (fmt[i] == 'e') > { > if (dest == (((x)->u.fld[i]).rt_rtx) > || ((((enum rtx_code) (dest)->code) == REG) && (((enum rtx_code) ((((x)->u.fld[i]).rt_rtx))->code) == REG) > && (rhs_regno(dest)) == (rhs_regno((((x)->u.fld[i]).rt_rtx))))) > this_result = loc; > else > this_result = find_single_use_1 (dest, &(((x)->u.fld[i]).rt_rtx)); > > if (result == ((void *)0)) > result = this_result; > else if (this_result) > > return ((void *)0); > } > else if (fmt[i] == 'E') > { > int j; > > for (j = (((((x)->u.fld[i]).rt_rtvec))->num_elem) - 1; j >= 0; j--) > { > if ((((((x)->u.fld[i]).rt_rtvec))->elem[j]) == dest > || ((((enum rtx_code) (dest)->code) == REG) > && (((enum rtx_code) ((((((x)->u.fld[i]).rt_rtvec))->elem[j]))->code) == REG) > && (rhs_regno((((((x)->u.fld[i]).rt_rtvec))->elem[j]))) == (rhs_regno(dest)))) > this_result = loc; > else > this_result = find_single_use_1 (dest, &(((((x)->u.fld[i]).rt_rtvec))->elem[j])); > > if (result == ((void *)0)) > result = this_result; > else if (this_result) > return ((void *)0); > } > } > } > > return result; >} ># 633 "../../gcc/combine.c" >static rtx * >find_single_use (rtx dest, rtx insn, rtx *ploc) >{ > basic_block bb; > rtx next; > rtx *result; > struct insn_link *link; ># 656 "../../gcc/combine.c" > if (!(((enum rtx_code) (dest)->code) == REG)) > return 0; > > bb = (((insn)->u.fld[3]).rt_bb); > for (next = (((insn)->u.fld[2]).rt_rtx); > next && (((next)->u.fld[3]).rt_bb) == bb; > next = (((next)->u.fld[2]).rt_rtx)) > if (((((enum rtx_code) (next)->code) == INSN) || (((enum rtx_code) (next)->code) == DEBUG_INSN) || (((enum rtx_code) (next)->code) == JUMP_INSN) || (((enum rtx_code) (next)->code) == CALL_INSN)) && dead_or_set_p (next, dest)) > { > for ((link) = (uid_log_links[(((next)->u.fld[0]).rt_int)]); (link); (link) = (link)->next) > if (link->insn == insn) > break; > > if (link) > { > result = find_single_use_1 (dest, &(((next)->u.fld[4]).rt_rtx)); > if (ploc) > *ploc = next; > return result; > } > } > > return 0; >} > > > > > > > >static void >do_SUBST (rtx *into, rtx newval) >{ > struct undo *buf; > rtx oldval = *into; > > if (oldval == newval) > return; > > > > > > > if (((enum mode_class) mode_class[((enum machine_mode) (oldval)->mode)]) == MODE_INT > && (((enum rtx_code) (newval)->code) == CONST_INT)) > { > > > ((void)(!(((newval)->u.hwint[0]) == trunc_int_for_mode (((newval)->u.hwint[0]), ((enum machine_mode) (oldval)->mode))) ? fancy_abort ( > "../../gcc/combine.c" ># 706 "../../gcc/combine.c" > , > 707 ># 706 "../../gcc/combine.c" > , __FUNCTION__), 0 : 0)) > ; > > > > > > > > ((void)(!(!(((enum rtx_code) (oldval)->code) == SUBREG && (((enum rtx_code) ((((oldval)->u.fld[0]).rt_rtx))->code) == CONST_INT))) ? fancy_abort ( > "../../gcc/combine.c" ># 715 "../../gcc/combine.c" > , > 716 ># 715 "../../gcc/combine.c" > , __FUNCTION__), 0 : 0)) > ; > ((void)(!(!(((enum rtx_code) (oldval)->code) == ZERO_EXTEND && (((enum rtx_code) ((((oldval)->u.fld[0]).rt_rtx))->code) == CONST_INT))) ? fancy_abort ( > "../../gcc/combine.c" ># 717 "../../gcc/combine.c" > , > 718 ># 717 "../../gcc/combine.c" > , __FUNCTION__), 0 : 0)) > ; > } > > if (undobuf.frees) > buf = undobuf.frees, undobuf.frees = buf->next; > else > buf = ((struct undo *) xmalloc (sizeof (struct undo))); > > buf->kind = UNDO_RTX; > buf->where.r = into; > buf->old_contents.r = oldval; > *into = newval; > > buf->next = undobuf.undos, undobuf.undos = buf; >} > > > > > > > >static void >do_SUBST_INT (int *into, int newval) >{ > struct undo *buf; > int oldval = *into; > > if (oldval == newval) > return; > > if (undobuf.frees) > buf = undobuf.frees, undobuf.frees = buf->next; > else > buf = ((struct undo *) xmalloc (sizeof (struct undo))); > > buf->kind = UNDO_INT; > buf->where.i = into; > buf->old_contents.i = oldval; > *into = newval; > > buf->next = undobuf.undos, undobuf.undos = buf; >} ># 769 "../../gcc/combine.c" >static void >do_SUBST_MODE (rtx *into, enum machine_mode newval) >{ > struct undo *buf; > enum machine_mode oldval = ((enum machine_mode) (*into)->mode); > > if (oldval == newval) > return; > > if (undobuf.frees) > buf = undobuf.frees, undobuf.frees = buf->next; > else > buf = ((struct undo *) xmalloc (sizeof (struct undo))); > > buf->kind = UNDO_MODE; > buf->where.r = into; > buf->old_contents.m = oldval; > adjust_reg_mode (*into, newval); > > buf->next = undobuf.undos, undobuf.undos = buf; >} > > > > > > >static void >do_SUBST_LINK (struct insn_link **into, struct insn_link *newval) >{ > struct undo *buf; > struct insn_link * oldval = *into; > > if (oldval == newval) > return; > > if (undobuf.frees) > buf = undobuf.frees, undobuf.frees = buf->next; > else > buf = ((struct undo *) xmalloc (sizeof (struct undo))); > > buf->kind = UNDO_LINKS; > buf->where.l = into; > buf->old_contents.l = oldval; > *into = newval; > > buf->next = undobuf.undos, undobuf.undos = buf; >} ># 829 "../../gcc/combine.c" >static unsigned char >combine_validate_cost (rtx i0, rtx i1, rtx i2, rtx i3, rtx newpat, > rtx newi2pat, rtx newotherpat) >{ > int i0_cost, i1_cost, i2_cost, i3_cost; > int new_i2_cost, new_i3_cost; > int old_cost, new_cost; > > > i2_cost = (uid_insn_cost[(((i2)->u.fld[0]).rt_int)]); > i3_cost = (uid_insn_cost[(((i3)->u.fld[0]).rt_int)]); > > if (i1) > { > i1_cost = (uid_insn_cost[(((i1)->u.fld[0]).rt_int)]); > if (i0) > { > i0_cost = (uid_insn_cost[(((i0)->u.fld[0]).rt_int)]); > old_cost = (i0_cost > 0 && i1_cost > 0 && i2_cost > 0 && i3_cost > 0 > ? i0_cost + i1_cost + i2_cost + i3_cost : 0); > } > else > { > old_cost = (i1_cost > 0 && i2_cost > 0 && i3_cost > 0 > ? i1_cost + i2_cost + i3_cost : 0); > i0_cost = 0; > } > } > else > { > old_cost = (i2_cost > 0 && i3_cost > 0) ? i2_cost + i3_cost : 0; > i1_cost = i0_cost = 0; > } > > > new_i3_cost = insn_rtx_cost (newpat, optimize_this_for_speed_p); > if (newi2pat) > { > new_i2_cost = insn_rtx_cost (newi2pat, optimize_this_for_speed_p); > new_cost = (new_i2_cost > 0 && new_i3_cost > 0) > ? new_i2_cost + new_i3_cost : 0; > } > else > { > new_cost = new_i3_cost; > new_i2_cost = 0; > } > > if (undobuf.other_insn) > { > int old_other_cost, new_other_cost; > > old_other_cost = (uid_insn_cost[(((undobuf.other_insn)->u.fld[0]).rt_int)]); > new_other_cost = insn_rtx_cost (newotherpat, optimize_this_for_speed_p); > if (old_other_cost > 0 && new_other_cost > 0) > { > old_cost += old_other_cost; > new_cost += new_other_cost; > } > else > old_cost = 0; > } > > > > if (old_cost > 0 && new_cost > old_cost) > { > if (dump_file) > { > if (i0) > { > fprintf (dump_file, > "rejecting combination of insns %d, %d, %d and %d\n", > (((i0)->u.fld[0]).rt_int), (((i1)->u.fld[0]).rt_int), (((i2)->u.fld[0]).rt_int), > (((i3)->u.fld[0]).rt_int)); > fprintf (dump_file, "original costs %d + %d + %d + %d = %d\n", > i0_cost, i1_cost, i2_cost, i3_cost, old_cost); > } > else if (i1) > { > fprintf (dump_file, > "rejecting combination of insns %d, %d and %d\n", > (((i1)->u.fld[0]).rt_int), (((i2)->u.fld[0]).rt_int), (((i3)->u.fld[0]).rt_int)); > fprintf (dump_file, "original costs %d + %d + %d = %d\n", > i1_cost, i2_cost, i3_cost, old_cost); > } > else > { > fprintf (dump_file, > "rejecting combination of insns %d and %d\n", > (((i2)->u.fld[0]).rt_int), (((i3)->u.fld[0]).rt_int)); > fprintf (dump_file, "original costs %d + %d = %d\n", > i2_cost, i3_cost, old_cost); > } > > if (newi2pat) > { > fprintf (dump_file, "replacement costs %d + %d = %d\n", > new_i2_cost, new_i3_cost, new_cost); > } > else > fprintf (dump_file, "replacement cost %d\n", new_cost); > } > > return 0; > } > > > (uid_insn_cost[(((i2)->u.fld[0]).rt_int)]) = new_i2_cost; > (uid_insn_cost[(((i3)->u.fld[0]).rt_int)]) = new_i3_cost; > if (i1) > { > (uid_insn_cost[(((i1)->u.fld[0]).rt_int)]) = 0; > if (i0) > (uid_insn_cost[(((i0)->u.fld[0]).rt_int)]) = 0; > } > > return 1; >} > > > > >static void >delete_noop_moves (void) >{ > rtx insn, next; > basic_block bb; > > for (bb = ((cfun + 0))->cfg->x_entry_block_ptr->next_bb; bb != ((cfun + 0))->cfg->x_exit_block_ptr; bb = bb->next_bb) > { > for (insn = (bb)->il.rtl->head_; insn != ((((bb)->il.rtl->end_)->u.fld[2]).rt_rtx); insn = next) > { > next = (((insn)->u.fld[2]).rt_rtx); > if (((((enum rtx_code) (insn)->code) == INSN) || (((enum rtx_code) (insn)->code) == DEBUG_INSN) || (((enum rtx_code) (insn)->code) == JUMP_INSN) || (((enum rtx_code) (insn)->code) == CALL_INSN)) && noop_move_p (insn)) > { > if (dump_file) > fprintf (dump_file, "deleting noop move %d\n", (((insn)->u.fld[0]).rt_int)); > > delete_insn_and_edges (insn); > } > } > } >} > > > > >static void >create_log_links (void) >{ > basic_block bb; > rtx *next_use, insn; > df_ref *def_vec, *use_vec; > > next_use = ((rtx *) xcalloc ((max_reg_num ()), sizeof (rtx))); ># 995 "../../gcc/combine.c" > for (bb = ((cfun + 0))->cfg->x_entry_block_ptr->next_bb; bb != ((cfun + 0))->cfg->x_exit_block_ptr; bb = bb->next_bb) > { > for ((insn) = (bb)->il.rtl->end_; (insn) && (insn) != ((((bb)->il.rtl->head_)->u.fld[1]).rt_rtx); (insn) = (((insn)->u.fld[1]).rt_rtx)) > { > if (!(((((enum rtx_code) (insn)->code) == INSN) || (((enum rtx_code) (insn)->code) == DEBUG_INSN) || (((enum rtx_code) (insn)->code) == JUMP_INSN) || (((enum rtx_code) (insn)->code) == CALL_INSN)) && !(((enum rtx_code) (insn)->code) == DEBUG_INSN))) > continue; > > > ((void)(!(!(uid_log_links[(((insn)->u.fld[0]).rt_int)])) ? fancy_abort ("../../gcc/combine.c", 1003, __FUNCTION__), 0 : 0)); > > for (def_vec = ((((df->insns[((((insn)->u.fld[0]).rt_int))]))->defs)); *def_vec; def_vec++) > { > df_ref def = *def_vec; > int regno = ((def)->base.regno); > rtx use_insn; > > if (!next_use[regno]) > continue; > > > if (((def)->base.flags) & DF_REF_PRE_POST_MODIFY) > continue; > > > if ((regno == 113 > && (! reload_completed || ((&x_rtl)->frame_pointer_needed))) > > || (regno == 31 > && (! reload_completed || ((&x_rtl)->frame_pointer_needed))) > > > || (regno == 67 && ((&default_target_hard_regs)->x_fixed_regs)[regno]) > > ) > continue; > > use_insn = next_use[regno]; > if ((((use_insn)->u.fld[3]).rt_bb) == bb) > { > > > > > > > > if (regno >= 114 > || asm_noperands ((((use_insn)->u.fld[4]).rt_rtx)) < 0) > { > > struct insn_link *links; > for ((links) = (uid_log_links[(((use_insn)->u.fld[0]).rt_int)]); (links); (links) = (links)->next) > if (insn == links->insn) > break; > > if (!links) > (uid_log_links[(((use_insn)->u.fld[0]).rt_int)]) > = alloc_insn_link (insn, (uid_log_links[(((use_insn)->u.fld[0]).rt_int)])); > } > } > next_use[regno] = (rtx) 0; > } > > for (use_vec = ((((df->insns[((((insn)->u.fld[0]).rt_int))]))->uses)); *use_vec; use_vec++) > { > df_ref use = *use_vec; > int regno = ((use)->base.regno); > > > > if (((use)->base.flags) & DF_REF_CALL_STACK_USAGE) > continue; > > next_use[regno] = insn; > } > } > } > > free (next_use); >} ># 1083 "../../gcc/combine.c" >static unsigned char >insn_a_feeds_b (rtx a, rtx b) >{ > struct insn_link *links; > for ((links) = (uid_log_links[(((b)->u.fld[0]).rt_int)]); (links); (links) = (links)->next) > if (links->insn == a) > return 1; > > > > > return 0; >} > > > > > > >static int >combine_instructions (rtx f, unsigned int nregs) >{ > rtx insn, next; > > > > struct insn_link *links, *nextlinks; > rtx first; > basic_block last_bb; > > int new_direct_jump_p = 0; > > for (first = f; first && !((((enum rtx_code) (first)->code) == INSN) || (((enum rtx_code) (first)->code) == DEBUG_INSN) || (((enum rtx_code) (first)->code) == JUMP_INSN) || (((enum rtx_code) (first)->code) == CALL_INSN)); ) > first = (((first)->u.fld[2]).rt_rtx); > if (!first) > return 0; > > combine_attempts = 0; > combine_merges = 0; > combine_extras = 0; > combine_successes = 0; > > rtl_hooks = combine_rtl_hooks; > > (VEC_reg_stat_type_heap_safe_grow_cleared(&(reg_stat),nregs )); > > init_recog_no_volatile (); > > > max_uid_known = get_max_uid (); > uid_log_links = ((struct insn_link * *) xcalloc ((max_uid_known + 1), sizeof (struct insn_link *))); > uid_insn_cost = ((int *) xcalloc ((max_uid_known + 1), sizeof (int))); > _obstack_begin ((&insn_link_obstack), 0, 0, ((void *(*) (long)) xmalloc), ((void (*) (void *)) free)); > > nonzero_bits_mode = mode_for_size ((8 * 8), MODE_INT, 0); > > > > > nonzero_sign_valid = 0; > label_tick = label_tick_ebb_start = 1; ># 1152 "../../gcc/combine.c" > setup_incoming_promotions (first); > > > last_bb = ((cfun + 0)->cfg->x_entry_block_ptr); > > create_log_links (); > for (this_basic_block = ((cfun + 0))->cfg->x_entry_block_ptr->next_bb; this_basic_block != ((cfun + 0))->cfg->x_exit_block_ptr; this_basic_block = this_basic_block->next_bb) > { > optimize_this_for_speed_p = optimize_bb_for_speed_p (this_basic_block); > last_call_luid = 0; > mem_last_set = -1; > > label_tick++; > if (!single_pred_p (this_basic_block) > || single_pred (this_basic_block) != last_bb) > label_tick_ebb_start = label_tick; > last_bb = this_basic_block; > > for ((insn) = (this_basic_block)->il.rtl->head_; (insn) && (insn) != ((((this_basic_block)->il.rtl->end_)->u.fld[2]).rt_rtx); (insn) = (((insn)->u.fld[2]).rt_rtx)) > if (((((enum rtx_code) (insn)->code) == INSN) || (((enum rtx_code) (insn)->code) == DEBUG_INSN) || (((enum rtx_code) (insn)->code) == JUMP_INSN) || (((enum rtx_code) (insn)->code) == CALL_INSN)) && (((insn)->u.fld[3]).rt_bb)) > { > > rtx links; > > > subst_low_luid = ((((df->insns[((((insn)->u.fld[0]).rt_int))]))->luid)); > subst_insn = insn; > > note_stores ((((insn)->u.fld[4]).rt_rtx), set_nonzero_bits_and_sign_copies, > insn); > record_dead_and_set_regs (insn); > > > for (links = (((insn)->u.fld[7]).rt_rtx); links; links = (((links)->u.fld[1]).rt_rtx)) > if (((enum reg_note) ((enum machine_mode) (links)->mode)) == REG_INC) > set_nonzero_bits_and_sign_copies ((((links)->u.fld[0]).rt_rtx), (rtx) 0, > insn); > > > > if ((((enum rtx_code) (insn)->code) == INSN)) > (uid_insn_cost[(((insn)->u.fld[0]).rt_int)]) = insn_rtx_cost ((((insn)->u.fld[4]).rt_rtx), > optimize_this_for_speed_p); > if (dump_file) > fprintf(dump_file, "insn_cost %d: %d\n", > (((insn)->u.fld[0]).rt_int), (uid_insn_cost[(((insn)->u.fld[0]).rt_int)])); > } > } > > nonzero_sign_valid = 1; > > > label_tick = label_tick_ebb_start = 1; > init_reg_last (); > setup_incoming_promotions (first); > last_bb = ((cfun + 0)->cfg->x_entry_block_ptr); > > for (this_basic_block = ((cfun + 0))->cfg->x_entry_block_ptr->next_bb; this_basic_block != ((cfun + 0))->cfg->x_exit_block_ptr; this_basic_block = this_basic_block->next_bb) > { > rtx last_combined_insn = (rtx) 0; > optimize_this_for_speed_p = optimize_bb_for_speed_p (this_basic_block); > last_call_luid = 0; > mem_last_set = -1; > > label_tick++; > if (!single_pred_p (this_basic_block) > || single_pred (this_basic_block) != last_bb) > label_tick_ebb_start = label_tick; > last_bb = this_basic_block; > > rtl_profile_for_bb (this_basic_block); > for (insn = (this_basic_block)->il.rtl->head_; > insn != ((((this_basic_block)->il.rtl->end_)->u.fld[2]).rt_rtx); > insn = next ? next : (((insn)->u.fld[2]).rt_rtx)) > { > next = 0; > if ((((((enum rtx_code) (insn)->code) == INSN) || (((enum rtx_code) (insn)->code) == DEBUG_INSN) || (((enum rtx_code) (insn)->code) == JUMP_INSN) || (((enum rtx_code) (insn)->code) == CALL_INSN)) && !(((enum rtx_code) (insn)->code) == DEBUG_INSN))) > { > while (last_combined_insn > && (((last_combined_insn))->volatil)) > last_combined_insn = (((last_combined_insn)->u.fld[1]).rt_rtx); > if (last_combined_insn == (rtx) 0 > || (((enum rtx_code) (last_combined_insn)->code) == BARRIER) > || (((last_combined_insn)->u.fld[3]).rt_bb) != this_basic_block > || ((((df->insns[((((last_combined_insn)->u.fld[0]).rt_int))]))->luid)) <= ((((df->insns[((((insn)->u.fld[0]).rt_int))]))->luid))) > last_combined_insn = insn; > > > > check_promoted_subreg (insn, (((insn)->u.fld[4]).rt_rtx)); > > > > > note_uses (&(((insn)->u.fld[4]).rt_rtx), record_truncated_values, ((void *)0)); > > > > for ((links) = (uid_log_links[(((insn)->u.fld[0]).rt_int)]); (links); (links) = (links)->next) > if ((next = try_combine (insn, links->insn, (rtx) 0, > (rtx) 0, &new_direct_jump_p, > last_combined_insn)) != 0) > goto retry; > > > > for ((links) = (uid_log_links[(((insn)->u.fld[0]).rt_int)]); (links); (links) = (links)->next) > { > rtx link = links->insn; > > > > if ((((enum rtx_code) (link)->code) == NOTE)) > continue; > > for ((nextlinks) = (uid_log_links[(((link)->u.fld[0]).rt_int)]); (nextlinks); (nextlinks) = (nextlinks)->next) > if ((next = try_combine (insn, link, nextlinks->insn, > (rtx) 0, &new_direct_jump_p, > last_combined_insn)) != 0) > goto retry; > } ># 1337 "../../gcc/combine.c" > for ((links) = (uid_log_links[(((insn)->u.fld[0]).rt_int)]); (links); (links) = (links)->next) > for (nextlinks = links->next; nextlinks; > nextlinks = nextlinks->next) > if ((next = try_combine (insn, links->insn, > nextlinks->insn, (rtx) 0, > &new_direct_jump_p, > last_combined_insn)) != 0) > goto retry; > > > for ((links) = (uid_log_links[(((insn)->u.fld[0]).rt_int)]); (links); (links) = (links)->next) > { > struct insn_link *next1; > rtx link = links->insn; > > > > if ((((enum rtx_code) (link)->code) == NOTE)) > continue; > > for ((next1) = (uid_log_links[(((link)->u.fld[0]).rt_int)]); (next1); (next1) = (next1)->next) > { > rtx link1 = next1->insn; > if ((((enum rtx_code) (link1)->code) == NOTE)) > continue; > > for ((nextlinks) = (uid_log_links[(((link1)->u.fld[0]).rt_int)]); (nextlinks); (nextlinks) = (nextlinks)->next) > if ((next = try_combine (insn, link, link1, > nextlinks->insn, > &new_direct_jump_p, > last_combined_insn)) != 0) > goto retry; > > for (nextlinks = next1->next; nextlinks; > nextlinks = nextlinks->next) > if ((next = try_combine (insn, link, link1, > nextlinks->insn, > &new_direct_jump_p, > last_combined_insn)) != 0) > goto retry; > } > > for (next1 = links->next; next1; next1 = next1->next) > { > rtx link1 = next1->insn; > if ((((enum rtx_code) (link1)->code) == NOTE)) > continue; > > for ((nextlinks) = (uid_log_links[(((link)->u.fld[0]).rt_int)]); (nextlinks); (nextlinks) = (nextlinks)->next) > if ((next = try_combine (insn, link, link1, > nextlinks->insn, > &new_direct_jump_p, > last_combined_insn)) != 0) > goto retry; > > for ((nextlinks) = (uid_log_links[(((link1)->u.fld[0]).rt_int)]); (nextlinks); (nextlinks) = (nextlinks)->next) > if ((next = try_combine (insn, link, link1, > nextlinks->insn, > &new_direct_jump_p, > last_combined_insn)) != 0) > goto retry; > } > } > > > for ((links) = (uid_log_links[(((insn)->u.fld[0]).rt_int)]); (links); (links) = (links)->next) > { > rtx set, note; > rtx temp = links->insn; > if ((set = (((((enum rtx_code) (temp)->code) == INSN) || (((enum rtx_code) (temp)->code) == DEBUG_INSN) || (((enum rtx_code) (temp)->code) == JUMP_INSN) || (((enum rtx_code) (temp)->code) == CALL_INSN)) ? (((enum rtx_code) ((((temp)->u.fld[4]).rt_rtx))->code) == SET ? (((temp)->u.fld[4]).rt_rtx) : single_set_2 (temp, (((temp)->u.fld[4]).rt_rtx))) : (rtx) 0)) != 0 > && (note = find_reg_equal_equiv_note (temp)) != 0 > && (note = (((note)->u.fld[0]).rt_rtx), ((enum rtx_code) (note)->code)) != EXPR_LIST > > > && ! unmentioned_reg_p (note, (((set)->u.fld[1]).rt_rtx)) > && (((enum machine_mode) (note)->mode) == VOIDmode > ? (((enum mode_class) mode_class[((enum machine_mode) ((((set)->u.fld[0]).rt_rtx))->mode)]) == MODE_INT || ((enum mode_class) mode_class[((enum machine_mode) ((((set)->u.fld[0]).rt_rtx))->mode)]) == MODE_PARTIAL_INT) > : ((enum machine_mode) ((((set)->u.fld[0]).rt_rtx))->mode) == ((enum machine_mode) (note)->mode))) > { > > > > rtx orig = (((set)->u.fld[1]).rt_rtx); > (((set)->u.fld[1]).rt_rtx) = note; > i2mod = temp; > i2mod_old_rhs = copy_rtx (orig); > i2mod_new_rhs = copy_rtx (note); > next = try_combine (insn, i2mod, (rtx) 0, (rtx) 0, > &new_direct_jump_p, > last_combined_insn); > i2mod = (rtx) 0; > if (next) > goto retry; > (((set)->u.fld[1]).rt_rtx) = orig; > } > } > > if (!(((enum rtx_code) (insn)->code) == NOTE)) > record_dead_and_set_regs (insn); > > retry: > ; > } > } > } > > default_rtl_profile (); > clear_bb_flags (); > new_direct_jump_p |= purge_all_dead_edges (); > delete_noop_moves (); > > > __extension__ ({ struct obstack *__o = (&insn_link_obstack); void *__obj = (void *) (((void *)0)); if (__obj > (void *)__o->chunk && __obj < (void *)__o->chunk_limit) __o->next_free = __o->object_base = (char *) __obj; else (obstack_free) (__o, __obj); }); > free (uid_log_links); > free (uid_insn_cost); > (VEC_reg_stat_type_heap_free(®_stat)); > > { > struct undo *undo, *next; > for (undo = undobuf.frees; undo; undo = next) > { > next = undo->next; > free (undo); > } > undobuf.frees = 0; > } > > total_attempts += combine_attempts; > total_merges += combine_merges; > total_extras += combine_extras; > total_successes += combine_successes; > > nonzero_sign_valid = 0; > rtl_hooks = general_rtl_hooks; > > > init_recog (); > > return new_direct_jump_p; >} > > > >static void >init_reg_last (void) >{ > unsigned int i; > reg_stat_type *p; > > for (i = 0; (VEC_reg_stat_type_base_iterate(((__builtin_offsetof (__typeof (*(reg_stat)), base) == 0 || ((reg_stat))) ? &((reg_stat))->base : 0),(i),&((p)))); ++(i)) > memset (p, 0, __builtin_offsetof (reg_stat_type, sign_bit_copies)); >} > > > >static void >setup_incoming_promotions (rtx first) >{ > tree arg; > unsigned char strictly_local = 0; > > for (arg = ((current_function_decl)->decl_non_common.arguments); arg; > arg = ((((arg))->common.chain))) > { > rtx x, reg = ((arg)->parm_decl.incoming_rtl); > int uns1, uns3; > enum machine_mode mode1, mode2, mode3, mode4; > > > if (!(((enum rtx_code) (reg)->code) == REG)) > continue; > > > > > > strictly_local = cgraph_local_info (current_function_decl)->local; > > > > mode1 = (((enum tree_code) ((((arg)->typed.type)))->base.code) == VECTOR_TYPE ? vector_type_mode (((arg)->typed.type)) : (((arg)->typed.type))->type_common.mode); > uns1 = ((((arg)->typed.type))->base.unsigned_flag); > > > > mode2 = (((enum tree_code) ((((arg)->decl_common.initial)))->base.code) == VECTOR_TYPE ? vector_type_mode (((arg)->decl_common.initial)) : (((arg)->decl_common.initial))->type_common.mode); > uns3 = ((((arg)->decl_common.initial))->base.unsigned_flag); > > > > mode3 = promote_function_mode (((arg)->decl_common.initial), mode2, &uns3, > (((cfun + 0)->decl)->typed.type), 0); > > > mode4 = ((enum machine_mode) (reg)->mode); > > > > if (mode1 == mode3) > continue; > > > if (mode3 != mode4) > continue; > > if (mode1 == mode2) > ; > > > > > else if (!strictly_local) > continue; > > > > > else if (uns1) > uns3 = 1; > else if (uns3) > continue; > > > > > x = gen_rtx_fmt_e_stat (CLOBBER, (mode1), ((const_int_rtx[64])) ); > x = gen_rtx_fmt_e_stat ((uns3 ? ZERO_EXTEND : SIGN_EXTEND), mode3, x ); > record_value_for_reg (reg, first, x); > } >} ># 1579 "../../gcc/combine.c" >static void >set_nonzero_bits_and_sign_copies (rtx x, const_rtx set, void *data) >{ > rtx insn = (rtx) data; > unsigned int num; > > if ((((enum rtx_code) (x)->code) == REG) > && (rhs_regno(x)) >= 114 > > > && ! bitmap_bit_p ((&(df_lr_get_bb_info((((cfun + 0)->cfg->x_entry_block_ptr)->next_bb)->index))->in), (rhs_regno(x))) > > && ((((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_INT || ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_PARTIAL_INT) && mode_precision[((enum machine_mode) (x)->mode)] <= (8 * 8))) > { > reg_stat_type *rsp = (VEC_reg_stat_type_base_index(((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),(rhs_regno(x)) )); > > if (set == 0 || ((enum rtx_code) (set)->code) == CLOBBER) > { > rsp->nonzero_bits = mode_mask_array[((enum machine_mode) (x)->mode)]; > rsp->sign_bit_copies = 1; > return; > } ># 1615 "../../gcc/combine.c" > if (insn > && reg_referenced_p (x, (((insn)->u.fld[4]).rt_rtx)) > && !bitmap_bit_p ((&(df_lr_get_bb_info(((((insn)->u.fld[3]).rt_bb))->index))->in), (rhs_regno(x))) > ) > { > struct insn_link *link; > > for ((link) = (uid_log_links[(((insn)->u.fld[0]).rt_int)]); (link); (link) = (link)->next) > if (dead_or_set_p (link->insn, x)) > break; > if (!link) > { > rsp->nonzero_bits = mode_mask_array[((enum machine_mode) (x)->mode)]; > rsp->sign_bit_copies = 1; > return; > } > } > > > > set = expand_field_assignment (set); > > > > > if ((((set)->u.fld[0]).rt_rtx) == x > || (paradoxical_subreg_p ((((set)->u.fld[0]).rt_rtx)) > && ((((((set)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx) == x)) > { > rtx src = (((set)->u.fld[1]).rt_rtx); ># 1656 "../../gcc/combine.c" > if (mode_precision[((enum machine_mode) (x)->mode)] < (8 * (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)) > && (((enum rtx_code) (src)->code) == CONST_INT) > && ((src)->u.hwint[0]) > 0 > && val_signbit_known_set_p (((enum machine_mode) (x)->mode), ((src)->u.hwint[0]))) > src = gen_rtx_CONST_INT (VOIDmode, (((src)->u.hwint[0]) | ~mode_mask_array[((enum machine_mode) (x)->mode)])); > > > > if (rsp->nonzero_bits != ~(unsigned long long) 0) > rsp->nonzero_bits |= nonzero_bits (src, nonzero_bits_mode); > num = num_sign_bit_copies ((((set)->u.fld[1]).rt_rtx), ((enum machine_mode) (x)->mode)); > if (rsp->sign_bit_copies == 0 > || rsp->sign_bit_copies > num) > rsp->sign_bit_copies = num; > } > else > { > rsp->nonzero_bits = mode_mask_array[((enum machine_mode) (x)->mode)]; > rsp->sign_bit_copies = 1; > } > } >} ># 1690 "../../gcc/combine.c" >static int >can_combine_p (rtx insn, rtx i3, rtx pred __attribute__ ((__unused__)), > rtx pred2 __attribute__ ((__unused__)), rtx succ, rtx succ2, > rtx *pdest, rtx *psrc) >{ > int i; > const_rtx set = 0; > rtx src, dest; > rtx p; > > rtx link; > > unsigned char all_adjacent = 1; > int (*is_volatile_p) (const_rtx); > > if (succ) > { > if (succ2) > { > if (next_active_insn (succ2) != i3) > all_adjacent = 0; > if (next_active_insn (succ) != succ2) > all_adjacent = 0; > } > else if (next_active_insn (succ) != i3) > all_adjacent = 0; > if (next_active_insn (insn) != succ) > all_adjacent = 0; > } > else if (next_active_insn (insn) != i3) > all_adjacent = 0; ># 1737 "../../gcc/combine.c" > if (((enum rtx_code) ((((insn)->u.fld[4]).rt_rtx))->code) == SET) > set = (((insn)->u.fld[4]).rt_rtx); > else if (((enum rtx_code) ((((insn)->u.fld[4]).rt_rtx))->code) == PARALLEL > && ((enum rtx_code) (((((((((insn)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->elem[0]))->code) == SET) > { > for (i = 0; i < ((((((((insn)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->num_elem); i++) > { > rtx elt = ((((((((insn)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->elem[i]); > > switch (((enum rtx_code) (elt)->code)) > { > > > case USE: ># 1764 "../../gcc/combine.c" > if ((((enum rtx_code) ((((elt)->u.fld[0]).rt_rtx))->code) == REG) > && ((enum rtx_code) ((((i3)->u.fld[4]).rt_rtx))->code) == PARALLEL) > { > rtx i3pat = (((i3)->u.fld[4]).rt_rtx); > int i = (((((i3pat)->u.fld[0]).rt_rtvec))->num_elem) - 1; > unsigned int regno = (rhs_regno((((elt)->u.fld[0]).rt_rtx))); > > do > { > rtx i3elt = (((((i3pat)->u.fld[0]).rt_rtvec))->elem[i]); > > if (((enum rtx_code) (i3elt)->code) == USE > && (((enum rtx_code) ((((i3elt)->u.fld[0]).rt_rtx))->code) == REG) > && ((rhs_regno((((i3elt)->u.fld[0]).rt_rtx))) == regno > ? reg_set_between_p ((((elt)->u.fld[0]).rt_rtx), > (((insn)->u.fld[1]).rt_rtx), i3) > : regno >= 114)) > return 0; > } > while (--i >= 0); > } > break; > > > case CLOBBER: > break; > > case SET: > > > if (find_reg_note (insn, REG_UNUSED, (((elt)->u.fld[0]).rt_rtx)) > && insn_nothrow_p (insn) > && !side_effects_p (elt)) > break; > > > > if (set) > return 0; > > set = elt; > break; > > default: > > return 0; > } > } > > if (set == 0 > > > || ((enum rtx_code) ((((set)->u.fld[1]).rt_rtx))->code) == ASM_OPERANDS) > return 0; > } > else > return 0; > > if (set == 0) > return 0; > > > > subst_low_luid = ((((df->insns[((((insn)->u.fld[0]).rt_int))]))->luid)); > > set = expand_field_assignment (set); > src = (((set)->u.fld[1]).rt_rtx), dest = (((set)->u.fld[0]).rt_rtx); > > > if (dest == (((&default_target_rtl)->x_global_rtl)[GR_STACK_POINTER]) > > > || (rtx_equal_p (src, dest) && find_reg_note (insn, REG_EQUAL, (rtx) 0)) > > || ((enum rtx_code) (src)->code) == ASM_OPERANDS > > || ((enum rtx_code) (src)->code) == CALL > > || ((((enum rtx_code) (i3)->code) == CALL_INSN) > && (find_reg_fusage (i3, USE, dest) > || ((((enum rtx_code) (dest)->code) == REG) > && (rhs_regno(dest)) < 114 > && global_regs[(rhs_regno(dest))]))) > > || ((dest) != (rtx) 0 && (((enum rtx_code) ((dest))->code) == REG) ? find_regno_note ((i3), REG_INC, (rhs_regno(dest))) : find_reg_note ((i3), REG_INC, (dest))) > || (succ && ((dest) != (rtx) 0 && (((enum rtx_code) ((dest))->code) == REG) ? find_regno_note ((succ), REG_INC, (rhs_regno(dest))) : find_reg_note ((succ), REG_INC, (dest)))) > || (succ2 && ((dest) != (rtx) 0 && (((enum rtx_code) ((dest))->code) == REG) ? find_regno_note ((succ2), REG_INC, (rhs_regno(dest))) : find_reg_note ((succ2), REG_INC, (dest)))) > > || ((((enum rtx_code) (i3)->code) == JUMP_INSN) && find_reg_note (i3, REG_NON_LOCAL_GOTO, (rtx) 0)) > > || (!all_adjacent > && ((succ2 > && (reg_used_between_p (dest, succ2, i3) > || reg_used_between_p (dest, succ, succ2))) > || (!succ2 && succ && reg_used_between_p (dest, succ, i3)))) ># 1868 "../../gcc/combine.c" > || (! all_adjacent > && (((!(((enum rtx_code) (src)->code) == MEM) > || ! find_reg_note (insn, REG_EQUIV, src)) > && use_crosses_set_p (src, ((((df->insns[((((insn)->u.fld[0]).rt_int))]))->luid)))) > || (((enum rtx_code) (src)->code) == ASM_OPERANDS && (((src))->volatil)) > || ((enum rtx_code) (src)->code) == UNSPEC_VOLATILE)) > > > > > > || (((((df->insns[((((insn)->u.fld[0]).rt_int))]))->luid)) < last_call_luid && ! ((rtx_class[(int) (((enum rtx_code) (src)->code))]) == RTX_CONST_OBJ))) > return 0; > > > if ((((enum rtx_code) (dest)->code) == REG)) > { ># 1894 "../../gcc/combine.c" > if ((((enum rtx_code) (src)->code) == REG) > && (((rhs_regno(dest)) < 114 > && ! rs6000_hard_regno_mode_ok_p[(int)(((enum machine_mode) (dest)->mode))][(rhs_regno(dest))]) > > > > > > > > || ((rhs_regno(src)) < 114 > && ! rs6000_hard_regno_mode_ok_p[(int)(((enum machine_mode) (src)->mode))][(rhs_regno(src))]))) > return 0; > } > else if (((enum rtx_code) (dest)->code) != CC0) > return 0; > > > if (((enum rtx_code) ((((i3)->u.fld[4]).rt_rtx))->code) == PARALLEL) > for (i = ((((((((i3)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->num_elem) - 1; i >= 0; i--) > if (((enum rtx_code) (((((((((i3)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->elem[i]))->code) == CLOBBER) > { > > > rtx reg = (((((((((((i3)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->elem[i]))->u.fld[0]).rt_rtx); > if (rtx_equal_p (reg, dest)) > return 0; ># 1929 "../../gcc/combine.c" > if (!(((enum rtx_code) (reg)->code) == REG) > || (rhs_regno(reg)) >= 114 > || !((&default_target_hard_regs)->x_fixed_regs)[(rhs_regno(reg))]) > if (reg_overlap_mentioned_p (reg, src)) > return 0; > } > > > > > if (((enum rtx_code) (src)->code) == ASM_OPERANDS || volatile_refs_p (src)) > { > > if (succ2 != 0 && volatile_refs_p ((((succ2)->u.fld[4]).rt_rtx))) > return 0; > if (succ != 0 && volatile_refs_p ((((succ)->u.fld[4]).rt_rtx))) > return 0; > > } > > > > > if (((enum rtx_code) (src)->code) == ASM_OPERANDS > && (((enum rtx_code) (dest)->code) == REG) && (rhs_regno(dest)) < 114) > return 0; > > > > > > > is_volatile_p = volatile_refs_p ((((insn)->u.fld[4]).rt_rtx)) > ? volatile_refs_p > : volatile_insn_p; > > for (p = (((insn)->u.fld[2]).rt_rtx); p != i3; p = (((p)->u.fld[2]).rt_rtx)) > if (((((enum rtx_code) (p)->code) == INSN) || (((enum rtx_code) (p)->code) == DEBUG_INSN) || (((enum rtx_code) (p)->code) == JUMP_INSN) || (((enum rtx_code) (p)->code) == CALL_INSN)) && p != succ && p != succ2 && is_volatile_p ((((p)->u.fld[4]).rt_rtx))) > return 0; ># 1976 "../../gcc/combine.c" > for (link = (((insn)->u.fld[7]).rt_rtx); link; link = (((link)->u.fld[1]).rt_rtx)) > if (((enum reg_note) ((enum machine_mode) (link)->mode)) == REG_INC > && ((((enum rtx_code) (i3)->code) == JUMP_INSN) > || reg_used_between_p ((((link)->u.fld[0]).rt_rtx), insn, i3) > || (pred != (rtx) 0 > && reg_overlap_mentioned_p ((((link)->u.fld[0]).rt_rtx), (((pred)->u.fld[4]).rt_rtx))) > || (pred2 != (rtx) 0 > && reg_overlap_mentioned_p ((((link)->u.fld[0]).rt_rtx), (((pred2)->u.fld[4]).rt_rtx))) > || (succ != (rtx) 0 > && reg_overlap_mentioned_p ((((link)->u.fld[0]).rt_rtx), (((succ)->u.fld[4]).rt_rtx))) > || (succ2 != (rtx) 0 > && reg_overlap_mentioned_p ((((link)->u.fld[0]).rt_rtx), (((succ2)->u.fld[4]).rt_rtx))) > || reg_overlap_mentioned_p ((((link)->u.fld[0]).rt_rtx), (((i3)->u.fld[4]).rt_rtx)))) > return 0; ># 2011 "../../gcc/combine.c" > *pdest = dest; > *psrc = src; > > return 1; >} ># 2055 "../../gcc/combine.c" >static int >combinable_i3pat (rtx i3, rtx *loc, rtx i2dest, rtx i1dest, rtx i0dest, > int i1_not_in_src, int i0_not_in_src, rtx *pi3dest_killed) >{ > rtx x = *loc; > > if (((enum rtx_code) (x)->code) == SET) > { > rtx set = x ; > rtx dest = (((set)->u.fld[0]).rt_rtx); > rtx src = (((set)->u.fld[1]).rt_rtx); > rtx inner_dest = dest; > rtx subdest; > > while (((enum rtx_code) (inner_dest)->code) == STRICT_LOW_PART > || ((enum rtx_code) (inner_dest)->code) == SUBREG > || ((enum rtx_code) (inner_dest)->code) == ZERO_EXTRACT) > inner_dest = (((inner_dest)->u.fld[0]).rt_rtx); > > > > > > if ((inner_dest != dest && > (!(((enum rtx_code) (inner_dest)->code) == MEM) > || rtx_equal_p (i2dest, inner_dest) > || (i1dest && rtx_equal_p (i1dest, inner_dest)) > || (i0dest && rtx_equal_p (i0dest, inner_dest))) > && (reg_overlap_mentioned_p (i2dest, inner_dest) > || (i1dest && reg_overlap_mentioned_p (i1dest, inner_dest)) > || (i0dest && reg_overlap_mentioned_p (i0dest, inner_dest)))) ># 2097 "../../gcc/combine.c" > || ((((enum rtx_code) (inner_dest)->code) == REG) > && (rhs_regno(inner_dest)) < 114 > && (! rs6000_hard_regno_mode_ok_p[(int)(((enum machine_mode) (inner_dest)->mode))][(rhs_regno(inner_dest))] > )) > || (i1_not_in_src && reg_overlap_mentioned_p (i1dest, src)) > || (i0_not_in_src && reg_overlap_mentioned_p (i0dest, src))) > return 0; ># 2112 "../../gcc/combine.c" > subdest = dest; > if (((enum rtx_code) (subdest)->code) == SUBREG > && (((unsigned short) mode_size[((enum machine_mode) (subdest)->mode)]) > >= ((unsigned short) mode_size[((enum machine_mode) ((((subdest)->u.fld[0]).rt_rtx))->mode)]))) > subdest = (((subdest)->u.fld[0]).rt_rtx); > if (pi3dest_killed > && (((enum rtx_code) (subdest)->code) == REG) > && reg_referenced_p (subdest, (((i3)->u.fld[4]).rt_rtx)) > && (rhs_regno(subdest)) != 113 > > && (rhs_regno(subdest)) != 31 > > > && ((rhs_regno(subdest)) != 67 > || ! ((&default_target_hard_regs)->x_fixed_regs) [(rhs_regno(subdest))]) > > && (rhs_regno(subdest)) != 1) > { > if (*pi3dest_killed) > return 0; > > *pi3dest_killed = subdest; > } > } > > else if (((enum rtx_code) (x)->code) == PARALLEL) > { > int i; > > for (i = 0; i < (((((x)->u.fld[0]).rt_rtvec))->num_elem); i++) > if (! combinable_i3pat (i3, &(((((x)->u.fld[0]).rt_rtvec))->elem[i]), i2dest, i1dest, i0dest, > i1_not_in_src, i0_not_in_src, pi3dest_killed)) > return 0; > } > > return 1; >} > > > > >static int >contains_muldiv (rtx x) >{ > switch (((enum rtx_code) (x)->code)) > { > case MOD: case DIV: case UMOD: case UDIV: > return 1; > > case MULT: > return ! ((((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && exact_log2 (((unsigned long long) (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]))) >= 0); > default: > if ((((rtx_class[(int) (((enum rtx_code) (x)->code))]) & (~3)) == (RTX_COMPARE & (~3)))) > return contains_muldiv ((((x)->u.fld[0]).rt_rtx)) > || contains_muldiv ((((x)->u.fld[1]).rt_rtx)); > > if (((rtx_class[(int) (((enum rtx_code) (x)->code))]) == RTX_UNARY)) > return contains_muldiv ((((x)->u.fld[0]).rt_rtx)); > > return 0; > } >} > > > > > >static int >cant_combine_insn_p (rtx insn) >{ > rtx set; > rtx src, dest; > > > > > if (! ((((enum rtx_code) (insn)->code) == INSN) || (((enum rtx_code) (insn)->code) == DEBUG_INSN) || (((enum rtx_code) (insn)->code) == JUMP_INSN) || (((enum rtx_code) (insn)->code) == CALL_INSN))) > return 1; ># 2199 "../../gcc/combine.c" > set = (((((enum rtx_code) (insn)->code) == INSN) || (((enum rtx_code) (insn)->code) == DEBUG_INSN) || (((enum rtx_code) (insn)->code) == JUMP_INSN) || (((enum rtx_code) (insn)->code) == CALL_INSN)) ? (((enum rtx_code) ((((insn)->u.fld[4]).rt_rtx))->code) == SET ? (((insn)->u.fld[4]).rt_rtx) : single_set_2 (insn, (((insn)->u.fld[4]).rt_rtx))) : (rtx) 0); > if (! set) > return 0; > src = (((set)->u.fld[1]).rt_rtx); > dest = (((set)->u.fld[0]).rt_rtx); > if (((enum rtx_code) (src)->code) == SUBREG) > src = (((src)->u.fld[0]).rt_rtx); > if (((enum rtx_code) (dest)->code) == SUBREG) > dest = (((dest)->u.fld[0]).rt_rtx); > if ((((enum rtx_code) (src)->code) == REG) && (((enum rtx_code) (dest)->code) == REG) > && ((((((rhs_regno(src))) < 114)) > && ! (!!((((&default_target_hard_regs)->x_fixed_reg_set))[((rhs_regno(src))) / ((unsigned) (8 * 4))] & (((HARD_REG_ELT_TYPE) (1)) << (((rhs_regno(src))) % ((unsigned) (8 * 4)))))) > && targetm.class_likely_spilled_p (rs6000_regno_regclass[((rhs_regno(src)))])) > || (((((rhs_regno(dest))) < 114)) > && ! (!!((((&default_target_hard_regs)->x_fixed_reg_set))[((rhs_regno(dest))) / ((unsigned) (8 * 4))] & (((HARD_REG_ELT_TYPE) (1)) << (((rhs_regno(dest))) % ((unsigned) (8 * 4)))))) > && targetm.class_likely_spilled_p (rs6000_regno_regclass[((rhs_regno(dest)))])))) > return 1; > > return 0; >} > >struct likely_spilled_retval_info >{ > unsigned regno, nregs; > unsigned mask; >}; > > > >static void >likely_spilled_retval_1 (rtx x, const_rtx set, void *data) >{ > struct likely_spilled_retval_info *const info = > (struct likely_spilled_retval_info *) data; > unsigned regno, nregs; > unsigned new_mask; > > if (!(((enum rtx_code) ((((set)->u.fld[0]).rt_rtx))->code) == REG)) > return; > regno = (rhs_regno(x)); > if (regno >= info->regno + info->nregs) > return; > nregs = ((&default_target_regs)->x_hard_regno_nregs)[regno][((enum machine_mode) (x)->mode)]; > if (regno + nregs <= info->regno) > return; > new_mask = (2U << (nregs - 1)) - 1; > if (regno < info->regno) > new_mask >>= info->regno - regno; > else > new_mask <<= regno - info->regno; > info->mask &= ~new_mask; >} > > > > > > >static int >likely_spilled_retval_p (rtx insn) >{ > rtx use = (this_basic_block)->il.rtl->end_; > rtx reg, p; > unsigned regno, nregs; > > > > unsigned mask; > struct likely_spilled_retval_info info; > > if (!(((enum rtx_code) (use)->code) == INSN) || ((enum rtx_code) ((((use)->u.fld[4]).rt_rtx))->code) != USE || insn == use) > return 0; > reg = ((((((use)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtx); > if (!(((enum rtx_code) (reg)->code) == REG) || !targetm.calls.function_value_regno_p ((rhs_regno(reg)))) > return 0; > regno = (rhs_regno(reg)); > nregs = ((&default_target_regs)->x_hard_regno_nregs)[regno][((enum machine_mode) (reg)->mode)]; > if (nregs == 1) > return 0; > mask = (2U << (nregs - 1)) - 1; > > > info.regno = regno; > info.nregs = nregs; > info.mask = mask; > for (p = (((use)->u.fld[1]).rt_rtx); info.mask && p != insn; p = (((p)->u.fld[1]).rt_rtx)) > if (((((enum rtx_code) (p)->code) == INSN) || (((enum rtx_code) (p)->code) == DEBUG_INSN) || (((enum rtx_code) (p)->code) == JUMP_INSN) || (((enum rtx_code) (p)->code) == CALL_INSN))) > note_stores ((((p)->u.fld[4]).rt_rtx), likely_spilled_retval_1, &info); > mask = info.mask; > > > > nregs --; > do > { > if ((mask & 1 << nregs) > && targetm.class_likely_spilled_p (rs6000_regno_regclass[(regno + nregs)])) > return 1; > } while (nregs--); > return 0; >} > > > > > > >static void >adjust_for_new_dest (rtx insn) >{ > > remove_reg_equal_equiv_notes (insn); > > > > > distribute_links (alloc_insn_link (insn, ((void *)0))); > > df_insn_rescan (insn); >} > > > >static unsigned char >can_change_dest_mode (rtx x, int added_sets, enum machine_mode mode) >{ > unsigned int regno; > > if (!(((enum rtx_code) (x)->code) == REG)) > return 0; > > regno = (rhs_regno(x)); > > > if (regno < 114) > return (rs6000_hard_regno_mode_ok_p[(int)(mode)][regno] > && (((&default_target_regs)->x_hard_regno_nregs)[regno][((enum machine_mode) (x)->mode)] > >= ((&default_target_regs)->x_hard_regno_nregs)[regno][mode])); > > > return (REG_N_SETS (regno) == 1 && !added_sets > && !(((x))->volatil)); >} > > > > > >static unsigned char >reg_subword_p (rtx x, rtx reg) >{ > > if (!(((enum rtx_code) (reg)->code) == REG) || ((enum mode_class) mode_class[((enum machine_mode) (reg)->mode)]) != MODE_INT) > return 0; > > if (((enum rtx_code) (x)->code) == STRICT_LOW_PART > || ((enum rtx_code) (x)->code) == ZERO_EXTRACT) > x = (((x)->u.fld[0]).rt_rtx); > > return ((enum rtx_code) (x)->code) == SUBREG > && (((x)->u.fld[0]).rt_rtx) == reg > && ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_INT; >} > > > > > >static rtx >cleanup_auto_inc_dec (rtx src, enum machine_mode mem_mode) >{ > rtx x = src; > const enum rtx_code code = ((enum rtx_code) (x)->code); > int i; > const char *fmt; > > switch (code) > { > case REG: > case CONST_INT: > case CONST_DOUBLE: > case CONST_FIXED: > case CONST_VECTOR: > case SYMBOL_REF: > case CODE_LABEL: > case PC: > case CC0: > case SCRATCH: > > return x; > case CLOBBER: > if ((((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == REG) && (rhs_regno((((x)->u.fld[0]).rt_rtx))) < 114) > return x; > break; > > case CONST: > if (shared_const_p (x)) > return x; > break; > > case MEM: > mem_mode = ((enum machine_mode) (x)->mode); > break; > > case PRE_INC: > case PRE_DEC: > ((void)(!(mem_mode != VOIDmode && mem_mode != BLKmode) ? fancy_abort ("../../gcc/combine.c", 2405, __FUNCTION__), 0 : 0)); > return gen_rtx_fmt_ee_stat (PLUS, (((enum machine_mode) (x)->mode)), (cleanup_auto_inc_dec ((((x)->u.fld[0]).rt_rtx), mem_mode)), (gen_rtx_CONST_INT (VOIDmode, (code == PRE_INC ? ((unsigned short) mode_size[mem_mode]) : -((unsigned short) mode_size[mem_mode])))) ) > > > > ; > > case POST_INC: > case POST_DEC: > case PRE_MODIFY: > case POST_MODIFY: > return cleanup_auto_inc_dec (code == PRE_MODIFY > ? (((x)->u.fld[1]).rt_rtx) : (((x)->u.fld[0]).rt_rtx), > mem_mode); > > default: > break; > } > > > > > > x = shallow_copy_rtx_stat (x ); > > > > ((x)->used) = 0; > > > if (((((enum rtx_code) (x)->code) == INSN) || (((enum rtx_code) (x)->code) == DEBUG_INSN) || (((enum rtx_code) (x)->code) == JUMP_INSN) || (((enum rtx_code) (x)->code) == CALL_INSN))) > ((x)->frame_related) = 0; > > fmt = (rtx_format[(int) (code)]); > for (i = (rtx_length[(int) (code)]) - 1; i >= 0; i--) > if (fmt[i] == 'e') > (((x)->u.fld[i]).rt_rtx) = cleanup_auto_inc_dec ((((x)->u.fld[i]).rt_rtx), mem_mode); > else if (fmt[i] == 'E' || fmt[i] == 'V') > { > int j; > (((x)->u.fld[i]).rt_rtvec) = rtvec_alloc ((((((x)->u.fld[i]).rt_rtvec))->num_elem)); > for (j = 0; j < (((((x)->u.fld[i]).rt_rtvec))->num_elem); j++) > (((((x)->u.fld[i]).rt_rtvec))->elem[j]) > = cleanup_auto_inc_dec ((((((src)->u.fld[i]).rt_rtvec))->elem[j]), mem_mode); > } > > return x; >} > > > > >struct rtx_subst_pair >{ > rtx to; > unsigned char adjusted; >}; > > > > >static rtx >propagate_for_debug_subst (rtx from, const_rtx old_rtx, void *data) >{ > struct rtx_subst_pair *pair = (struct rtx_subst_pair *)data; > > if (!rtx_equal_p (from, old_rtx)) > return (rtx) 0; > if (!pair->adjusted) > { > pair->adjusted = 1; > > pair->to = cleanup_auto_inc_dec (pair->to, VOIDmode); > > > > pair->to = make_compound_operation (pair->to, SET); > return pair->to; > } > return copy_rtx (pair->to); >} > > > > > >static void >propagate_for_debug (rtx insn, rtx last, rtx dest, rtx src) >{ > rtx next, loc, end = ((((this_basic_block)->il.rtl->end_)->u.fld[2]).rt_rtx); > > struct rtx_subst_pair p; > p.to = src; > p.adjusted = 0; > > next = (((insn)->u.fld[2]).rt_rtx); > last = (((last)->u.fld[2]).rt_rtx); > while (next != last && next != end) > { > insn = next; > next = (((insn)->u.fld[2]).rt_rtx); > if ((((enum rtx_code) (insn)->code) == DEBUG_INSN)) > { > loc = simplify_replace_fn_rtx (((((((((insn)->u.fld[4]).rt_rtx)))->u.fld[1]).rt_rtx)), > dest, propagate_for_debug_subst, &p); > if (loc == ((((((((insn)->u.fld[4]).rt_rtx)))->u.fld[1]).rt_rtx))) > continue; > ((((((((insn)->u.fld[4]).rt_rtx)))->u.fld[1]).rt_rtx)) = loc; > df_insn_rescan (insn); > } > } >} > > > > > > >static void >update_cfg_for_uncondjump (rtx insn) >{ > basic_block bb = (((insn)->u.fld[3]).rt_bb); > ((void)(!((bb)->il.rtl->end_ == insn) ? fancy_abort ("../../gcc/combine.c", 2527, __FUNCTION__), 0 : 0)); > > purge_dead_edges (bb); > > delete_insn (insn); > if ((VEC_edge_base_length(((__builtin_offsetof (__typeof (*(bb->succs)), base) == 0 || ((bb->succs))) ? &((bb->succs))->base : 0))) == 1) > { > rtx insn; > > single_succ_edge (bb)->flags |= 0x0001; > > > for (insn = bb->il.rtl->footer; insn; insn = (((insn)->u.fld[2]).rt_rtx)) > if ((((enum rtx_code) (insn)->code) == BARRIER)) > { > if ((((insn)->u.fld[1]).rt_rtx)) > ((((((insn)->u.fld[1]).rt_rtx))->u.fld[2]).rt_rtx) = (((insn)->u.fld[2]).rt_rtx); > else > bb->il.rtl->footer = (((insn)->u.fld[2]).rt_rtx); > if ((((insn)->u.fld[2]).rt_rtx)) > ((((((insn)->u.fld[2]).rt_rtx))->u.fld[1]).rt_rtx) = (((insn)->u.fld[1]).rt_rtx); > } > else if ((((enum rtx_code) (insn)->code) == CODE_LABEL)) > break; > } >} ># 2575 "../../gcc/combine.c" >static rtx >try_combine (rtx i3, rtx i2, rtx i1, rtx i0, int *new_direct_jump_p, > rtx last_combined_insn) >{ > > rtx newpat, newi2pat = 0; > rtvec newpat_vec_with_clobbers = 0; > int substed_i2 = 0, substed_i1 = 0, substed_i0 = 0; > > > int added_sets_0, added_sets_1, added_sets_2; > > int total_sets; > > int i2_is_used = 0, i1_is_used = 0; > > int insn_code_number, i2_code_number = 0, other_code_number = 0; > > > > rtx i3dest_killed = 0; > > rtx i2dest = 0, i2src = 0, i1dest = 0, i1src = 0, i0dest = 0, i0src = 0; > > rtx i1src_copy = 0, i0src_copy = 0, i0src_copy2 = 0; > > unsigned char i2scratch = 0; > > rtx i0pat = 0, i1pat = 0, i2pat = 0; > > int i2dest_in_i2src = 0, i1dest_in_i1src = 0, i2dest_in_i1src = 0; > int i0dest_in_i0src = 0, i1dest_in_i0src = 0, i2dest_in_i0src = 0; > int i2dest_killed = 0, i1dest_killed = 0, i0dest_killed = 0; > int i1_feeds_i2_n = 0, i0_feeds_i2_n = 0, i0_feeds_i1_n = 0; > > rtx new_i3_notes, new_i2_notes; > > int i3_subst_into_i2 = 0; > > int have_mult = 0; > int swap_i2i3 = 0; > int changed_i3_dest = 0; > > int maxreg; > rtx temp; > struct insn_link *link; > rtx other_pat = 0; > rtx new_other_notes; > int i; > > > > > if (i0) > { > int i; > int ngood = 0; > int nshift = 0; > > if (!global_options.x_flag_expensive_optimizations) > return 0; > > for (i = 0; i < 4; i++) > { > rtx insn = i == 0 ? i0 : i == 1 ? i1 : i == 2 ? i2 : i3; > rtx set = (((((enum rtx_code) (insn)->code) == INSN) || (((enum rtx_code) (insn)->code) == DEBUG_INSN) || (((enum rtx_code) (insn)->code) == JUMP_INSN) || (((enum rtx_code) (insn)->code) == CALL_INSN)) ? (((enum rtx_code) ((((insn)->u.fld[4]).rt_rtx))->code) == SET ? (((insn)->u.fld[4]).rt_rtx) : single_set_2 (insn, (((insn)->u.fld[4]).rt_rtx))) : (rtx) 0); > rtx src; > if (!set) > continue; > src = (((set)->u.fld[1]).rt_rtx); > if (((rtx_class[(int) (((enum rtx_code) (src)->code))]) == RTX_CONST_OBJ)) > { > ngood += 2; > break; > } > else if ((((rtx_class[(int) (((enum rtx_code) (src)->code))]) & (~3)) == (RTX_COMPARE & (~3))) && ((rtx_class[(int) (((enum rtx_code) ((((src)->u.fld[1]).rt_rtx))->code))]) == RTX_CONST_OBJ)) > ngood++; > else if (((enum rtx_code) (src)->code) == ASHIFT || ((enum rtx_code) (src)->code) == ASHIFTRT > || ((enum rtx_code) (src)->code) == LSHIFTRT) > nshift++; > } > if (ngood < 2 && nshift < 2) > return 0; > } > > > > if (cant_combine_insn_p (i3) > || cant_combine_insn_p (i2) > || (i1 && cant_combine_insn_p (i1)) > || (i0 && cant_combine_insn_p (i0)) > || likely_spilled_retval_p (i3)) > return 0; > > combine_attempts++; > undobuf.other_insn = 0; > > > do { HARD_REG_ELT_TYPE *scan_tp_ = (newpat_used_regs); scan_tp_[0] = 0; scan_tp_[1] = 0; scan_tp_[2] = 0; scan_tp_[3] = 0; } while (0); > > if (dump_file && (dump_flags & (1 << 3))) > { > if (i0) > fprintf (dump_file, "\nTrying %d, %d, %d -> %d:\n", > (((i0)->u.fld[0]).rt_int), (((i1)->u.fld[0]).rt_int), (((i2)->u.fld[0]).rt_int), (((i3)->u.fld[0]).rt_int)); > else if (i1) > fprintf (dump_file, "\nTrying %d, %d -> %d:\n", > (((i1)->u.fld[0]).rt_int), (((i2)->u.fld[0]).rt_int), (((i3)->u.fld[0]).rt_int)); > else > fprintf (dump_file, "\nTrying %d -> %d:\n", > (((i2)->u.fld[0]).rt_int), (((i3)->u.fld[0]).rt_int)); > } > > > > if (i0 && ((((df->insns[((((i0)->u.fld[0]).rt_int))]))->luid)) > ((((df->insns[((((i2)->u.fld[0]).rt_int))]))->luid))) > temp = i2, i2 = i0, i0 = temp; > if (i0 && ((((df->insns[((((i0)->u.fld[0]).rt_int))]))->luid)) > ((((df->insns[((((i1)->u.fld[0]).rt_int))]))->luid))) > temp = i1, i1 = i0, i0 = temp; > if (i1 && ((((df->insns[((((i1)->u.fld[0]).rt_int))]))->luid)) > ((((df->insns[((((i2)->u.fld[0]).rt_int))]))->luid))) > temp = i1, i1 = i2, i2 = temp; > > added_links_insn = 0; ># 2715 "../../gcc/combine.c" > if (i1 == 0 && (((enum rtx_code) (i3)->code) == INSN) && ((enum rtx_code) ((((i3)->u.fld[4]).rt_rtx))->code) == SET > && (((enum rtx_code) (((((((i3)->u.fld[4]).rt_rtx))->u.fld[1]).rt_rtx))->code) == REG) > && (rhs_regno(((((((i3)->u.fld[4]).rt_rtx))->u.fld[1]).rt_rtx))) >= 114 > && find_reg_note (i3, REG_DEAD, ((((((i3)->u.fld[4]).rt_rtx))->u.fld[1]).rt_rtx)) > && ((enum rtx_code) ((((i2)->u.fld[4]).rt_rtx))->code) == PARALLEL > && ! side_effects_p (((((((i3)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtx)) > > > > > && ((enum rtx_code) (((((((i3)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtx))->code) != ZERO_EXTRACT > && ((enum rtx_code) (((((((i3)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtx))->code) != STRICT_LOW_PART > && ! reg_overlap_mentioned_p (((((((i3)->u.fld[4]).rt_rtx))->u.fld[1]).rt_rtx), > ((((((i3)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtx)) > && next_active_insn (i2) == i3) > { > rtx p2 = (((i2)->u.fld[4]).rt_rtx); ># 2743 "../../gcc/combine.c" > for (i = 0; i < (((((p2)->u.fld[0]).rt_rtvec))->num_elem); i++) > if ((((enum rtx_code) ((((((p2)->u.fld[0]).rt_rtvec))->elem[i]))->code) == SET > || ((enum rtx_code) ((((((p2)->u.fld[0]).rt_rtvec))->elem[i]))->code) == CLOBBER) > && reg_overlap_mentioned_p (((((((i3)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtx), > ((((((((p2)->u.fld[0]).rt_rtvec))->elem[i]))->u.fld[0]).rt_rtx))) > break; > > if (i == (((((p2)->u.fld[0]).rt_rtvec))->num_elem)) > for (i = 0; i < (((((p2)->u.fld[0]).rt_rtvec))->num_elem); i++) > if (((enum rtx_code) ((((((p2)->u.fld[0]).rt_rtvec))->elem[i]))->code) == SET > && ((((((((p2)->u.fld[0]).rt_rtvec))->elem[i]))->u.fld[0]).rt_rtx) == ((((((i3)->u.fld[4]).rt_rtx))->u.fld[1]).rt_rtx)) > { > combine_merges++; > > subst_insn = i3; > subst_low_luid = ((((df->insns[((((i2)->u.fld[0]).rt_int))]))->luid)); > > added_sets_2 = added_sets_1 = added_sets_0 = 0; > i2src = ((((((((p2)->u.fld[0]).rt_rtvec))->elem[i]))->u.fld[1]).rt_rtx); > i2dest = ((((((((p2)->u.fld[0]).rt_rtvec))->elem[i]))->u.fld[0]).rt_rtx); > i2dest_killed = dead_or_set_p (i2, i2dest); > > > > > do_SUBST(&(((((((((p2)->u.fld[0]).rt_rtvec))->elem[i]))->u.fld[0]).rt_rtx)), (((((((i3)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtx))); > newpat = p2; > i3_subst_into_i2 = 1; > goto validate_replacement; > } > } > > > > > if (i1 == 0 > && (temp = (((((enum rtx_code) (i2)->code) == INSN) || (((enum rtx_code) (i2)->code) == DEBUG_INSN) || (((enum rtx_code) (i2)->code) == JUMP_INSN) || (((enum rtx_code) (i2)->code) == CALL_INSN)) ? (((enum rtx_code) ((((i2)->u.fld[4]).rt_rtx))->code) == SET ? (((i2)->u.fld[4]).rt_rtx) : single_set_2 (i2, (((i2)->u.fld[4]).rt_rtx))) : (rtx) 0)) != 0 > && ((((enum rtx_code) ((((temp)->u.fld[1]).rt_rtx))->code) == CONST_INT) > || ((enum rtx_code) ((((temp)->u.fld[1]).rt_rtx))->code) == CONST_DOUBLE) > && ((enum rtx_code) ((((i3)->u.fld[4]).rt_rtx))->code) == SET > && ((((enum rtx_code) (((((((i3)->u.fld[4]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT) > || ((enum rtx_code) (((((((i3)->u.fld[4]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_DOUBLE) > && reg_subword_p (((((((i3)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtx), (((temp)->u.fld[0]).rt_rtx))) > { > rtx dest = ((((((i3)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtx); > int offset = -1; > int width = 0; > > if (((enum rtx_code) (dest)->code) == ZERO_EXTRACT) > { > if ((((enum rtx_code) ((((dest)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((enum rtx_code) ((((dest)->u.fld[2]).rt_rtx))->code) == CONST_INT)) > { > width = (((((dest)->u.fld[1]).rt_rtx))->u.hwint[0]); > offset = (((((dest)->u.fld[2]).rt_rtx))->u.hwint[0]); > dest = (((dest)->u.fld[0]).rt_rtx); > if (1) > offset = mode_precision[((enum machine_mode) (dest)->mode)] - width - offset; > } > } > else > { > if (((enum rtx_code) (dest)->code) == STRICT_LOW_PART) > dest = (((dest)->u.fld[0]).rt_rtx); > width = mode_precision[((enum machine_mode) (dest)->mode)]; > offset = 0; > } > > if (offset >= 0) > { > > if (subreg_lowpart_p (dest)) > ; > > else if (mode_precision[((enum machine_mode) ((((temp)->u.fld[0]).rt_rtx))->mode)] > == 2 * mode_precision[((enum machine_mode) (dest)->mode)]) > offset += mode_precision[((enum machine_mode) (dest)->mode)]; > > else > offset = -1; > } > > if (offset >= 0 > && (mode_precision[((enum machine_mode) ((((temp)->u.fld[0]).rt_rtx))->mode)] > <= (2 * (8 * 8)))) > { > double_int m, o, i; > rtx inner = ((((((i3)->u.fld[4]).rt_rtx))->u.fld[1]).rt_rtx); > rtx outer = (((temp)->u.fld[1]).rt_rtx); > > o = rtx_to_double_int (outer); > i = rtx_to_double_int (inner); > > m = double_int_mask (width); > i = double_int_and (i, m); > m = double_int_lshift (m, offset, (2 * (8 * 8)), 0); > i = double_int_lshift (i, offset, (2 * (8 * 8)), 0); > o = double_int_ior (double_int_and_not (o, m), i); > > combine_merges++; > subst_insn = i3; > subst_low_luid = ((((df->insns[((((i2)->u.fld[0]).rt_int))]))->luid)); > added_sets_2 = added_sets_1 = added_sets_0 = 0; > i2dest = (((temp)->u.fld[0]).rt_rtx); > i2dest_killed = dead_or_set_p (i2, i2dest); > > > > > do_SUBST(&((((temp)->u.fld[1]).rt_rtx)), (immed_double_int_const (o, ((enum machine_mode) ((((temp)->u.fld[0]).rt_rtx))->mode)))) > ; > > newpat = (((i2)->u.fld[4]).rt_rtx); > > > changed_i3_dest = 1; > goto validate_replacement; > } > } ># 2877 "../../gcc/combine.c" > if (i1 == 0 && ((enum rtx_code) ((((i2)->u.fld[4]).rt_rtx))->code) == PARALLEL > && ((((((((i2)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->num_elem) >= 2 > && ((enum rtx_code) (((((((((i2)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->elem[0]))->code) == SET > && (((enum mode_class) mode_class[((enum machine_mode) ((((((((((((i2)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->elem[0]))->u.fld[0]).rt_rtx))->mode)]) > == MODE_CC) > && ((enum rtx_code) ((((((((((((i2)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->elem[0]))->u.fld[1]).rt_rtx))->code) == COMPARE > && ((((((((((((((i2)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->elem[0]))->u.fld[1]).rt_rtx))->u.fld[1]).rt_rtx) == (const_int_rtx[64]) > && ((enum rtx_code) (((((((((i2)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->elem[1]))->code) == SET > && (((enum rtx_code) ((((((((((((i2)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->elem[1]))->u.fld[0]).rt_rtx))->code) == REG) > && rtx_equal_p (((((((((((((((i2)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->elem[0]))->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx), > (((((((((((i2)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->elem[1]))->u.fld[1]).rt_rtx))) > { > for (i = ((((((((i2)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->num_elem) - 1; i >= 2; i--) > if (((enum rtx_code) (((((((((i2)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->elem[i]))->code) != CLOBBER) > break; > > if (i == 1) > { > > > > > > i1 = gen_rtx_fmt_iuuBeiie_stat (INSN, (VOIDmode), ((((i2)->u.fld[0]).rt_int)), ((rtx) 0), (i2), ((((i2)->u.fld[3]).rt_bb)), (((((((((i2)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->elem[1])), ((((i2)->u.fld[5]).rt_int)), (-1), ((rtx) 0) ) > > ; > > do_SUBST(&((((i2)->u.fld[4]).rt_rtx)), (((((((((i2)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->elem[0]))); > do_SUBST(&((((((((((i2)->u.fld[4]).rt_rtx))->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx)), (((((((i1)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtx))) > ; > do_SUBST_LINK (&(uid_log_links[(((i2)->u.fld[0]).rt_int)]), alloc_insn_link (i1, (uid_log_links[(((i2)->u.fld[0]).rt_int)]))); > } > } > > > > if (! can_combine_p (i2, i3, i0, i1, (rtx) 0, (rtx) 0, &i2dest, &i2src) > || (i1 && ! can_combine_p (i1, i3, i0, (rtx) 0, i2, (rtx) 0, > &i1dest, &i1src)) > || (i0 && ! can_combine_p (i0, i3, (rtx) 0, (rtx) 0, i1, i2, > &i0dest, &i0src))) > { > undo_all (); > return 0; > } > > > > i2dest_in_i2src = reg_overlap_mentioned_p (i2dest, i2src); > i1dest_in_i1src = i1 && reg_overlap_mentioned_p (i1dest, i1src); > i2dest_in_i1src = i1 && reg_overlap_mentioned_p (i2dest, i1src); > i0dest_in_i0src = i0 && reg_overlap_mentioned_p (i0dest, i0src); > i1dest_in_i0src = i0 && reg_overlap_mentioned_p (i1dest, i0src); > i2dest_in_i0src = i0 && reg_overlap_mentioned_p (i2dest, i0src); > i2dest_killed = dead_or_set_p (i2, i2dest); > i1dest_killed = i1 && dead_or_set_p (i1, i1dest); > i0dest_killed = i0 && dead_or_set_p (i0, i0dest); > > > > i1_feeds_i2_n = i1 && insn_a_feeds_b (i1, i2); > i0_feeds_i1_n = i0 && insn_a_feeds_b (i0, i1); > i0_feeds_i2_n = (i0 && (!i0_feeds_i1_n ? insn_a_feeds_b (i0, i2) > : (!reg_overlap_mentioned_p (i1dest, i0dest) > && reg_overlap_mentioned_p (i0dest, i2src)))); > > > if (! combinable_i3pat (i3, &(((i3)->u.fld[4]).rt_rtx), i2dest, i1dest, i0dest, > i1 && i2dest_in_i1src && !i1_feeds_i2_n, > i0 && ((i2dest_in_i0src && !i0_feeds_i2_n) > || (i1dest_in_i0src && !i0_feeds_i1_n)), > &i3dest_killed)) > { > undo_all (); > return 0; > } > > > > > if (((enum rtx_code) (i2src)->code) == MULT > || (i1 != 0 && ((enum rtx_code) (i1src)->code) == MULT) > || (i0 != 0 && ((enum rtx_code) (i0src)->code) == MULT) > || (((enum rtx_code) ((((i3)->u.fld[4]).rt_rtx))->code) == SET > && ((enum rtx_code) (((((((i3)->u.fld[4]).rt_rtx))->u.fld[1]).rt_rtx))->code) == MULT)) > have_mult = 1; ># 2980 "../../gcc/combine.c" > { > rtx link; > for (link = (((i3)->u.fld[7]).rt_rtx); link; link = (((link)->u.fld[1]).rt_rtx)) > if (((enum reg_note) ((enum machine_mode) (link)->mode)) == REG_INC > && (reg_overlap_mentioned_p ((((link)->u.fld[0]).rt_rtx), (((i2)->u.fld[4]).rt_rtx)) > || (i1 != 0 > && reg_overlap_mentioned_p ((((link)->u.fld[0]).rt_rtx), (((i1)->u.fld[4]).rt_rtx))))) > { > undo_all (); > return 0; > } > } ># 3004 "../../gcc/combine.c" > added_sets_2 = !dead_or_set_p (i3, i2dest); > > if (i1) > added_sets_1 = !(dead_or_set_p (i3, i1dest) > || (i1_feeds_i2_n && dead_or_set_p (i2, i1dest))); > else > added_sets_1 = 0; > > if (i0) > added_sets_0 = !(dead_or_set_p (i3, i0dest) > || (i0_feeds_i2_n && dead_or_set_p (i2, i0dest)) > || (i0_feeds_i1_n && dead_or_set_p (i1, i0dest))); > else > added_sets_0 = 0; > > > > > if (targetm.cannot_copy_insn_p > && ((added_sets_2 && targetm.cannot_copy_insn_p (i2)) > || (i1 && added_sets_1 && targetm.cannot_copy_insn_p (i1)) > || (i0 && added_sets_0 && targetm.cannot_copy_insn_p (i0)))) > { > undo_all (); > return 0; > } ># 3038 "../../gcc/combine.c" > if (added_sets_2) > { > if (((enum rtx_code) ((((i2)->u.fld[4]).rt_rtx))->code) == PARALLEL) > i2pat = gen_rtx_fmt_ee_stat (SET, (VOIDmode), (i2dest), (copy_rtx (i2src)) ); > else > i2pat = copy_rtx ((((i2)->u.fld[4]).rt_rtx)); > } > > if (added_sets_1) > { > if (((enum rtx_code) ((((i1)->u.fld[4]).rt_rtx))->code) == PARALLEL) > i1pat = gen_rtx_fmt_ee_stat (SET, (VOIDmode), (i1dest), (copy_rtx (i1src)) ); > else > i1pat = copy_rtx ((((i1)->u.fld[4]).rt_rtx)); > } > > if (added_sets_0) > { > if (((enum rtx_code) ((((i0)->u.fld[4]).rt_rtx))->code) == PARALLEL) > i0pat = gen_rtx_fmt_ee_stat (SET, (VOIDmode), (i0dest), (copy_rtx (i0src)) ); > else > i0pat = copy_rtx ((((i0)->u.fld[4]).rt_rtx)); > } > > combine_merges++; > > > > maxreg = max_reg_num (); > > subst_insn = i3; ># 3082 "../../gcc/combine.c" > if (i1 == 0 && added_sets_2 && ((enum rtx_code) ((((i3)->u.fld[4]).rt_rtx))->code) == SET > && ((enum rtx_code) (((((((i3)->u.fld[4]).rt_rtx))->u.fld[1]).rt_rtx))->code) == COMPARE > && (((enum rtx_code) ((((((((((i3)->u.fld[4]).rt_rtx))->u.fld[1]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT) > && rtx_equal_p ((((((((((i3)->u.fld[4]).rt_rtx))->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx), i2dest)) > { > rtx newpat_dest; > rtx *cc_use_loc = ((void *)0), cc_use_insn = (rtx) 0; > rtx op0 = i2src, op1 = (((((((((i3)->u.fld[4]).rt_rtx))->u.fld[1]).rt_rtx))->u.fld[1]).rt_rtx); > enum machine_mode compare_mode, orig_compare_mode; > enum rtx_code compare_code = UNKNOWN, orig_compare_code = UNKNOWN; > > newpat = (((i3)->u.fld[4]).rt_rtx); > newpat_dest = (((newpat)->u.fld[0]).rt_rtx); > compare_mode = orig_compare_mode = ((enum machine_mode) (newpat_dest)->mode); > > if (undobuf.other_insn == 0 > && (cc_use_loc = find_single_use ((((newpat)->u.fld[0]).rt_rtx), i3, > &cc_use_insn))) > { > compare_code = orig_compare_code = ((enum rtx_code) (*cc_use_loc)->code); > compare_code = simplify_compare_const (compare_code, > op0, &op1); > > > > } > > > > if (op1 == (const_int_rtx[64])) > { > > > > > > if (cc_use_loc) > { > > enum machine_mode new_mode > = ((((enum mode_class) mode_class[((enum machine_mode) (op0)->mode)]) == MODE_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) (op0)->mode)]) == MODE_DECIMAL_FLOAT) ? CCFPmode : (compare_code) == GTU || (compare_code) == LTU || (compare_code) == GEU || (compare_code) == LEU ? CCUNSmode : (((compare_code) == EQ || (compare_code) == NE) && (((rtx_class[(int) (((enum rtx_code) (op0)->code))]) & (~1)) == (RTX_COMPARE & (~1))) ? CCEQmode : CCmode)); > if (new_mode != orig_compare_mode > && can_change_dest_mode ((((newpat)->u.fld[0]).rt_rtx), > added_sets_2, new_mode)) > { > unsigned int regno = (rhs_regno(newpat_dest)); > compare_mode = new_mode; > if (regno < 114) > newpat_dest = gen_rtx_REG (compare_mode, regno); > else > { > do_SUBST_MODE(&(regno_reg_rtx[regno]), (compare_mode)); > newpat_dest = regno_reg_rtx[regno]; > } > } > > > if (compare_code != orig_compare_code > > && (((*cc_use_loc)->u.fld[1]).rt_rtx) == (const_int_rtx[64])) > { > > do_SUBST(&(*cc_use_loc), (gen_rtx_fmt_ee_stat (compare_code, compare_mode, newpat_dest, (const_int_rtx[64]) ))) > > ; > undobuf.other_insn = cc_use_insn; > } > else if (compare_mode != orig_compare_mode) > { > > do_SUBST(&((((*cc_use_loc)->u.fld[0]).rt_rtx)), (newpat_dest)); > undobuf.other_insn = cc_use_insn; > } > } > > > > > > if (compare_mode != orig_compare_mode) > do_SUBST(&((((newpat)->u.fld[0]).rt_rtx)), (newpat_dest)); > > do_SUBST(&((((newpat)->u.fld[1]).rt_rtx)), (gen_rtx_fmt_ee_stat (COMPARE, (compare_mode), (op0), (op1) ))) > ; > > > if (! rtx_equal_p (i2src, op0)) > i2pat = gen_rtx_fmt_ee_stat (SET, (VOIDmode), (i2dest), (op0) ); > i2_is_used = 1; > } > } > > > if (i2_is_used == 0) > { ># 3196 "../../gcc/combine.c" > if (global_options.x_flag_expensive_optimizations) > { > > > if (i1) > { > subst_low_luid = ((((df->insns[((((i1)->u.fld[0]).rt_int))]))->luid)); > i1src = subst (i1src, (((&default_target_rtl)->x_global_rtl)[GR_PC]), (((&default_target_rtl)->x_global_rtl)[GR_PC]), 0, 0, 0); > } > > subst_low_luid = ((((df->insns[((((i2)->u.fld[0]).rt_int))]))->luid)); > i2src = subst (i2src, (((&default_target_rtl)->x_global_rtl)[GR_PC]), (((&default_target_rtl)->x_global_rtl)[GR_PC]), 0, 0, 0); > } > > n_occurrences = 0; > subst_low_luid = ((((df->insns[((((i2)->u.fld[0]).rt_int))]))->luid)); > > > > > > > newpat = subst ((((i3)->u.fld[4]).rt_rtx), i2dest, i2src, 0, 0, > (i1_feeds_i2_n && i1dest_in_i1src) > || ((i0_feeds_i2_n || (i0_feeds_i1_n && i1_feeds_i2_n)) > && i0dest_in_i0src)); > substed_i2 = 1; > > > i2_is_used = n_occurrences; > } > > > > > if (i1 && ((enum rtx_code) (newpat)->code) != CLOBBER) > { > > > > if (((((rtx) 0) != (rtx) 0 && (((enum rtx_code) (((rtx) 0))->code) == REG) ? find_regno_note ((i1), REG_INC, (rhs_regno((rtx) 0))) : find_reg_note ((i1), REG_INC, ((rtx) 0))) != 0 > && i1_feeds_i2_n > && dead_or_set_p (i2, i1dest) > && !reg_overlap_mentioned_p (i1dest, newpat)) > > > > || !combinable_i3pat ((rtx) 0, &newpat, i1dest, (rtx) 0, (rtx) 0, > 0, 0, 0)) > { > undo_all (); > return 0; > } > > n_occurrences = 0; > subst_low_luid = ((((df->insns[((((i1)->u.fld[0]).rt_int))]))->luid)); > > > > if (added_sets_2 && i1_feeds_i2_n) > i1src_copy = copy_rtx (i1src); > > > > > > newpat = subst (newpat, i1dest, i1src, 0, 0, > i0_feeds_i1_n && i0dest_in_i0src); > substed_i1 = 1; > > > i1_is_used = n_occurrences; > } > > > > if (i0 && ((enum rtx_code) (newpat)->code) != CLOBBER) > { > if (((((rtx) 0) != (rtx) 0 && (((enum rtx_code) (((rtx) 0))->code) == REG) ? find_regno_note ((i0), REG_INC, (rhs_regno((rtx) 0))) : find_reg_note ((i0), REG_INC, ((rtx) 0))) != 0 > && ((i0_feeds_i2_n && dead_or_set_p (i2, i0dest)) > || (i0_feeds_i1_n && dead_or_set_p (i1, i0dest))) > && !reg_overlap_mentioned_p (i0dest, newpat)) > || !combinable_i3pat ((rtx) 0, &newpat, i0dest, (rtx) 0, (rtx) 0, > 0, 0, 0)) > { > undo_all (); > return 0; > } > > > > if (added_sets_1 && i0_feeds_i1_n) > i0src_copy = copy_rtx (i0src); > > if (added_sets_2 && ((i0_feeds_i1_n && i1_feeds_i2_n) > || (i0_feeds_i2_n))) > i0src_copy2 = copy_rtx (i0src); > > n_occurrences = 0; > subst_low_luid = ((((df->insns[((((i0)->u.fld[0]).rt_int))]))->luid)); > newpat = subst (newpat, i0dest, i0src, 0, 0, 0); > substed_i0 = 1; > } > > > > if (((((rtx) 0) != (rtx) 0 && (((enum rtx_code) (((rtx) 0))->code) == REG) ? find_regno_note ((i2), REG_INC, (rhs_regno((rtx) 0))) : find_reg_note ((i2), REG_INC, ((rtx) 0))) != 0 > && i2_is_used + added_sets_2 > 1) > || (i1 != 0 && (((rtx) 0) != (rtx) 0 && (((enum rtx_code) (((rtx) 0))->code) == REG) ? find_regno_note ((i1), REG_INC, (rhs_regno((rtx) 0))) : find_reg_note ((i1), REG_INC, ((rtx) 0))) != 0 > && (i1_is_used + added_sets_1 + (added_sets_2 && i1_feeds_i2_n) > > 1)) > || (i0 != 0 && (((rtx) 0) != (rtx) 0 && (((enum rtx_code) (((rtx) 0))->code) == REG) ? find_regno_note ((i0), REG_INC, (rhs_regno((rtx) 0))) : find_reg_note ((i0), REG_INC, ((rtx) 0))) != 0 > && (n_occurrences + added_sets_0 > + (added_sets_1 && i0_feeds_i1_n) > + (added_sets_2 && i0_feeds_i2_n) > > 1)) > > || max_reg_num () != maxreg > > || ((enum rtx_code) (newpat)->code) == CLOBBER > > > || (((enum rtx_code) (newpat)->code) == SET && ((enum rtx_code) ((((newpat)->u.fld[1]).rt_rtx))->code) == MULT > && ! have_mult)) > { > undo_all (); > return 0; > } > > > > > > > if (added_sets_0 || added_sets_1 || added_sets_2) > { > int extra_sets = added_sets_0 + added_sets_1 + added_sets_2; > combine_extras++; > > if (((enum rtx_code) (newpat)->code) == PARALLEL) > { > rtvec old = (((newpat)->u.fld[0]).rt_rtvec); > total_sets = (((((newpat)->u.fld[0]).rt_rtvec))->num_elem) + extra_sets; > newpat = gen_rtx_fmt_E_stat (PARALLEL, (VOIDmode), (rtvec_alloc (total_sets)) ); > memcpy ((((newpat)->u.fld[0]).rt_rtvec)->elem, &old->elem[0], > sizeof (old->elem[0]) * old->num_elem); > } > else > { > rtx old = newpat; > total_sets = 1 + extra_sets; > newpat = gen_rtx_fmt_E_stat (PARALLEL, (VOIDmode), (rtvec_alloc (total_sets)) ); > (((((newpat)->u.fld[0]).rt_rtvec))->elem[0]) = old; > } > > if (added_sets_0) > (((((newpat)->u.fld[0]).rt_rtvec))->elem[--total_sets]) = i0pat; > > if (added_sets_1) > { > rtx t = i1pat; > if (i0_feeds_i1_n) > t = subst (t, i0dest, i0src_copy ? i0src_copy : i0src, 0, 0, 0); > > (((((newpat)->u.fld[0]).rt_rtvec))->elem[--total_sets]) = t; > } > if (added_sets_2) > { > rtx t = i2pat; > if (i1_feeds_i2_n) > t = subst (t, i1dest, i1src_copy ? i1src_copy : i1src, 0, 0, > i0_feeds_i1_n && i0dest_in_i0src); > if ((i0_feeds_i1_n && i1_feeds_i2_n) || i0_feeds_i2_n) > t = subst (t, i0dest, i0src_copy2 ? i0src_copy2 : i0src, 0, 0, 0); > > (((((newpat)->u.fld[0]).rt_rtvec))->elem[--total_sets]) = t; > } > } > > validate_replacement: > > > mark_used_regs_combine (newpat); > > > > if (i1 && ((enum rtx_code) (newpat)->code) == PARALLEL > && ((enum rtx_code) ((((((newpat)->u.fld[0]).rt_rtvec))->elem[(((((newpat)->u.fld[0]).rt_rtvec))->num_elem) - 1]))->code) == CLOBBER) > { > int len = (((((newpat)->u.fld[0]).rt_rtvec))->num_elem); > > newpat_vec_with_clobbers = rtvec_alloc (len); > for (i = 0; i < len; i++) > ((newpat_vec_with_clobbers)->elem[i]) = (((((newpat)->u.fld[0]).rt_rtvec))->elem[i]); > } > > > insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes); ># 3413 "../../gcc/combine.c" > if (insn_code_number < 0 > && !(added_sets_2 && i1 == 0) > && ((enum rtx_code) (newpat)->code) == PARALLEL > && (((((newpat)->u.fld[0]).rt_rtvec))->num_elem) == 2 > && ((enum rtx_code) ((((((newpat)->u.fld[0]).rt_rtvec))->elem[0]))->code) == SET > && ((enum rtx_code) ((((((newpat)->u.fld[0]).rt_rtvec))->elem[1]))->code) == SET > && asm_noperands (newpat) < 0) > { > rtx set0 = (((((newpat)->u.fld[0]).rt_rtvec))->elem[0]); > rtx set1 = (((((newpat)->u.fld[0]).rt_rtvec))->elem[1]); > > if ((((((enum rtx_code) ((((set1)->u.fld[0]).rt_rtx))->code) == REG) > && find_reg_note (i3, REG_UNUSED, (((set1)->u.fld[0]).rt_rtx))) > || (((enum rtx_code) ((((set1)->u.fld[0]).rt_rtx))->code) == SUBREG > && find_reg_note (i3, REG_UNUSED, ((((((set1)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx)))) > && insn_nothrow_p (i3) > && !side_effects_p ((((set1)->u.fld[1]).rt_rtx))) > { > newpat = set0; > insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes); > } > > else if ((((((enum rtx_code) ((((set0)->u.fld[0]).rt_rtx))->code) == REG) > && find_reg_note (i3, REG_UNUSED, (((set0)->u.fld[0]).rt_rtx))) > || (((enum rtx_code) ((((set0)->u.fld[0]).rt_rtx))->code) == SUBREG > && find_reg_note (i3, REG_UNUSED, > ((((((set0)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx)))) > && insn_nothrow_p (i3) > && !side_effects_p ((((set0)->u.fld[1]).rt_rtx))) > { > newpat = set1; > insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes); > > if (insn_code_number >= 0) > changed_i3_dest = 1; > } > } > > > > > > > > if (i1 && insn_code_number < 0 && ((enum rtx_code) (newpat)->code) == SET > && asm_noperands (newpat) < 0) > { > rtx parallel, m_split, *split; > > > > > > m_split = combine_split_insns (newpat, i3); ># 3475 "../../gcc/combine.c" > if (m_split == 0 && ! reg_overlap_mentioned_p (i2dest, newpat)) > { > enum machine_mode new_mode = ((enum machine_mode) ((((newpat)->u.fld[0]).rt_rtx))->mode); > > > > parallel = gen_rtx_fmt_E_stat (PARALLEL, (VOIDmode), (gen_rtvec (2, newpat, gen_rtx_fmt_e_stat (CLOBBER, (VOIDmode), (i2dest) ))) ) > > > ; > m_split = combine_split_insns (parallel, i3); > > > > if (m_split == 0 > && new_mode != ((enum machine_mode) (i2dest)->mode) > && new_mode != VOIDmode > && can_change_dest_mode (i2dest, added_sets_2, new_mode)) > { > enum machine_mode old_mode = ((enum machine_mode) (i2dest)->mode); > rtx ni2dest; > > if ((rhs_regno(i2dest)) < 114) > ni2dest = gen_rtx_REG (new_mode, (rhs_regno(i2dest))); > else > { > do_SUBST_MODE(&(regno_reg_rtx[(rhs_regno(i2dest))]), (new_mode)); > ni2dest = regno_reg_rtx[(rhs_regno(i2dest))]; > } > > parallel = (gen_rtx_fmt_E_stat (PARALLEL, (VOIDmode), (gen_rtvec (2, newpat, gen_rtx_fmt_e_stat (CLOBBER, (VOIDmode), (ni2dest) ))) ) > > > > ); > m_split = combine_split_insns (parallel, i3); > > if (m_split == 0 > && (rhs_regno(i2dest)) >= 114) > { > struct undo *buf; > > adjust_reg_mode (regno_reg_rtx[(rhs_regno(i2dest))], old_mode); > buf = undobuf.undos; > undobuf.undos = buf->next; > buf->next = undobuf.frees; > undobuf.frees = buf; > } > } > > i2scratch = m_split != 0; > } > > > > if (m_split == 0 && newpat_vec_with_clobbers) > { > parallel = gen_rtx_fmt_E_stat (PARALLEL, (VOIDmode), (newpat_vec_with_clobbers) ); > m_split = combine_split_insns (parallel, i3); > } > > if (m_split && (((m_split)->u.fld[2]).rt_rtx) == (rtx) 0) > { > m_split = (((m_split)->u.fld[4]).rt_rtx); > insn_code_number = recog_for_combine (&m_split, i3, &new_i3_notes); > if (insn_code_number >= 0) > newpat = m_split; > } > else if (m_split && ((((((m_split)->u.fld[2]).rt_rtx))->u.fld[2]).rt_rtx) == (rtx) 0 > && (next_nonnote_nondebug_insn (i2) == i3 > || ! use_crosses_set_p ((((m_split)->u.fld[4]).rt_rtx), ((((df->insns[((((i2)->u.fld[0]).rt_int))]))->luid))))) > { > rtx i2set, i3set; > rtx newi3pat = ((((((m_split)->u.fld[2]).rt_rtx))->u.fld[4]).rt_rtx); > newi2pat = (((m_split)->u.fld[4]).rt_rtx); > > i3set = (((((enum rtx_code) ((((m_split)->u.fld[2]).rt_rtx))->code) == INSN) || (((enum rtx_code) ((((m_split)->u.fld[2]).rt_rtx))->code) == DEBUG_INSN) || (((enum rtx_code) ((((m_split)->u.fld[2]).rt_rtx))->code) == JUMP_INSN) || (((enum rtx_code) ((((m_split)->u.fld[2]).rt_rtx))->code) == CALL_INSN)) ? (((enum rtx_code) (((((((m_split)->u.fld[2]).rt_rtx))->u.fld[4]).rt_rtx))->code) == SET ? ((((((m_split)->u.fld[2]).rt_rtx))->u.fld[4]).rt_rtx) : single_set_2 ((((m_split)->u.fld[2]).rt_rtx), ((((((m_split)->u.fld[2]).rt_rtx))->u.fld[4]).rt_rtx))) : (rtx) 0); > i2set = (((((enum rtx_code) (m_split)->code) == INSN) || (((enum rtx_code) (m_split)->code) == DEBUG_INSN) || (((enum rtx_code) (m_split)->code) == JUMP_INSN) || (((enum rtx_code) (m_split)->code) == CALL_INSN)) ? (((enum rtx_code) ((((m_split)->u.fld[4]).rt_rtx))->code) == SET ? (((m_split)->u.fld[4]).rt_rtx) : single_set_2 (m_split, (((m_split)->u.fld[4]).rt_rtx))) : (rtx) 0); > > i2_code_number = recog_for_combine (&newi2pat, i2, &new_i2_notes); > > > > > > if (i2_code_number >= 0 && i2set && i3set > && (next_nonnote_nondebug_insn (i2) == i3 > || ! reg_used_between_p ((((i2set)->u.fld[0]).rt_rtx), i2, i3))) > insn_code_number = recog_for_combine (&newi3pat, i3, > &new_i3_notes); > if (insn_code_number >= 0) > newpat = newi3pat; > > > > > if (insn_code_number >= 0) > { > rtx new_i3_dest = (((i3set)->u.fld[0]).rt_rtx); > rtx new_i2_dest = (((i2set)->u.fld[0]).rt_rtx); > > while (((enum rtx_code) (new_i3_dest)->code) == ZERO_EXTRACT > || ((enum rtx_code) (new_i3_dest)->code) == STRICT_LOW_PART > || ((enum rtx_code) (new_i3_dest)->code) == SUBREG) > new_i3_dest = (((new_i3_dest)->u.fld[0]).rt_rtx); > > while (((enum rtx_code) (new_i2_dest)->code) == ZERO_EXTRACT > || ((enum rtx_code) (new_i2_dest)->code) == STRICT_LOW_PART > || ((enum rtx_code) (new_i2_dest)->code) == SUBREG) > new_i2_dest = (((new_i2_dest)->u.fld[0]).rt_rtx); > > if ((((enum rtx_code) (new_i3_dest)->code) == REG) > && (((enum rtx_code) (new_i2_dest)->code) == REG) > && (rhs_regno(new_i3_dest)) == (rhs_regno(new_i2_dest))) > (regstat_n_sets_and_refs[(rhs_regno(new_i2_dest))].sets += 1); > } > } > > > > > if (insn_code_number < 0 > && (split = find_split_point (&newpat, i3, 0)) != 0 > > > > > > > > && (((enum machine_mode) (*split)->mode) == ((enum machine_mode) (i2dest)->mode) > || ((enum machine_mode) (*split)->mode) == VOIDmode > || can_change_dest_mode (i2dest, added_sets_2, > ((enum machine_mode) (*split)->mode))) > && (next_nonnote_nondebug_insn (i2) == i3 > || ! use_crosses_set_p (*split, ((((df->insns[((((i2)->u.fld[0]).rt_int))]))->luid)))) > > > && ! reg_referenced_p (i2dest, newpat)) > { > rtx newdest = i2dest; > enum rtx_code split_code = ((enum rtx_code) (*split)->code); > enum machine_mode split_mode = ((enum machine_mode) (*split)->mode); > unsigned char subst_done = 0; > newi2pat = (rtx) 0; > > i2scratch = 1; > > > > > if ((global_options.x_flag_var_tracking_assignments)) > i2src = copy_rtx (i2src); > else > i2src = ((void *)0); > > > > if (((enum machine_mode) (i2dest)->mode) != split_mode && split_mode != VOIDmode) > { > if ((rhs_regno(i2dest)) < 114) > newdest = gen_rtx_REG (split_mode, (rhs_regno(i2dest))); > else > { > do_SUBST_MODE(&(regno_reg_rtx[(rhs_regno(i2dest))]), (split_mode)); > newdest = regno_reg_rtx[(rhs_regno(i2dest))]; > } > } > > > > > if (split_code == MULT > && (((enum rtx_code) ((((*split)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((((*split)->u.fld[1]).rt_rtx))->u.hwint[0]) > 0 > && (i = exact_log2 (((unsigned long long) (((((*split)->u.fld[1]).rt_rtx))->u.hwint[0])))) >= 0) > { > do_SUBST(&(*split), (gen_rtx_fmt_ee_stat (ASHIFT, (split_mode), ((((*split)->u.fld[0]).rt_rtx)), (gen_rtx_CONST_INT (VOIDmode, (i))) ))) > ; > > > split_code = ((enum rtx_code) (*split)->code); > } > > > > > if (split_code == SUBREG && (((enum rtx_code) ((((*split)->u.fld[0]).rt_rtx))->code) == MEM)) > { > > > > if (ZERO_EXTEND > == SIGN_EXTEND) > do_SUBST(&(*split), (gen_rtx_fmt_e_stat (SIGN_EXTEND, (split_mode), ((((*split)->u.fld[0]).rt_rtx)) ))) > ; > else > > do_SUBST(&(*split), (gen_rtx_fmt_e_stat (ZERO_EXTEND, (split_mode), ((((*split)->u.fld[0]).rt_rtx)) ))) > ; > } > > > > if ((((rtx_class[(int) (((enum rtx_code) ((((newpat)->u.fld[1]).rt_rtx))->code))]) & (~3)) == (RTX_COMPARE & (~3))) > && split_mode == ((enum machine_mode) ((((newpat)->u.fld[1]).rt_rtx))->mode) > && ! side_effects_p ((((newpat)->u.fld[1]).rt_rtx))) > { > rtx setsrc = (((newpat)->u.fld[1]).rt_rtx); > enum machine_mode mode = ((enum machine_mode) (setsrc)->mode); > enum rtx_code code = ((enum rtx_code) (setsrc)->code); > rtx src_op0 = (((setsrc)->u.fld[0]).rt_rtx); > rtx src_op1 = (((setsrc)->u.fld[1]).rt_rtx); > > > if (rtx_equal_p (src_op0, src_op1)) > { > newi2pat = gen_rtx_fmt_ee_stat (SET, (VOIDmode), (newdest), (src_op0) ); > do_SUBST(&((((setsrc)->u.fld[0]).rt_rtx)), (newdest)); > do_SUBST(&((((setsrc)->u.fld[1]).rt_rtx)), (newdest)); > subst_done = 1; > } > > else if ((code == PLUS || code == MULT) > && ((enum rtx_code) (src_op0)->code) == code > && ((enum rtx_code) ((((src_op0)->u.fld[0]).rt_rtx))->code) == code > && ((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT || ((enum mode_class) mode_class[mode]) == MODE_COMPLEX_INT || ((enum mode_class) mode_class[mode]) == MODE_VECTOR_INT) > || ((((enum mode_class) mode_class[mode]) == MODE_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_DECIMAL_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_COMPLEX_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_VECTOR_FLOAT) > && global_options.x_flag_unsafe_math_optimizations))) > { > rtx p = ((((((src_op0)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > rtx q = ((((((src_op0)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx); > rtx r = (((src_op0)->u.fld[1]).rt_rtx); > rtx s = src_op1; > > > > > if ((rtx_equal_p (p,r) && rtx_equal_p (q,s)) > || (rtx_equal_p (p,s) && rtx_equal_p (q,r))) > { > newi2pat = gen_rtx_fmt_ee_stat (SET, (VOIDmode), (newdest), ((((src_op0)->u.fld[0]).rt_rtx)) ) > ; > do_SUBST(&((((setsrc)->u.fld[0]).rt_rtx)), (newdest)); > do_SUBST(&((((setsrc)->u.fld[1]).rt_rtx)), (newdest)); > subst_done = 1; > } > > > else if (rtx_equal_p (p,q) && rtx_equal_p (r,s)) > { > rtx tmp = simplify_gen_binary (code, mode, p, r); > newi2pat = gen_rtx_fmt_ee_stat (SET, (VOIDmode), (newdest), (tmp) ); > do_SUBST(&((((setsrc)->u.fld[0]).rt_rtx)), (newdest)); > do_SUBST(&((((setsrc)->u.fld[1]).rt_rtx)), (newdest)); > subst_done = 1; > } > } > } > > if (!subst_done) > { > newi2pat = gen_rtx_fmt_ee_stat (SET, (VOIDmode), (newdest), (*split) ); > do_SUBST(&(*split), (newdest)); > } > > i2_code_number = recog_for_combine (&newi2pat, i2, &new_i2_notes); > > > > if (((enum rtx_code) (newi2pat)->code) == PARALLEL) > for (i = (((((newi2pat)->u.fld[0]).rt_rtvec))->num_elem) - 1; i >= 0; i--) > if (((enum rtx_code) ((((((newi2pat)->u.fld[0]).rt_rtvec))->elem[i]))->code) == CLOBBER) > { > rtx reg = ((((((((newi2pat)->u.fld[0]).rt_rtvec))->elem[i]))->u.fld[0]).rt_rtx); > if (reg_overlap_mentioned_p (reg, newpat)) > { > undo_all (); > return 0; > } > } > > > > if (i2_code_number >= 0 && ! (split_code == MULT && ! have_mult)) > insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes); > } > } ># 3779 "../../gcc/combine.c" > else if (i1 && insn_code_number < 0 && asm_noperands (newpat) < 0 > && ((enum rtx_code) (newpat)->code) == PARALLEL > && (((((newpat)->u.fld[0]).rt_rtvec))->num_elem) == 2 > && ((enum rtx_code) ((((((newpat)->u.fld[0]).rt_rtvec))->elem[0]))->code) == SET > && ((enum rtx_code) (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[0]))->u.fld[1]).rt_rtx))->code) == SIGN_EXTEND > && (((enum machine_mode) (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[0]))->u.fld[0]).rt_rtx))->mode) > == ((enum machine_mode) (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[0]))->u.fld[1]).rt_rtx))->mode)) > && ((enum rtx_code) ((((((newpat)->u.fld[0]).rt_rtvec))->elem[1]))->code) == SET > && rtx_equal_p (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[1]))->u.fld[1]).rt_rtx), > (((((((((((newpat)->u.fld[0]).rt_rtvec))->elem[0]))->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx)) > && ! use_crosses_set_p (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[1]))->u.fld[1]).rt_rtx), > ((((df->insns[((((i2)->u.fld[0]).rt_int))]))->luid))) > && ((enum rtx_code) (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[1]))->u.fld[0]).rt_rtx))->code) != ZERO_EXTRACT > && ((enum rtx_code) (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[1]))->u.fld[0]).rt_rtx))->code) != STRICT_LOW_PART > && ! (temp = ((((((((newpat)->u.fld[0]).rt_rtvec))->elem[1]))->u.fld[0]).rt_rtx), > ((((enum rtx_code) (temp)->code) == REG) > && ( > VEC_reg_stat_type_base_index ># 3795 "../../gcc/combine.c" > (((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),(rhs_regno(temp)) )) > ->nonzero_bits != 0 > && mode_precision[((enum machine_mode) (temp)->mode)] < (8 * (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)) > && mode_precision[((enum machine_mode) (temp)->mode)] < (8 * 4) > && (( > VEC_reg_stat_type_base_index ># 3799 "../../gcc/combine.c" > (((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),(rhs_regno(temp)) )) > ->nonzero_bits > != mode_mask_array[word_mode]))) > && ! (((enum rtx_code) (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[1]))->u.fld[0]).rt_rtx))->code) == SUBREG > && (temp = (((((((((((newpat)->u.fld[0]).rt_rtvec))->elem[1]))->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), > ((((enum rtx_code) (temp)->code) == REG) > && ( > VEC_reg_stat_type_base_index ># 3805 "../../gcc/combine.c" > (((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),(rhs_regno(temp)) )) > ->nonzero_bits != 0 > && mode_precision[((enum machine_mode) (temp)->mode)] < (8 * (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)) > && mode_precision[((enum machine_mode) (temp)->mode)] < (8 * 4) > && (( > VEC_reg_stat_type_base_index ># 3809 "../../gcc/combine.c" > (((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),(rhs_regno(temp)) )) > ->nonzero_bits > != mode_mask_array[word_mode])))) > && ! reg_overlap_mentioned_p (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[1]))->u.fld[0]).rt_rtx), > ((((((((newpat)->u.fld[0]).rt_rtvec))->elem[1]))->u.fld[1]).rt_rtx)) > && ! find_reg_note (i3, REG_UNUSED, > ((((((((newpat)->u.fld[0]).rt_rtvec))->elem[0]))->u.fld[0]).rt_rtx))) > { > rtx ni2dest; > > newi2pat = (((((newpat)->u.fld[0]).rt_rtvec))->elem[0]); > ni2dest = ((((((((newpat)->u.fld[0]).rt_rtvec))->elem[0]))->u.fld[0]).rt_rtx); > newpat = (((((newpat)->u.fld[0]).rt_rtvec))->elem[1]); > do_SUBST(&((((newpat)->u.fld[1]).rt_rtx)), (rtl_hooks.gen_lowpart (((enum machine_mode) ((((newpat)->u.fld[1]).rt_rtx))->mode), ni2dest))) > ; > i2_code_number = recog_for_combine (&newi2pat, i2, &new_i2_notes); > > if (i2_code_number >= 0) > insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes); > > if (insn_code_number >= 0) > swap_i2i3 = 1; > } > > > > > > > else if (i1 && insn_code_number < 0 && asm_noperands (newpat) < 0 > && ((enum rtx_code) (newpat)->code) == PARALLEL > && (((((newpat)->u.fld[0]).rt_rtvec))->num_elem) == 2 > && ((enum rtx_code) ((((((newpat)->u.fld[0]).rt_rtvec))->elem[0]))->code) == SET > && ((enum rtx_code) (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[0]))->u.fld[0]).rt_rtx))->code) != ZERO_EXTRACT > && ((enum rtx_code) (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[0]))->u.fld[0]).rt_rtx))->code) != STRICT_LOW_PART > && ((enum rtx_code) ((((((newpat)->u.fld[0]).rt_rtvec))->elem[1]))->code) == SET > && ((enum rtx_code) (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[1]))->u.fld[0]).rt_rtx))->code) != ZERO_EXTRACT > && ((enum rtx_code) (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[1]))->u.fld[0]).rt_rtx))->code) != STRICT_LOW_PART > && ! reg_referenced_p (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[1]))->u.fld[0]).rt_rtx), > (((((newpat)->u.fld[0]).rt_rtvec))->elem[0])) > && ! reg_referenced_p (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[0]))->u.fld[0]).rt_rtx), > (((((newpat)->u.fld[0]).rt_rtvec))->elem[1])) > && ! (contains_muldiv (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[0]))->u.fld[1]).rt_rtx)) > && contains_muldiv (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[1]))->u.fld[1]).rt_rtx)))) > { > > > > > if (!use_crosses_set_p (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[1]))->u.fld[1]).rt_rtx), > ((((df->insns[((((i2)->u.fld[0]).rt_int))]))->luid))) > > > > ) > { > newi2pat = (((((newpat)->u.fld[0]).rt_rtvec))->elem[1]); > newpat = (((((newpat)->u.fld[0]).rt_rtvec))->elem[0]); > } > else if (!use_crosses_set_p (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[0]))->u.fld[1]).rt_rtx), > ((((df->insns[((((i2)->u.fld[0]).rt_int))]))->luid))) > > > > ) > { > newi2pat = (((((newpat)->u.fld[0]).rt_rtvec))->elem[0]); > newpat = (((((newpat)->u.fld[0]).rt_rtvec))->elem[1]); > } > else > { > undo_all (); > return 0; > } > > i2_code_number = recog_for_combine (&newi2pat, i2, &new_i2_notes); > > if (i2_code_number >= 0) > { > > > if (((enum rtx_code) (newi2pat)->code) == PARALLEL) > { > for (i = (((((newi2pat)->u.fld[0]).rt_rtvec))->num_elem) - 1; i >= 0; i--) > if (((enum rtx_code) ((((((newi2pat)->u.fld[0]).rt_rtvec))->elem[i]))->code) == CLOBBER) > { > rtx reg = ((((((((newi2pat)->u.fld[0]).rt_rtvec))->elem[i]))->u.fld[0]).rt_rtx); > if (reg_overlap_mentioned_p (reg, newpat)) > { > undo_all (); > return 0; > } > } > } > > insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes); > } > } > > > > if ((insn_code_number < 0 > > && (! check_asm_operands (newpat) || added_sets_1 || added_sets_2))) > { > undo_all (); > return 0; > } > > > if (undobuf.other_insn) > { > do { HARD_REG_ELT_TYPE *scan_tp_ = (newpat_used_regs); scan_tp_[0] = 0; scan_tp_[1] = 0; scan_tp_[2] = 0; scan_tp_[3] = 0; } while (0); > > other_pat = (((undobuf.other_insn)->u.fld[4]).rt_rtx); > other_code_number = recog_for_combine (&other_pat, undobuf.other_insn, > &new_other_notes); > > if (other_code_number < 0 && ! check_asm_operands (other_pat)) > { > undo_all (); > return 0; > } > } ># 3950 "../../gcc/combine.c" > if (!combine_validate_cost (i0, i1, i2, i3, newpat, newi2pat, other_pat)) > { > undo_all (); > return 0; > } > > if ((global_options.x_flag_var_tracking_assignments)) > { > struct undo *undo; > > for (undo = undobuf.undos; undo; undo = undo->next) > if (undo->kind == UNDO_MODE) > { > rtx reg = *undo->where.r; > enum machine_mode new_mode = ((enum machine_mode) (reg)->mode); > enum machine_mode old_mode = undo->old_contents.m; > > > adjust_reg_mode (reg, old_mode); > > if (reg == i2dest && i2scratch) > { > > > > > > propagate_for_debug (i2, last_combined_insn, reg, i2src); > i2scratch = 0; > > adjust_reg_mode (reg, new_mode); > } > else > { > rtx tempreg = gen_raw_REG (old_mode, (rhs_regno(reg))); > rtx first, last; > > if (reg == i2dest) > { > first = i2; > last = last_combined_insn; > } > else > { > first = i3; > last = undobuf.other_insn; > ((void)(!(last) ? fancy_abort ("../../gcc/combine.c", 3996, __FUNCTION__), 0 : 0)); > if (((((df->insns[((((last)->u.fld[0]).rt_int))]))->luid)) > < ((((df->insns[((((last_combined_insn)->u.fld[0]).rt_int))]))->luid))) > last = last_combined_insn; > } ># 4011 "../../gcc/combine.c" > propagate_for_debug (first, last, reg, tempreg); > adjust_reg_mode (reg, new_mode); > propagate_for_debug (first, last, tempreg, > lowpart_subreg (old_mode, reg, new_mode)); > } > } > } > > > > > > if (changed_i3_dest) > { > (((i3)->u.fld[4]).rt_rtx) = newpat; > adjust_for_new_dest (i3); > } > > > > > if (undobuf.other_insn) > { > rtx note, next; > > (((undobuf.other_insn)->u.fld[4]).rt_rtx) = other_pat; > > > > > for (note = (((undobuf.other_insn)->u.fld[7]).rt_rtx); note; note = next) > { > next = (((note)->u.fld[1]).rt_rtx); > > if (((enum reg_note) ((enum machine_mode) (note)->mode)) == REG_UNUSED > && ! reg_set_p ((((note)->u.fld[0]).rt_rtx), (((undobuf.other_insn)->u.fld[4]).rt_rtx))) > remove_note (undobuf.other_insn, note); > } > > distribute_notes (new_other_notes, undobuf.other_insn, > undobuf.other_insn, (rtx) 0, (rtx) 0, (rtx) 0, > (rtx) 0); > } > > if (swap_i2i3) > { > rtx insn; > struct insn_link *link; > rtx ni2dest; > > > > (((i3)->u.fld[4]).rt_rtx) = newpat; > adjust_for_new_dest (i3); ># 4076 "../../gcc/combine.c" > if (((enum rtx_code) (newi2pat)->code) == PARALLEL) > ni2dest = ((((((((newi2pat)->u.fld[0]).rt_rtvec))->elem[0]))->u.fld[0]).rt_rtx); > else > ni2dest = (((newi2pat)->u.fld[0]).rt_rtx); > > for (insn = (((i3)->u.fld[2]).rt_rtx); > insn && (this_basic_block->next_bb == ((cfun + 0)->cfg->x_exit_block_ptr) > || insn != (this_basic_block->next_bb)->il.rtl->head_); > insn = (((insn)->u.fld[2]).rt_rtx)) > { > if (((((enum rtx_code) (insn)->code) == INSN) || (((enum rtx_code) (insn)->code) == DEBUG_INSN) || (((enum rtx_code) (insn)->code) == JUMP_INSN) || (((enum rtx_code) (insn)->code) == CALL_INSN)) && reg_referenced_p (ni2dest, (((insn)->u.fld[4]).rt_rtx))) > { > for ((link) = (uid_log_links[(((insn)->u.fld[0]).rt_int)]); (link); (link) = (link)->next) > if (link->insn == i3) > link->insn = i1; > > break; > } > } > } > > { > rtx i3notes, i2notes, i1notes = 0, i0notes = 0; > struct insn_link *i3links, *i2links, *i1links = 0, *i0links = 0; > rtx midnotes = 0; > int from_luid; > > > > rtx elim_i2 = ((newi2pat && reg_set_p (i2dest, newi2pat)) > || i2dest_in_i2src || i2dest_in_i1src || i2dest_in_i0src > || !i2dest_killed > ? 0 : i2dest); > rtx elim_i1 = (i1 == 0 || i1dest_in_i1src || i1dest_in_i0src > || (newi2pat && reg_set_p (i1dest, newi2pat)) > || !i1dest_killed > ? 0 : i1dest); > rtx elim_i0 = (i0 == 0 || i0dest_in_i0src > || (newi2pat && reg_set_p (i0dest, newi2pat)) > || !i0dest_killed > ? 0 : i0dest); > > > > i3notes = (((i3)->u.fld[7]).rt_rtx), i3links = (uid_log_links[(((i3)->u.fld[0]).rt_int)]); > i2notes = (((i2)->u.fld[7]).rt_rtx), i2links = (uid_log_links[(((i2)->u.fld[0]).rt_int)]); > if (i1) > i1notes = (((i1)->u.fld[7]).rt_rtx), i1links = (uid_log_links[(((i1)->u.fld[0]).rt_int)]); > if (i0) > i0notes = (((i0)->u.fld[7]).rt_rtx), i0links = (uid_log_links[(((i0)->u.fld[0]).rt_int)]); > > > > > > reset_used_flags (i3notes); > reset_used_flags (i2notes); > reset_used_flags (i1notes); > reset_used_flags (i0notes); > reset_used_flags (newpat); > reset_used_flags (newi2pat); > if (undobuf.other_insn) > reset_used_flags ((((undobuf.other_insn)->u.fld[4]).rt_rtx)); > > i3notes = copy_rtx_if_shared (i3notes); > i2notes = copy_rtx_if_shared (i2notes); > i1notes = copy_rtx_if_shared (i1notes); > i0notes = copy_rtx_if_shared (i0notes); > newpat = copy_rtx_if_shared (newpat); > newi2pat = copy_rtx_if_shared (newi2pat); > if (undobuf.other_insn) > reset_used_flags ((((undobuf.other_insn)->u.fld[4]).rt_rtx)); > > (((i3)->u.fld[6]).rt_int) = insn_code_number; > (((i3)->u.fld[4]).rt_rtx) = newpat; > > if ((((enum rtx_code) (i3)->code) == CALL_INSN) && (((i3)->u.fld[8]).rt_rtx)) > { > rtx call_usage = (((i3)->u.fld[8]).rt_rtx); > > reset_used_flags (call_usage); > call_usage = copy_rtx (call_usage); > > if (substed_i2) > { > > > > ((void)(!(i2src) ? fancy_abort ("../../gcc/combine.c", 4164, __FUNCTION__), 0 : 0)); > replace_rtx (call_usage, i2dest, i2src); > } > > if (substed_i1) > replace_rtx (call_usage, i1dest, i1src); > if (substed_i0) > replace_rtx (call_usage, i0dest, i0src); > > (((i3)->u.fld[8]).rt_rtx) = call_usage; > } > > if (undobuf.other_insn) > (((undobuf.other_insn)->u.fld[6]).rt_int) = other_code_number; ># 4188 "../../gcc/combine.c" > if (i3_subst_into_i2) > { > for (i = 0; i < ((((((((i2)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->num_elem); i++) > if ((((enum rtx_code) (((((((((i2)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->elem[i]))->code) == SET > || ((enum rtx_code) (((((((((i2)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->elem[i]))->code) == CLOBBER) > && (((enum rtx_code) ((((((((((((i2)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->elem[i]))->u.fld[0]).rt_rtx))->code) == REG) > && (((((((((((i2)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->elem[i]))->u.fld[0]).rt_rtx) != i2dest > && ! find_reg_note (i2, REG_UNUSED, > (((((((((((i2)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtvec))->elem[i]))->u.fld[0]).rt_rtx))) > for (temp = (((i2)->u.fld[2]).rt_rtx); > temp && (this_basic_block->next_bb == ((cfun + 0)->cfg->x_exit_block_ptr) > || (this_basic_block)->il.rtl->head_ != temp); > temp = (((temp)->u.fld[2]).rt_rtx)) > if (temp != i3 && ((((enum rtx_code) (temp)->code) == INSN) || (((enum rtx_code) (temp)->code) == DEBUG_INSN) || (((enum rtx_code) (temp)->code) == JUMP_INSN) || (((enum rtx_code) (temp)->code) == CALL_INSN))) > for ((link) = (uid_log_links[(((temp)->u.fld[0]).rt_int)]); (link); (link) = (link)->next) > if (link->insn == i2) > link->insn = i3; > > if (i3notes) > { > rtx link = i3notes; > while ((((link)->u.fld[1]).rt_rtx)) > link = (((link)->u.fld[1]).rt_rtx); > (((link)->u.fld[1]).rt_rtx) = i2notes; > } > else > i3notes = i2notes; > i2notes = 0; > } > > (uid_log_links[(((i3)->u.fld[0]).rt_int)]) = ((void *)0); > (((i3)->u.fld[7]).rt_rtx) = 0; > (uid_log_links[(((i2)->u.fld[0]).rt_int)]) = ((void *)0); > (((i2)->u.fld[7]).rt_rtx) = 0; > > if (newi2pat) > { > if ((global_options.x_flag_var_tracking_assignments) && i2scratch) > propagate_for_debug (i2, last_combined_insn, i2dest, i2src); > (((i2)->u.fld[6]).rt_int) = i2_code_number; > (((i2)->u.fld[4]).rt_rtx) = newi2pat; > } > else > { > if ((global_options.x_flag_var_tracking_assignments) && i2src) > propagate_for_debug (i2, last_combined_insn, i2dest, i2src); > set_insn_deleted (i2);; > } > > if (i1) > { > (uid_log_links[(((i1)->u.fld[0]).rt_int)]) = ((void *)0); > (((i1)->u.fld[7]).rt_rtx) = 0; > if ((global_options.x_flag_var_tracking_assignments)) > propagate_for_debug (i1, last_combined_insn, i1dest, i1src); > set_insn_deleted (i1);; > } > > if (i0) > { > (uid_log_links[(((i0)->u.fld[0]).rt_int)]) = ((void *)0); > (((i0)->u.fld[7]).rt_rtx) = 0; > if ((global_options.x_flag_var_tracking_assignments)) > propagate_for_debug (i0, last_combined_insn, i0dest, i0src); > set_insn_deleted (i0);; > } > > > > > > > if (i0) > from_luid = ((((df->insns[((((i0)->u.fld[0]).rt_int))]))->luid)); > else if (i1) > from_luid = ((((df->insns[((((i1)->u.fld[0]).rt_int))]))->luid)); > else > from_luid = ((((df->insns[((((i2)->u.fld[0]).rt_int))]))->luid)); > if (newi2pat) > move_deaths (newi2pat, (rtx) 0, from_luid, i2, &midnotes); > move_deaths (newpat, newi2pat, from_luid, i3, &midnotes); > > > if (i3notes) > distribute_notes (i3notes, i3, i3, newi2pat ? i2 : (rtx) 0, > elim_i2, elim_i1, elim_i0); > if (i2notes) > distribute_notes (i2notes, i2, i3, newi2pat ? i2 : (rtx) 0, > elim_i2, elim_i1, elim_i0); > if (i1notes) > distribute_notes (i1notes, i1, i3, newi2pat ? i2 : (rtx) 0, > elim_i2, elim_i1, elim_i0); > if (i0notes) > distribute_notes (i0notes, i0, i3, newi2pat ? i2 : (rtx) 0, > elim_i2, elim_i1, elim_i0); > if (midnotes) > distribute_notes (midnotes, (rtx) 0, i3, newi2pat ? i2 : (rtx) 0, > elim_i2, elim_i1, elim_i0); > > > > > > if (newi2pat && new_i2_notes) > distribute_notes (new_i2_notes, i2, i2, (rtx) 0, (rtx) 0, (rtx) 0, > (rtx) 0); > > if (new_i3_notes) > distribute_notes (new_i3_notes, i3, i3, (rtx) 0, (rtx) 0, (rtx) 0, > (rtx) 0); ># 4306 "../../gcc/combine.c" > if (i3dest_killed) > { > if (newi2pat && reg_set_p (i3dest_killed, newi2pat)) > distribute_notes (alloc_reg_note (REG_DEAD, i3dest_killed, > (rtx) 0), > (rtx) 0, i2, (rtx) 0, elim_i2, elim_i1, elim_i0); > else > distribute_notes (alloc_reg_note (REG_DEAD, i3dest_killed, > (rtx) 0), > (rtx) 0, i3, newi2pat ? i2 : (rtx) 0, > elim_i2, elim_i1, elim_i0); > } > > if (i2dest_in_i2src) > { > rtx new_note = alloc_reg_note (REG_DEAD, i2dest, (rtx) 0); > if (newi2pat && reg_set_p (i2dest, newi2pat)) > distribute_notes (new_note, (rtx) 0, i2, (rtx) 0, (rtx) 0, > (rtx) 0, (rtx) 0); > else > distribute_notes (new_note, (rtx) 0, i3, newi2pat ? i2 : (rtx) 0, > (rtx) 0, (rtx) 0, (rtx) 0); > } > > if (i1dest_in_i1src) > { > rtx new_note = alloc_reg_note (REG_DEAD, i1dest, (rtx) 0); > if (newi2pat && reg_set_p (i1dest, newi2pat)) > distribute_notes (new_note, (rtx) 0, i2, (rtx) 0, (rtx) 0, > (rtx) 0, (rtx) 0); > else > distribute_notes (new_note, (rtx) 0, i3, newi2pat ? i2 : (rtx) 0, > (rtx) 0, (rtx) 0, (rtx) 0); > } > > if (i0dest_in_i0src) > { > rtx new_note = alloc_reg_note (REG_DEAD, i0dest, (rtx) 0); > if (newi2pat && reg_set_p (i0dest, newi2pat)) > distribute_notes (new_note, (rtx) 0, i2, (rtx) 0, (rtx) 0, > (rtx) 0, (rtx) 0); > else > distribute_notes (new_note, (rtx) 0, i3, newi2pat ? i2 : (rtx) 0, > (rtx) 0, (rtx) 0, (rtx) 0); > } > > distribute_links (i3links); > distribute_links (i2links); > distribute_links (i1links); > distribute_links (i0links); > > if ((((enum rtx_code) (i2dest)->code) == REG)) > { > struct insn_link *link; > rtx i2_insn = 0, i2_val = 0, set; ># 4369 "../../gcc/combine.c" > for ((link) = (uid_log_links[(((i3)->u.fld[0]).rt_int)]); (link); (link) = (link)->next) > if ((set = (((((enum rtx_code) (link->insn)->code) == INSN) || (((enum rtx_code) (link->insn)->code) == DEBUG_INSN) || (((enum rtx_code) (link->insn)->code) == JUMP_INSN) || (((enum rtx_code) (link->insn)->code) == CALL_INSN)) ? (((enum rtx_code) ((((link->insn)->u.fld[4]).rt_rtx))->code) == SET ? (((link->insn)->u.fld[4]).rt_rtx) : single_set_2 (link->insn, (((link->insn)->u.fld[4]).rt_rtx))) : (rtx) 0)) != 0 > && rtx_equal_p (i2dest, (((set)->u.fld[0]).rt_rtx))) > i2_insn = link->insn, i2_val = (((set)->u.fld[1]).rt_rtx); > > record_value_for_reg (i2dest, i2_insn, i2_val); > > > > if (! added_sets_2 > && (newi2pat == 0 || ! reg_mentioned_p (i2dest, newi2pat)) > && ! i2dest_in_i2src) > (regstat_n_sets_and_refs[(rhs_regno(i2dest))].sets += -1); > } > > if (i1 && (((enum rtx_code) (i1dest)->code) == REG)) > { > struct insn_link *link; > rtx i1_insn = 0, i1_val = 0, set; > > for ((link) = (uid_log_links[(((i3)->u.fld[0]).rt_int)]); (link); (link) = (link)->next) > if ((set = (((((enum rtx_code) (link->insn)->code) == INSN) || (((enum rtx_code) (link->insn)->code) == DEBUG_INSN) || (((enum rtx_code) (link->insn)->code) == JUMP_INSN) || (((enum rtx_code) (link->insn)->code) == CALL_INSN)) ? (((enum rtx_code) ((((link->insn)->u.fld[4]).rt_rtx))->code) == SET ? (((link->insn)->u.fld[4]).rt_rtx) : single_set_2 (link->insn, (((link->insn)->u.fld[4]).rt_rtx))) : (rtx) 0)) != 0 > && rtx_equal_p (i1dest, (((set)->u.fld[0]).rt_rtx))) > i1_insn = link->insn, i1_val = (((set)->u.fld[1]).rt_rtx); > > record_value_for_reg (i1dest, i1_insn, i1_val); > > if (! added_sets_1 && ! i1dest_in_i1src) > (regstat_n_sets_and_refs[(rhs_regno(i1dest))].sets += -1); > } > > if (i0 && (((enum rtx_code) (i0dest)->code) == REG)) > { > struct insn_link *link; > rtx i0_insn = 0, i0_val = 0, set; > > for ((link) = (uid_log_links[(((i3)->u.fld[0]).rt_int)]); (link); (link) = (link)->next) > if ((set = (((((enum rtx_code) (link->insn)->code) == INSN) || (((enum rtx_code) (link->insn)->code) == DEBUG_INSN) || (((enum rtx_code) (link->insn)->code) == JUMP_INSN) || (((enum rtx_code) (link->insn)->code) == CALL_INSN)) ? (((enum rtx_code) ((((link->insn)->u.fld[4]).rt_rtx))->code) == SET ? (((link->insn)->u.fld[4]).rt_rtx) : single_set_2 (link->insn, (((link->insn)->u.fld[4]).rt_rtx))) : (rtx) 0)) != 0 > && rtx_equal_p (i0dest, (((set)->u.fld[0]).rt_rtx))) > i0_insn = link->insn, i0_val = (((set)->u.fld[1]).rt_rtx); > > record_value_for_reg (i0dest, i0_insn, i0_val); > > if (! added_sets_0 && ! i0dest_in_i0src) > (regstat_n_sets_and_refs[(rhs_regno(i0dest))].sets += -1); > } > > > > > > if (newi2pat) > note_stores (newi2pat, set_nonzero_bits_and_sign_copies, ((void *)0)); > note_stores (newpat, set_nonzero_bits_and_sign_copies, ((void *)0)); > } > > if (undobuf.other_insn != (rtx) 0) > { > if (dump_file) > { > fprintf (dump_file, "modifying other_insn "); > dump_insn_slim (dump_file, undobuf.other_insn); > } > df_insn_rescan (undobuf.other_insn); > } > > if (i0 && !((((enum rtx_code) (i0)->code) == NOTE) && ((((i0)->u.fld[5]).rt_int) == NOTE_INSN_DELETED))) > { > if (dump_file) > { > fprintf (dump_file, "modifying insn i1 "); > dump_insn_slim (dump_file, i0); > } > df_insn_rescan (i0); > } > > if (i1 && !((((enum rtx_code) (i1)->code) == NOTE) && ((((i1)->u.fld[5]).rt_int) == NOTE_INSN_DELETED))) > { > if (dump_file) > { > fprintf (dump_file, "modifying insn i1 "); > dump_insn_slim (dump_file, i1); > } > df_insn_rescan (i1); > } > > if (i2 && !((((enum rtx_code) (i2)->code) == NOTE) && ((((i2)->u.fld[5]).rt_int) == NOTE_INSN_DELETED))) > { > if (dump_file) > { > fprintf (dump_file, "modifying insn i2 "); > dump_insn_slim (dump_file, i2); > } > df_insn_rescan (i2); > } > > if (i3 && !((((enum rtx_code) (i3)->code) == NOTE) && ((((i3)->u.fld[5]).rt_int) == NOTE_INSN_DELETED))) > { > if (dump_file) > { > fprintf (dump_file, "modifying insn i3 "); > dump_insn_slim (dump_file, i3); > } > df_insn_rescan (i3); > } > > > > > if (returnjump_p (i3) || any_uncondjump_p (i3)) > { > *new_direct_jump_p = 1; > mark_jump_label ((((i3)->u.fld[4]).rt_rtx), i3, 0); > update_cfg_for_uncondjump (i3); > } > > if (undobuf.other_insn != (rtx) 0 > && (returnjump_p (undobuf.other_insn) > || any_uncondjump_p (undobuf.other_insn))) > { > *new_direct_jump_p = 1; > update_cfg_for_uncondjump (undobuf.other_insn); > } > > > > if ((((enum rtx_code) (i3)->code) == JUMP_INSN) > && ((enum rtx_code) (newpat)->code) == SET > && (((newpat)->u.fld[1]).rt_rtx) == (((&default_target_rtl)->x_global_rtl)[GR_PC]) > && (((newpat)->u.fld[0]).rt_rtx) == (((&default_target_rtl)->x_global_rtl)[GR_PC])) > { > *new_direct_jump_p = 1; > update_cfg_for_uncondjump (i3); > } > > if (undobuf.other_insn != (rtx) 0 > && (((enum rtx_code) (undobuf.other_insn)->code) == JUMP_INSN) > && ((enum rtx_code) ((((undobuf.other_insn)->u.fld[4]).rt_rtx))->code) == SET > && ((((((undobuf.other_insn)->u.fld[4]).rt_rtx))->u.fld[1]).rt_rtx) == (((&default_target_rtl)->x_global_rtl)[GR_PC]) > && ((((((undobuf.other_insn)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtx) == (((&default_target_rtl)->x_global_rtl)[GR_PC])) > { > *new_direct_jump_p = 1; > update_cfg_for_uncondjump (undobuf.other_insn); > } > > combine_successes++; > undo_commit (); > > if (added_links_insn > && (newi2pat == 0 || ((((df->insns[((((added_links_insn)->u.fld[0]).rt_int))]))->luid)) < ((((df->insns[((((i2)->u.fld[0]).rt_int))]))->luid))) > && ((((df->insns[((((added_links_insn)->u.fld[0]).rt_int))]))->luid)) < ((((df->insns[((((i3)->u.fld[0]).rt_int))]))->luid))) > return added_links_insn; > else > return newi2pat ? i2 : i3; >} > > > >static void >undo_all (void) >{ > struct undo *undo, *next; > > for (undo = undobuf.undos; undo; undo = next) > { > next = undo->next; > switch (undo->kind) > { > case UNDO_RTX: > *undo->where.r = undo->old_contents.r; > break; > case UNDO_INT: > *undo->where.i = undo->old_contents.i; > break; > case UNDO_MODE: > adjust_reg_mode (*undo->where.r, undo->old_contents.m); > break; > case UNDO_LINKS: > *undo->where.l = undo->old_contents.l; > break; > default: > (fancy_abort ("../../gcc/combine.c", 4550, __FUNCTION__)); > } > > undo->next = undobuf.frees; > undobuf.frees = undo; > } > > undobuf.undos = 0; >} > > > > >static void >undo_commit (void) >{ > struct undo *undo, *next; > > for (undo = undobuf.undos; undo; undo = next) > { > next = undo->next; > undo->next = undobuf.frees; > undobuf.frees = undo; > } > undobuf.undos = 0; >} ># 4584 "../../gcc/combine.c" >static rtx * >find_split_point (rtx *loc, rtx insn, unsigned char set_src) >{ > rtx x = *loc; > enum rtx_code code = ((enum rtx_code) (x)->code); > rtx *split; > unsigned long long len = 0; > long long pos = 0; > int unsignedp = 0; > rtx inner = (rtx) 0; > > > switch (code) > { > case SUBREG: > > > > if ((((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == MEM)) > return loc; > > return find_split_point (&(((x)->u.fld[0]).rt_rtx), insn, 0); > > case MEM: > > > > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == CONST > || ((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == SYMBOL_REF) > { > enum machine_mode address_mode > = targetm.addr_space.address_mode ((get_mem_attrs (x)->addrspace)); > > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), (gen_rtx_fmt_ee_stat (LO_SUM, (address_mode), (gen_rtx_fmt_e_stat (HIGH, (address_mode), ((((x)->u.fld[0]).rt_rtx)) )), ((((x)->u.fld[0]).rt_rtx)) ))) > > > ; > return &((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > } > > > > > > > > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == PLUS > && (((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT) > && ! memory_address_addr_space_p (((enum machine_mode) (x)->mode), (((x)->u.fld[0]).rt_rtx), > (get_mem_attrs (x)->addrspace))) > { > rtx reg = regno_reg_rtx[114]; > rtx seq = combine_split_insns (gen_rtx_fmt_ee_stat (SET, (VOIDmode), (reg), ((((x)->u.fld[0]).rt_rtx)) ) > , > subst_insn); > > > > > > > if (seq > && (((seq)->u.fld[2]).rt_rtx) != (rtx) 0 > && ((((((seq)->u.fld[2]).rt_rtx))->u.fld[2]).rt_rtx) == (rtx) 0 > && (((enum rtx_code) (seq)->code) == INSN) > && ((enum rtx_code) ((((seq)->u.fld[4]).rt_rtx))->code) == SET > && ((((((seq)->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtx) == reg > && ! reg_mentioned_p (reg, > ((((((seq)->u.fld[4]).rt_rtx))->u.fld[1]).rt_rtx)) > && (((enum rtx_code) ((((seq)->u.fld[2]).rt_rtx))->code) == INSN) > && ((enum rtx_code) (((((((seq)->u.fld[2]).rt_rtx))->u.fld[4]).rt_rtx))->code) == SET > && (((((((((seq)->u.fld[2]).rt_rtx))->u.fld[4]).rt_rtx))->u.fld[0]).rt_rtx) == reg > && memory_address_addr_space_p > (((enum machine_mode) (x)->mode), (((((((((seq)->u.fld[2]).rt_rtx))->u.fld[4]).rt_rtx))->u.fld[1]).rt_rtx), > (get_mem_attrs (x)->addrspace))) > { > rtx src1 = ((((((seq)->u.fld[4]).rt_rtx))->u.fld[1]).rt_rtx); > rtx src2 = (((((((((seq)->u.fld[2]).rt_rtx))->u.fld[4]).rt_rtx))->u.fld[1]).rt_rtx); > > > > > > > src2 = replace_rtx (src2, reg, src1); > split = 0; > if ((((src2)->u.fld[0]).rt_rtx) == src1) > split = &(((src2)->u.fld[0]).rt_rtx); > else if ((rtx_format[(int) (((enum rtx_code) ((((src2)->u.fld[0]).rt_rtx))->code))])[0] == 'e' > && ((((((src2)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx) == src1) > split = &((((((src2)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > > if (split) > { > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), (src2)); > return split; > } > } > > > > > > > else if (!(((rtx_class[(int) (((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code))]) & (~1)) == (RTX_OBJ & (~1))) > && ! (((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code) == SUBREG > && (((rtx_class[(int) (((enum rtx_code) ((((((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code))]) & (~1)) == (RTX_OBJ & (~1))))) > return &((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > } > > > > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == PLUS > && ! memory_address_addr_space_p (((enum machine_mode) (x)->mode), (((x)->u.fld[0]).rt_rtx), > (get_mem_attrs (x)->addrspace)) > && ! (((rtx_class[(int) (((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code))]) & (~1)) == (RTX_OBJ & (~1))) > && ! (((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code) == SUBREG > && (((rtx_class[(int) (((enum rtx_code) ((((((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code))]) & (~1)) == (RTX_OBJ & (~1))))) > return &((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > break; > > case SET: ># 4722 "../../gcc/combine.c" > split = find_split_point (&(((x)->u.fld[1]).rt_rtx), insn, 1); > if (split && split != &(((x)->u.fld[1]).rt_rtx)) > return split; > > > split = find_split_point (&(((x)->u.fld[0]).rt_rtx), insn, 0); > if (split && split != &(((x)->u.fld[0]).rt_rtx)) > return split; > > > > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == ZERO_EXTRACT > && ((((enum mode_class) mode_class[((enum machine_mode) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode)]) == MODE_INT || ((enum mode_class) mode_class[((enum machine_mode) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode)]) == MODE_PARTIAL_INT) && mode_precision[((enum machine_mode) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode)] <= (8 * 8)) > && (((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[2]).rt_rtx))->code) == CONST_INT) > && (((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && ((((((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]) > + ((((((((x)->u.fld[0]).rt_rtx))->u.fld[2]).rt_rtx))->u.hwint[0])) > <= mode_precision[((enum machine_mode) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode)]) > && ! side_effects_p (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))) > { > long long pos = ((((((((x)->u.fld[0]).rt_rtx))->u.fld[2]).rt_rtx))->u.hwint[0]); > unsigned long long len = ((((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]); > unsigned long long src = (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]); > rtx dest = ((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > enum machine_mode mode = ((enum machine_mode) (dest)->mode); > unsigned long long mask > = ((unsigned long long) 1 << len) - 1; > rtx or_mask; > > if (1) > pos = mode_precision[mode] - len - pos; > > or_mask = gen_int_mode (src << pos, mode); > if (src == mask) > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (simplify_gen_binary (IOR, mode, dest, or_mask))) > ; > else > { > rtx negmask = gen_int_mode (~(mask << pos), mode); > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (simplify_gen_binary (IOR, mode, simplify_gen_binary (AND, mode, dest, negmask), or_mask))) > > > > ; > } > > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), (dest)); > > split = find_split_point (&(((x)->u.fld[1]).rt_rtx), insn, 1); > if (split && split != &(((x)->u.fld[1]).rt_rtx)) > return split; > } > > > > code = ((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code); > > switch (code) > { > case AND: ># 4792 "../../gcc/combine.c" > if ((((enum rtx_code) (((((((x)->u.fld[1]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((enum rtx_code) (((((((x)->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx))->code) == REG) > && (pos = exact_log2 (((unsigned long long) ((((((((x)->u.fld[1]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0])))) >= 7 > && (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == REG) > && (split = find_single_use ((((x)->u.fld[0]).rt_rtx), insn, (rtx*) 0)) != 0 > && (((enum rtx_code) (*split)->code) == EQ || ((enum rtx_code) (*split)->code) == NE) > && (((*split)->u.fld[0]).rt_rtx) == (((x)->u.fld[0]).rt_rtx) > && (((*split)->u.fld[1]).rt_rtx) == (const_int_rtx[64])) > { > rtx extraction = make_extraction (((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode), > ((((((x)->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx), > pos, (rtx) 0, 1, 1, 0, 0); > if (extraction != 0) > { > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (extraction)); > return find_split_point (loc, insn, 0); > } > } > break; > > case NE: > > > if (1 == -1 && ((((((x)->u.fld[1]).rt_rtx))->u.fld[1]).rt_rtx) == (const_int_rtx[64]) > && ((enum machine_mode) ((((x)->u.fld[1]).rt_rtx))->mode) == ((enum machine_mode) (((((((x)->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx))->mode) > && 1 <= (pos = exact_log2 > (nonzero_bits (((((((x)->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx), > ((enum machine_mode) (((((((x)->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx))->mode))))) > { > enum machine_mode mode = ((enum machine_mode) (((((((x)->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx))->mode); > > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (gen_rtx_fmt_e_stat (NEG, (mode), (gen_rtx_fmt_ee_stat (LSHIFTRT, (mode), (((((((x)->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx)), (gen_rtx_CONST_INT (VOIDmode, (pos))) )) ))) > > > > ; > > split = find_split_point (&(((x)->u.fld[1]).rt_rtx), insn, 1); > if (split && split != &(((x)->u.fld[1]).rt_rtx)) > return split; > } > break; > > case SIGN_EXTEND: > inner = ((((((x)->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx); > > > > > if (((enum mode_class) mode_class[((enum machine_mode) (inner)->mode)]) == MODE_PARTIAL_INT > || ((enum mode_class) mode_class[((enum machine_mode) ((((x)->u.fld[1]).rt_rtx))->mode)]) == MODE_PARTIAL_INT) > break; > > pos = 0; > len = mode_precision[((enum machine_mode) (inner)->mode)]; > unsignedp = 0; > break; > > case SIGN_EXTRACT: > case ZERO_EXTRACT: > if ((((enum rtx_code) (((((((x)->u.fld[1]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((enum rtx_code) (((((((x)->u.fld[1]).rt_rtx))->u.fld[2]).rt_rtx))->code) == CONST_INT)) > { > inner = ((((((x)->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx); > len = ((((((((x)->u.fld[1]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]); > pos = ((((((((x)->u.fld[1]).rt_rtx))->u.fld[2]).rt_rtx))->u.hwint[0]); > > if (1) > pos = mode_precision[((enum machine_mode) (inner)->mode)] - len - pos; > unsignedp = (code == ZERO_EXTRACT); > } > break; > > default: > break; > } > > if (len && pos >= 0 > && pos + len <= mode_precision[((enum machine_mode) (inner)->mode)]) > { > enum machine_mode mode = ((enum machine_mode) ((((x)->u.fld[1]).rt_rtx))->mode); > > > > > > > > if (unsignedp && len <= 8) > { > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (gen_rtx_fmt_ee_stat (AND, (mode), (gen_rtx_fmt_ee_stat (LSHIFTRT, (mode), (rtl_hooks.gen_lowpart (mode, inner)), (gen_rtx_CONST_INT (VOIDmode, (pos))) )), (gen_rtx_CONST_INT (VOIDmode, (((unsigned long long) 1 << len) - 1))) ))) > > > > > > ; > > split = find_split_point (&(((x)->u.fld[1]).rt_rtx), insn, 1); > if (split && split != &(((x)->u.fld[1]).rt_rtx)) > return split; > } > else > { > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (gen_rtx_fmt_ee_stat (unsignedp ? LSHIFTRT : ASHIFTRT, mode, gen_rtx_fmt_ee_stat (ASHIFT, (mode), (rtl_hooks.gen_lowpart (mode, inner)), (gen_rtx_CONST_INT (VOIDmode, (mode_precision[mode] - len - pos))) ), gen_rtx_CONST_INT (VOIDmode, (mode_precision[mode] - len)) ))) > > > > > > > ; > > split = find_split_point (&(((x)->u.fld[1]).rt_rtx), insn, 1); > if (split && split != &(((x)->u.fld[1]).rt_rtx)) > return split; > } > } > > > > > if ((((rtx_class[(int) (((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code))]) & (~3)) == (RTX_COMPARE & (~3))) > && ((rtx_class[(int) (((enum rtx_code) (((((((x)->u.fld[1]).rt_rtx))->u.fld[1]).rt_rtx))->code))]) == RTX_CONST_OBJ) > && ((((rtx_class[(int) (((enum rtx_code) (((((((x)->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx))->code))]) & (~1)) == (RTX_OBJ & (~1))) > || (((enum rtx_code) (((((((x)->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx))->code) == SUBREG > && (((rtx_class[(int) (((enum rtx_code) ((((((((((x)->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code))]) & (~1)) == (RTX_OBJ & (~1)))))) > return &((((((x)->u.fld[1]).rt_rtx))->u.fld[1]).rt_rtx); > > > > > > > if (((((rtx_class[(int) (((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code))]) & (~3)) == (RTX_COMPARE & (~3))) || ((rtx_class[(int) (((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code))]) == RTX_UNARY)) > && ! register_operand (((((((x)->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx), VOIDmode)) > return &((((((x)->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx); > > return 0; > > case AND: > case IOR: > > > > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == NOT && ((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == NOT) > { > do_SUBST(&(*loc), (gen_rtx_fmt_e_stat (NOT, (((enum machine_mode) (x)->mode)), (gen_rtx_fmt_ee_stat (code == IOR ? AND : IOR, ((enum machine_mode) (x)->mode), ((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), ((((((x)->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx) )) ))) > > > > > ; > return find_split_point (loc, insn, set_src); > } > > > > > if (((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == NOT) > { > rtx tem = (((x)->u.fld[0]).rt_rtx); > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), ((((x)->u.fld[1]).rt_rtx))); > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (tem)); > } > break; > > case PLUS: > case MINUS: > > > > if (set_src && code == MINUS && ((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == MULT > && ((enum rtx_code) (((((((x)->u.fld[1]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT > && exact_log2 (((((((((x)->u.fld[1]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0])) < 0) > { > enum machine_mode mode = ((enum machine_mode) (x)->mode); > unsigned long long this_int = ((((((((x)->u.fld[1]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]); > long long other_int = trunc_int_for_mode (-this_int, mode); > do_SUBST(&(*loc), (gen_rtx_fmt_ee_stat (PLUS, (mode), (gen_rtx_fmt_ee_stat (MULT, (mode), (((((((x)->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx)), (gen_rtx_CONST_INT (VOIDmode, (other_int))) )), ((((x)->u.fld[0]).rt_rtx)) ))) > > > ; > return find_split_point (loc, insn, set_src); > } > > > > > if (!set_src && ((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == MULT) > return loc; > > default: > break; > } > > > switch ((rtx_class[(int) (code)])) > { > case RTX_BITFIELD_OPS: > case RTX_TERNARY: > split = find_split_point (&(((x)->u.fld[2]).rt_rtx), insn, 0); > if (split) > return split; > > case RTX_BIN_ARITH: > case RTX_COMM_ARITH: > case RTX_COMPARE: > case RTX_COMM_COMPARE: > split = find_split_point (&(((x)->u.fld[1]).rt_rtx), insn, 0); > if (split) > return split; > > case RTX_UNARY: > > > if (((enum rtx_code) (x)->code) != AND && ((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == AND) > return &(((x)->u.fld[0]).rt_rtx); > > split = find_split_point (&(((x)->u.fld[0]).rt_rtx), insn, 0); > if (split) > return split; > return loc; > > default: > > return 0; > } >} ># 5043 "../../gcc/combine.c" >static rtx >subst (rtx x, rtx from, rtx to, int in_dest, int in_cond, int unique_copy) >{ > enum rtx_code code = ((enum rtx_code) (x)->code); > enum machine_mode op0_mode = VOIDmode; > const char *fmt; > int len, i; > rtx new_rtx; ># 5061 "../../gcc/combine.c" > if (! in_dest && ((x) == (from) || ((((enum rtx_code) (x)->code) == REG) && (((enum rtx_code) (from)->code) == REG) && (rhs_regno(x)) == (rhs_regno(from)) && ((enum machine_mode) (x)->mode) == ((enum machine_mode) (from)->mode)))) > { > n_occurrences++; > return (unique_copy && n_occurrences > 1 ? copy_rtx (to) : to); > } ># 5074 "../../gcc/combine.c" > if (! in_dest && code == REG && (((enum rtx_code) (from)->code) == REG) > && reg_overlap_mentioned_p (x, from)) > return gen_rtx_fmt_e_stat (CLOBBER, (((enum machine_mode) (x)->mode)), ((const_int_rtx[64])) ); > > > > if (code != MEM && code != LO_SUM && (((rtx_class[(int) (((enum rtx_code) (x)->code))]) & (~1)) == (RTX_OBJ & (~1)))) > return x; > > > > > > > > if (((x) == (to) || ((((enum rtx_code) (x)->code) == REG) && (((enum rtx_code) (to)->code) == REG) && (rhs_regno(x)) == (rhs_regno(to)) && ((enum machine_mode) (x)->mode) == ((enum machine_mode) (to)->mode)))) > return to; ># 5101 "../../gcc/combine.c" > if (code == PARALLEL > && ((enum rtx_code) ((((((x)->u.fld[0]).rt_rtvec))->elem[0]))->code) == SET > && ((enum rtx_code) (((((((((x)->u.fld[0]).rt_rtvec))->elem[0]))->u.fld[1]).rt_rtx))->code) == ASM_OPERANDS) > { > new_rtx = subst ((((((x)->u.fld[0]).rt_rtvec))->elem[0]), from, to, 0, 0, unique_copy); > > > if (((enum rtx_code) (new_rtx)->code) == CLOBBER > && (((new_rtx)->u.fld[0]).rt_rtx) == (const_int_rtx[64])) > return new_rtx; > > do_SUBST(&((((((x)->u.fld[0]).rt_rtvec))->elem[0])), (new_rtx)); > > for (i = (((((x)->u.fld[0]).rt_rtvec))->num_elem) - 1; i >= 1; i--) > { > rtx dest = ((((((((x)->u.fld[0]).rt_rtvec))->elem[i]))->u.fld[0]).rt_rtx); > > if (!(((enum rtx_code) (dest)->code) == REG) > && ((enum rtx_code) (dest)->code) != CC0 > && ((enum rtx_code) (dest)->code) != PC) > { > new_rtx = subst (dest, from, to, 0, 0, unique_copy); > > > if (((enum rtx_code) (new_rtx)->code) == CLOBBER > && (((new_rtx)->u.fld[0]).rt_rtx) == (const_int_rtx[64])) > return new_rtx; > > do_SUBST(&(((((((((x)->u.fld[0]).rt_rtvec))->elem[i]))->u.fld[0]).rt_rtx)), (new_rtx)); > } > } > } > else > { > len = (rtx_length[(int) (code)]); > fmt = (rtx_format[(int) (code)]); > > > > > > if (code == SET > && ((((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == REG) > || ((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == CC0 > || ((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == PC)) > fmt = "ie"; > > > > if (fmt[0] == 'e') > op0_mode = ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode); > > for (i = 0; i < len; i++) > { > if (fmt[i] == 'E') > { > int j; > for (j = (((((x)->u.fld[i]).rt_rtvec))->num_elem) - 1; j >= 0; j--) > { > if ((((((((x)->u.fld[i]).rt_rtvec))->elem[j])) == (from) || ((((enum rtx_code) ((((((x)->u.fld[i]).rt_rtvec))->elem[j]))->code) == REG) && (((enum rtx_code) (from)->code) == REG) && (rhs_regno((((((x)->u.fld[i]).rt_rtvec))->elem[j]))) == (rhs_regno(from)) && ((enum machine_mode) ((((((x)->u.fld[i]).rt_rtvec))->elem[j]))->mode) == ((enum machine_mode) (from)->mode)))) > { > new_rtx = (unique_copy && n_occurrences > ? copy_rtx (to) : to); > n_occurrences++; > } > else > { > new_rtx = subst ((((((x)->u.fld[i]).rt_rtvec))->elem[j]), from, to, 0, 0, > unique_copy); > > > > if (((enum rtx_code) (new_rtx)->code) == CLOBBER > && (((new_rtx)->u.fld[0]).rt_rtx) == (const_int_rtx[64])) > return new_rtx; > } > > do_SUBST(&((((((x)->u.fld[i]).rt_rtvec))->elem[j])), (new_rtx)); > } > } > else if (fmt[i] == 'e') > { > > new_rtx = (((x)->u.fld[i]).rt_rtx); > if (in_dest > && i == 0 > && (((code == SUBREG || code == ZERO_EXTRACT) > && (((enum rtx_code) (new_rtx)->code) == REG)) > || code == STRICT_LOW_PART)) > ; > > else if ((((((x)->u.fld[i]).rt_rtx)) == (from) || ((((enum rtx_code) ((((x)->u.fld[i]).rt_rtx))->code) == REG) && (((enum rtx_code) (from)->code) == REG) && (rhs_regno((((x)->u.fld[i]).rt_rtx))) == (rhs_regno(from)) && ((enum machine_mode) ((((x)->u.fld[i]).rt_rtx))->mode) == ((enum machine_mode) (from)->mode)))) > { ># 5207 "../../gcc/combine.c" > if (((enum rtx_code) (to)->code) == SUBREG > && ! ((((enum mode_class) mode_class[((enum machine_mode) (to)->mode)]) == MODE_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) (to)->mode)]) == MODE_DECIMAL_FLOAT) ? (((enum mode_class) mode_class[((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)]) == MODE_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)]) == MODE_DECIMAL_FLOAT) : (((enum mode_class) mode_class[((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)]) == MODE_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)]) == MODE_DECIMAL_FLOAT) ? (((enum mode_class) mode_class[((enum machine_mode) (to)->mode)]) == MODE_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) (to)->mode)]) == MODE_DECIMAL_FLOAT) : ((enum mode_class) mode_class[((enum machine_mode) (to)->mode)]) == MODE_CC ? ((enum mode_class) mode_class[((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)]) == MODE_CC : ((enum mode_class) mode_class[((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)]) == MODE_CC ? ((enum mode_class) mode_class[((enum machine_mode) (to)->mode)]) == MODE_CC : ((((enum machine_mode) (to)->mode)) == V4HImode || (((enum machine_mode) (to)->mode)) == V2SFmode || (((enum machine_mode) (to)->mode)) == V1DImode || (((enum machine_mode) (to)->mode)) == V2SImode) ? ((((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4HImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V2SFmode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V1DImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V2SImode) : ((((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4HImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V2SFmode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V1DImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V2SImode) ? ((((enum machine_mode) (to)->mode)) == V4HImode || (((enum machine_mode) (to)->mode)) == V2SFmode || (((enum machine_mode) (to)->mode)) == V1DImode || (((enum machine_mode) (to)->mode)) == V2SImode) : ((((enum machine_mode) (to)->mode)) == V16QImode || (((enum machine_mode) (to)->mode)) == V8HImode || (((enum machine_mode) (to)->mode)) == V4SFmode || (((enum machine_mode) (to)->mode)) == V4SImode) ? ((((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V16QImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V8HImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4SFmode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4SImode) : ((((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V16QImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V8HImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4SFmode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4SImode) ? ((((enum machine_mode) (to)->mode)) == V16QImode || (((enum machine_mode) (to)->mode)) == V8HImode || (((enum machine_mode) (to)->mode)) == V4SFmode || (((enum machine_mode) (to)->mode)) == V4SImode) : (((((enum machine_mode) (to)->mode)) == V16QImode || (((enum machine_mode) (to)->mode)) == V8HImode || (((enum machine_mode) (to)->mode)) == V4SFmode || (((enum machine_mode) (to)->mode)) == V4SImode) || ((((enum machine_mode) (to)->mode)) == V4SFmode || (((enum machine_mode) (to)->mode)) == V2DFmode) || (((enum machine_mode) (to)->mode)) == V2DImode) ? (((((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V16QImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V8HImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4SFmode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4SImode) || ((((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4SFmode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V2DFmode) || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V2DImode) : (((((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V16QImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V8HImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4SFmode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4SImode) || ((((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4SFmode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V2DFmode) || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V2DImode) ? (((((enum machine_mode) (to)->mode)) == V16QImode || (((enum machine_mode) (to)->mode)) == V8HImode || (((enum machine_mode) (to)->mode)) == V4SFmode || (((enum machine_mode) (to)->mode)) == V4SImode) || ((((enum machine_mode) (to)->mode)) == V4SFmode || (((enum machine_mode) (to)->mode)) == V2DFmode) || (((enum machine_mode) (to)->mode)) == V2DImode) : 1) > > && ! (code == SUBREG > && ((((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_DECIMAL_FLOAT) ? (((enum mode_class) mode_class[((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)]) == MODE_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)]) == MODE_DECIMAL_FLOAT) : (((enum mode_class) mode_class[((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)]) == MODE_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)]) == MODE_DECIMAL_FLOAT) ? (((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_DECIMAL_FLOAT) : ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_CC ? ((enum mode_class) mode_class[((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)]) == MODE_CC : ((enum mode_class) mode_class[((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)]) == MODE_CC ? ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_CC : ((((enum machine_mode) (x)->mode)) == V4HImode || (((enum machine_mode) (x)->mode)) == V2SFmode || (((enum machine_mode) (x)->mode)) == V1DImode || (((enum machine_mode) (x)->mode)) == V2SImode) ? ((((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4HImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V2SFmode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V1DImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V2SImode) : ((((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4HImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V2SFmode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V1DImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V2SImode) ? ((((enum machine_mode) (x)->mode)) == V4HImode || (((enum machine_mode) (x)->mode)) == V2SFmode || (((enum machine_mode) (x)->mode)) == V1DImode || (((enum machine_mode) (x)->mode)) == V2SImode) : ((((enum machine_mode) (x)->mode)) == V16QImode || (((enum machine_mode) (x)->mode)) == V8HImode || (((enum machine_mode) (x)->mode)) == V4SFmode || (((enum machine_mode) (x)->mode)) == V4SImode) ? ((((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V16QImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V8HImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4SFmode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4SImode) : ((((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V16QImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V8HImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4SFmode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4SImode) ? ((((enum machine_mode) (x)->mode)) == V16QImode || (((enum machine_mode) (x)->mode)) == V8HImode || (((enum machine_mode) (x)->mode)) == V4SFmode || (((enum machine_mode) (x)->mode)) == V4SImode) : (((((enum machine_mode) (x)->mode)) == V16QImode || (((enum machine_mode) (x)->mode)) == V8HImode || (((enum machine_mode) (x)->mode)) == V4SFmode || (((enum machine_mode) (x)->mode)) == V4SImode) || ((((enum machine_mode) (x)->mode)) == V4SFmode || (((enum machine_mode) (x)->mode)) == V2DFmode) || (((enum machine_mode) (x)->mode)) == V2DImode) ? (((((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V16QImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V8HImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4SFmode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4SImode) || ((((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4SFmode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V2DFmode) || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V2DImode) : (((((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V16QImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V8HImode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4SFmode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4SImode) || ((((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V4SFmode || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V2DFmode) || (((enum machine_mode) ((((to)->u.fld[0]).rt_rtx))->mode)) == V2DImode) ? (((((enum machine_mode) (x)->mode)) == V16QImode || (((enum machine_mode) (x)->mode)) == V8HImode || (((enum machine_mode) (x)->mode)) == V4SFmode || (((enum machine_mode) (x)->mode)) == V4SImode) || ((((enum machine_mode) (x)->mode)) == V4SFmode || (((enum machine_mode) (x)->mode)) == V2DFmode) || (((enum machine_mode) (x)->mode)) == V2DImode) : 1) > ) > > > > ) > return gen_rtx_fmt_e_stat (CLOBBER, (VOIDmode), ((const_int_rtx[64])) ); > > > if (code == SUBREG > && (((enum rtx_code) (to)->code) == REG) > && (rhs_regno(to)) < 114 > && rs6000_cannot_change_mode_class_ptr (((enum machine_mode) (to)->mode), ((enum machine_mode) (x)->mode), rs6000_regno_regclass[((rhs_regno(to)))]) > > ) > return gen_rtx_fmt_e_stat (CLOBBER, (VOIDmode), ((const_int_rtx[64])) ); > > > new_rtx = (unique_copy && n_occurrences ? copy_rtx (to) : to); > n_occurrences++; > } > else ># 5241 "../../gcc/combine.c" > new_rtx = subst ((((x)->u.fld[i]).rt_rtx), from, to, > (((in_dest > && (code == SUBREG || code == STRICT_LOW_PART > || code == ZERO_EXTRACT)) > || code == SET) > && i == 0), > code == IF_THEN_ELSE && i == 0, > unique_copy); > > > > > > > > if (((enum rtx_code) (new_rtx)->code) == CLOBBER && (((new_rtx)->u.fld[0]).rt_rtx) == (const_int_rtx[64])) > return new_rtx; > > if (((enum rtx_code) (x)->code) == SUBREG > && ((((enum rtx_code) (new_rtx)->code) == CONST_INT) > || ((enum rtx_code) (new_rtx)->code) == CONST_DOUBLE)) > { > enum machine_mode mode = ((enum machine_mode) (x)->mode); > > x = simplify_subreg (((enum machine_mode) (x)->mode), new_rtx, > ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode), > (((x)->u.fld[1]).rt_uint)); > if (! x) > x = gen_rtx_fmt_e_stat (CLOBBER, (mode), ((const_int_rtx[64])) ); > } > else if ((((enum rtx_code) (new_rtx)->code) == CONST_INT) > && ((enum rtx_code) (x)->code) == ZERO_EXTEND) > { > x = simplify_unary_operation (ZERO_EXTEND, ((enum machine_mode) (x)->mode), > new_rtx, ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)); > ((void)(!(x) ? fancy_abort ("../../gcc/combine.c", 5276, __FUNCTION__), 0 : 0)); > } > else > do_SUBST(&((((x)->u.fld[i]).rt_rtx)), (new_rtx)); > } > } > } > > > > > if (((enum rtx_code) (x)->code) == FLOAT_EXTEND > && (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == MEM) > && ((((((x)->u.fld[0]).rt_rtx)))->unchanging)) > { > rtx tmp = avoid_constant_pool_reference (x); > if (x != tmp) > return x; > } > > > > > > for (i = 0; i < 4; i++) > { > > > if (code != CONST_INT && code != REG && code != CLOBBER) > x = combine_simplify_rtx (x, op0_mode, in_dest, in_cond); > > if (((enum rtx_code) (x)->code) == code) > break; > > code = ((enum rtx_code) (x)->code); > > > > op0_mode = VOIDmode; > } > > return x; >} ># 5328 "../../gcc/combine.c" >static rtx >combine_simplify_rtx (rtx x, enum machine_mode op0_mode, int in_dest, > int in_cond) >{ > enum rtx_code code = ((enum rtx_code) (x)->code); > enum machine_mode mode = ((enum machine_mode) (x)->mode); > rtx temp; > int i; > > > > if (((rtx_class[(int) (((enum rtx_code) (x)->code))]) == RTX_COMM_ARITH) > && swap_commutative_operands_p ((((x)->u.fld[0]).rt_rtx), (((x)->u.fld[1]).rt_rtx))) > { > temp = (((x)->u.fld[0]).rt_rtx); > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), ((((x)->u.fld[1]).rt_rtx))); > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (temp)); > } ># 5354 "../../gcc/combine.c" > if (((((rtx_class[(int) (((enum rtx_code) (x)->code))]) & (~3)) == (RTX_COMPARE & (~3))) > && ((!(((rtx_class[(int) (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code))]) & (~1)) == (RTX_OBJ & (~1))) > && ! (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == SUBREG > && (((rtx_class[(int) (((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code))]) & (~1)) == (RTX_OBJ & (~1))))) > || (!(((rtx_class[(int) (((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code))]) & (~1)) == (RTX_OBJ & (~1))) > && ! (((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == SUBREG > && (((rtx_class[(int) (((enum rtx_code) (((((((x)->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx))->code))]) & (~1)) == (RTX_OBJ & (~1))))))) > || (((rtx_class[(int) (((enum rtx_code) (x)->code))]) == RTX_UNARY) > && (!(((rtx_class[(int) (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code))]) & (~1)) == (RTX_OBJ & (~1))) > && ! (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == SUBREG > && (((rtx_class[(int) (((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code))]) & (~1)) == (RTX_OBJ & (~1))))))) > { > rtx cond, true_rtx, false_rtx; > > cond = if_then_else_cond (x, &true_rtx, &false_rtx); > if (cond != 0 > > > && ! ((((rtx_class[(int) (((enum rtx_code) (x)->code))]) & (~1)) == (RTX_COMPARE & (~1))) > && ((((rtx_class[(int) (((enum rtx_code) (true_rtx)->code))]) & (~1)) == (RTX_COMPARE & (~1))) || (((rtx_class[(int) (((enum rtx_code) (false_rtx)->code))]) & (~1)) == (RTX_COMPARE & (~1)))))) > { > rtx cop1 = (const_int_rtx[64]); > enum rtx_code cond_code = simplify_comparison (NE, &cond, &cop1); > > if (cond_code == NE && (((rtx_class[(int) (((enum rtx_code) (cond)->code))]) & (~1)) == (RTX_COMPARE & (~1)))) > return x; > > > > > > true_rtx = subst (copy_rtx (true_rtx), (((&default_target_rtl)->x_global_rtl)[GR_PC]), (((&default_target_rtl)->x_global_rtl)[GR_PC]), 0, 0, 0); > false_rtx = subst (copy_rtx (false_rtx), (((&default_target_rtl)->x_global_rtl)[GR_PC]), (((&default_target_rtl)->x_global_rtl)[GR_PC]), 0, 0, 0); > > > > if (general_operand (true_rtx, VOIDmode) > && general_operand (false_rtx, VOIDmode)) > { > enum rtx_code reversed; > > > > > > > if (true_rtx == const_true_rtx && false_rtx == (const_int_rtx[64])) > x = simplify_gen_relational (cond_code, mode, VOIDmode, > cond, cop1); > else if (true_rtx == (const_int_rtx[64]) && false_rtx == const_true_rtx > && ((reversed = reversed_comparison_code_parts > (cond_code, cond, cop1, ((void *)0))) > != UNKNOWN)) > x = simplify_gen_relational (reversed, mode, VOIDmode, > cond, cop1); > > > > else if ((((enum rtx_code) (true_rtx)->code) == CONST_INT) > && ((true_rtx)->u.hwint[0]) == - 1 > && false_rtx == (const_int_rtx[64])) > x = simplify_gen_unary (NEG, mode, > simplify_gen_relational (cond_code, > mode, VOIDmode, > cond, cop1), > mode); > else if ((((enum rtx_code) (false_rtx)->code) == CONST_INT) > && ((false_rtx)->u.hwint[0]) == - 1 > && true_rtx == (const_int_rtx[64]) > && ((reversed = reversed_comparison_code_parts > (cond_code, cond, cop1, ((void *)0))) > != UNKNOWN)) > x = simplify_gen_unary (NEG, mode, > simplify_gen_relational (reversed, > mode, VOIDmode, > cond, cop1), > mode); > else > return gen_rtx_fmt_eee_stat (IF_THEN_ELSE, (mode), (simplify_gen_relational (cond_code, mode, VOIDmode, cond, cop1)), (true_rtx), (false_rtx) ) > > > > > > ; > > code = ((enum rtx_code) (x)->code); > op0_mode = VOIDmode; > } > } > } > > > > temp = 0; > switch ((rtx_class[(int) (code)])) > { > case RTX_UNARY: > if (op0_mode == VOIDmode) > op0_mode = ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode); > temp = simplify_unary_operation (code, mode, (((x)->u.fld[0]).rt_rtx), op0_mode); > break; > case RTX_COMPARE: > case RTX_COMM_COMPARE: > { > enum machine_mode cmp_mode = ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode); > if (cmp_mode == VOIDmode) > { > cmp_mode = ((enum machine_mode) ((((x)->u.fld[1]).rt_rtx))->mode); > if (cmp_mode == VOIDmode) > cmp_mode = op0_mode; > } > temp = simplify_relational_operation (code, mode, cmp_mode, > (((x)->u.fld[0]).rt_rtx), (((x)->u.fld[1]).rt_rtx)); > } > break; > case RTX_COMM_ARITH: > case RTX_BIN_ARITH: > temp = simplify_binary_operation (code, mode, (((x)->u.fld[0]).rt_rtx), (((x)->u.fld[1]).rt_rtx)); > break; > case RTX_BITFIELD_OPS: > case RTX_TERNARY: > temp = simplify_ternary_operation (code, mode, op0_mode, (((x)->u.fld[0]).rt_rtx), > (((x)->u.fld[1]).rt_rtx), (((x)->u.fld[2]).rt_rtx)); > break; > default: > break; > } > > if (temp) > { > x = temp; > code = ((enum rtx_code) (temp)->code); > op0_mode = VOIDmode; > mode = ((enum machine_mode) (temp)->mode); > } > > > if (code == PLUS || code == MINUS > || code == AND || code == IOR || code == XOR) > { > x = apply_distributive_law (x); > code = ((enum rtx_code) (x)->code); > op0_mode = VOIDmode; > } > > > > > if ((code == PLUS || code == MINUS || code == MULT || code == DIV > || code == AND || code == IOR || code == XOR > || code == SMAX || code == SMIN || code == UMAX || code == UMIN) > && (((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT || ((enum mode_class) mode_class[mode]) == MODE_COMPLEX_INT || ((enum mode_class) mode_class[mode]) == MODE_VECTOR_INT) && code != DIV) > || (global_options.x_flag_associative_math && (((enum mode_class) mode_class[mode]) == MODE_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_DECIMAL_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_COMPLEX_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_VECTOR_FLOAT)))) > { > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == code) > { > rtx other = ((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > rtx inner_op0 = ((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx); > rtx inner_op1 = (((x)->u.fld[1]).rt_rtx); > rtx inner; > > > > if (((rtx_class[(int) (((enum rtx_code) (inner_op0)->code))]) == RTX_CONST_OBJ) && ((rtx_class[(int) (((enum rtx_code) (x)->code))]) == RTX_COMM_ARITH)) > { > rtx tem = inner_op0; > inner_op0 = inner_op1; > inner_op1 = tem; > } > inner = simplify_binary_operation (code == MINUS ? PLUS > : code == DIV ? MULT > : code, > mode, inner_op0, inner_op1); > > > > if (inner == 0 && ((rtx_class[(int) (((enum rtx_code) (x)->code))]) == RTX_COMM_ARITH)) > { > other = ((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx); > inner = simplify_binary_operation (code, mode, > ((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), > (((x)->u.fld[1]).rt_rtx)); > } > > if (inner) > return simplify_gen_binary (code, mode, other, inner); > } > } > > > switch (code) > { > case MEM: > > > temp = make_compound_operation ((((x)->u.fld[0]).rt_rtx), MEM); > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), (temp)); > break; > > case SUBREG: > if (op0_mode == VOIDmode) > op0_mode = ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode); > > > if (((rtx_class[(int) (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code))]) == RTX_CONST_OBJ) > && subreg_lowpart_offset (mode, op0_mode) == (((x)->u.fld[1]).rt_uint) > > > > && (((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode) != VOIDmode > || gen_lowpart_common (mode, (((x)->u.fld[0]).rt_rtx)))) > return rtl_hooks.gen_lowpart (mode, (((x)->u.fld[0]).rt_rtx)); > > if (((enum mode_class) mode_class[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)]) == MODE_CC) > break; > { > rtx temp; > temp = simplify_subreg (mode, (((x)->u.fld[0]).rt_rtx), op0_mode, > (((x)->u.fld[1]).rt_uint)); > if (temp) > return temp; > } > > > > if ((((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == MEM) > && (((((((x)->u.fld[0]).rt_rtx)))->volatil) > || mode_dependent_address_p (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx)))) > return gen_rtx_fmt_e_stat (CLOBBER, (mode), ((const_int_rtx[64])) ); > > > > > > break; > > case NEG: > temp = expand_compound_operation ((((x)->u.fld[0]).rt_rtx)); > > > > > > if (((enum rtx_code) (temp)->code) == ASHIFTRT > && (((enum rtx_code) ((((temp)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((((temp)->u.fld[1]).rt_rtx))->u.hwint[0]) == mode_precision[mode] - 1) > return simplify_shift_const ((rtx) 0, LSHIFTRT, mode, (((temp)->u.fld[0]).rt_rtx), > (((((temp)->u.fld[1]).rt_rtx))->u.hwint[0])); ># 5611 "../../gcc/combine.c" > if (!(((enum rtx_code) (temp)->code) == REG) > && ! (((enum rtx_code) (temp)->code) == SUBREG > && (((enum rtx_code) ((((temp)->u.fld[0]).rt_rtx))->code) == REG)) > && (i = exact_log2 (nonzero_bits (temp, mode))) >= 0) > { > rtx temp1 = simplify_shift_const > ((rtx) 0, ASHIFTRT, mode, > simplify_shift_const ((rtx) 0, ASHIFT, mode, temp, > mode_precision[mode] - 1 - i), > mode_precision[mode] - 1 - i); > > > > > if (((enum rtx_code) (temp1)->code) != ASHIFTRT > || ((enum rtx_code) ((((temp1)->u.fld[0]).rt_rtx))->code) != ASHIFT > || ((((((temp1)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx) != temp) > return temp1; > } > break; > > case TRUNCATE: > > > > if (((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) > break; > > if (((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) && mode_precision[mode] <= (8 * 8))) > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), (force_to_mode ((((x)->u.fld[0]).rt_rtx), ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode), mode_mask_array[mode], 0))) > > ; > > > if ((((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == CONST_INT)) > return gen_int_mode ((((((x)->u.fld[0]).rt_rtx))->u.hwint[0]), mode); > > > > > if (((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) && mode_precision[mode] <= (8 * 8)) > && (1 & ~mode_mask_array[mode]) == 0 > && (temp = get_last_value ((((x)->u.fld[0]).rt_rtx))) > && (((rtx_class[(int) (((enum rtx_code) (temp)->code))]) & (~1)) == (RTX_COMPARE & (~1)))) > return rtl_hooks.gen_lowpart (mode, (((x)->u.fld[0]).rt_rtx)); > break; > > case CONST: > > > > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == CONST) > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))); > break; > > > case LO_SUM: > > > > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == HIGH > && rtx_equal_p (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), (((x)->u.fld[1]).rt_rtx))) > return (((x)->u.fld[1]).rt_rtx); > break; > > > case PLUS: > > > > > > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == XOR > && (((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) == -((((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]) > && ((i = exact_log2 (((unsigned long long) ((((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0])))) >= 0 > || (i = exact_log2 (((unsigned long long) (((((x)->u.fld[1]).rt_rtx))->u.hwint[0])))) >= 0) > && ((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) && mode_precision[mode] <= (8 * 8)) > && ((((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code) == AND > && (((enum rtx_code) ((((((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((unsigned long long) (((((((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0])) > == ((unsigned long long) 1 << (i + 1)) - 1)) > || (((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code) == ZERO_EXTEND > && (mode_precision[((enum machine_mode) ((((((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode)] > == (unsigned int) i + 1)))) > return simplify_shift_const > ((rtx) 0, ASHIFTRT, mode, > simplify_shift_const ((rtx) 0, ASHIFT, mode, > (((((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), > mode_precision[mode] - (i + 1)), > mode_precision[mode] - (i + 1)); > > > > > > if ((((x)->u.fld[1]).rt_rtx) == (const_int_rtx[64 -1]) > && !(((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == REG) > && ! (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == SUBREG > && (((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code) == REG)) > && nonzero_bits ((((x)->u.fld[0]).rt_rtx), mode) == 1) > return simplify_shift_const ((rtx) 0, ASHIFTRT, mode, > simplify_shift_const ((rtx) 0, ASHIFT, mode, > gen_rtx_fmt_ee_stat (XOR, (mode), ((((x)->u.fld[0]).rt_rtx)), ((const_int_rtx[64 +1])) ), > mode_precision[mode] - 1), > mode_precision[mode] - 1); > > > > > > > if (((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) && mode_precision[mode] <= (8 * 8)) > && (nonzero_bits ((((x)->u.fld[0]).rt_rtx), mode) > & nonzero_bits ((((x)->u.fld[1]).rt_rtx), mode)) == 0) > { > > rtx tor = simplify_gen_binary (IOR, mode, (((x)->u.fld[0]).rt_rtx), (((x)->u.fld[1]).rt_rtx)); > temp = combine_simplify_rtx (tor, VOIDmode, in_dest, 0); > > > > > if (((enum rtx_code) (temp)->code) != CLOBBER > && (((enum rtx_code) (temp)->code) != IOR > || (((((temp)->u.fld[0]).rt_rtx) != (((x)->u.fld[0]).rt_rtx) > || (((temp)->u.fld[1]).rt_rtx) != (((x)->u.fld[1]).rt_rtx)) > && ((((temp)->u.fld[0]).rt_rtx) != (((x)->u.fld[1]).rt_rtx) > || (((temp)->u.fld[1]).rt_rtx) != (((x)->u.fld[0]).rt_rtx))))) > return temp; > } > break; > > case MINUS: > > > if (((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == AND > && (((enum rtx_code) (((((((x)->u.fld[1]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT) > && exact_log2 (-((unsigned long long) ((((((((x)->u.fld[1]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]))) >= 0 > && rtx_equal_p (((((((x)->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx), (((x)->u.fld[0]).rt_rtx))) > return simplify_and_const_int ((rtx) 0, mode, (((x)->u.fld[0]).rt_rtx), > -((((((((x)->u.fld[1]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]) - 1); > break; > > case MULT: > > > > > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == PLUS) > { > rtx result = distribute_and_simplify_rtx (x, 0); > if (result) > return result; > } > > > if ((((enum mode_class) mode_class[mode]) == MODE_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_DECIMAL_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_COMPLEX_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_VECTOR_FLOAT) && global_options.x_flag_associative_math > && ((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == DIV) > { > rtx tem = simplify_binary_operation (MULT, mode, > ((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), > (((x)->u.fld[1]).rt_rtx)); > if (tem) > return simplify_gen_binary (DIV, mode, tem, ((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx)); > } > break; > > case UDIV: > > > if ((((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (i = exact_log2 (((unsigned long long) (((((x)->u.fld[1]).rt_rtx))->u.hwint[0])))) >= 0 > && (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == ASHIFT > || ((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == LSHIFTRT > || ((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == ASHIFTRT > || ((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == ROTATE > || ((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == ROTATERT)) > return simplify_shift_const ((rtx) 0, LSHIFTRT, mode, (((x)->u.fld[0]).rt_rtx), i); > break; > > case EQ: case NE: > case GT: case GTU: case GE: case GEU: > case LT: case LTU: case LE: case LEU: > case UNEQ: case LTGT: > case UNGT: case UNGE: > case UNLT: case UNLE: > case UNORDERED: case ORDERED: > > > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == COMPARE > || (((enum mode_class) mode_class[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)]) != MODE_CC > && ! (((((x)->u.fld[0]).rt_rtx)) ? 0 : 0))) > { > rtx op0 = (((x)->u.fld[0]).rt_rtx); > rtx op1 = (((x)->u.fld[1]).rt_rtx); > enum rtx_code new_code; > > if (((enum rtx_code) (op0)->code) == COMPARE) > op1 = (((op0)->u.fld[1]).rt_rtx), op0 = (((op0)->u.fld[0]).rt_rtx); > > > new_code = simplify_comparison (code, &op0, &op1); ># 5833 "../../gcc/combine.c" > if (in_cond) > ; > > else if (1 == 1 > && new_code == NE && ((enum mode_class) mode_class[mode]) == MODE_INT > && op1 == (const_int_rtx[64]) > && mode == ((enum machine_mode) (op0)->mode) > && nonzero_bits (op0, mode) == 1) > return rtl_hooks.gen_lowpart (mode, > expand_compound_operation (op0)); > > else if (1 == 1 > && new_code == NE && ((enum mode_class) mode_class[mode]) == MODE_INT > && op1 == (const_int_rtx[64]) > && mode == ((enum machine_mode) (op0)->mode) > && (num_sign_bit_copies (op0, mode) > == mode_precision[mode])) > { > op0 = expand_compound_operation (op0); > return simplify_gen_unary (NEG, mode, > rtl_hooks.gen_lowpart (mode, op0), > mode); > } > > else if (1 == 1 > && new_code == EQ && ((enum mode_class) mode_class[mode]) == MODE_INT > && op1 == (const_int_rtx[64]) > && mode == ((enum machine_mode) (op0)->mode) > && nonzero_bits (op0, mode) == 1) > { > op0 = expand_compound_operation (op0); > return simplify_gen_binary (XOR, mode, > rtl_hooks.gen_lowpart (mode, op0), > (const_int_rtx[64 +1])); > } > > else if (1 == 1 > && new_code == EQ && ((enum mode_class) mode_class[mode]) == MODE_INT > && op1 == (const_int_rtx[64]) > && mode == ((enum machine_mode) (op0)->mode) > && (num_sign_bit_copies (op0, mode) > == mode_precision[mode])) > { > op0 = expand_compound_operation (op0); > return plus_constant (rtl_hooks.gen_lowpart (mode, op0), 1); > } > > > > if (in_cond) > ; > > else if (1 == -1 > && new_code == NE && ((enum mode_class) mode_class[mode]) == MODE_INT > && op1 == (const_int_rtx[64]) > && (num_sign_bit_copies (op0, mode) > == mode_precision[mode])) > return rtl_hooks.gen_lowpart (mode, > expand_compound_operation (op0)); > > else if (1 == -1 > && new_code == NE && ((enum mode_class) mode_class[mode]) == MODE_INT > && op1 == (const_int_rtx[64]) > && mode == ((enum machine_mode) (op0)->mode) > && nonzero_bits (op0, mode) == 1) > { > op0 = expand_compound_operation (op0); > return simplify_gen_unary (NEG, mode, > rtl_hooks.gen_lowpart (mode, op0), > mode); > } > > else if (1 == -1 > && new_code == EQ && ((enum mode_class) mode_class[mode]) == MODE_INT > && op1 == (const_int_rtx[64]) > && mode == ((enum machine_mode) (op0)->mode) > && (num_sign_bit_copies (op0, mode) > == mode_precision[mode])) > { > op0 = expand_compound_operation (op0); > return simplify_gen_unary (NOT, mode, > rtl_hooks.gen_lowpart (mode, op0), > mode); > } > > > else if (1 == -1 > && new_code == EQ && ((enum mode_class) mode_class[mode]) == MODE_INT > && op1 == (const_int_rtx[64]) > && mode == ((enum machine_mode) (op0)->mode) > && nonzero_bits (op0, mode) == 1) > { > op0 = expand_compound_operation (op0); > return plus_constant (rtl_hooks.gen_lowpart (mode, op0), -1); > } > > > > > > > if (new_code == NE && ((enum mode_class) mode_class[mode]) == MODE_INT > && ((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) && mode_precision[mode] <= (8 * 8)) > && val_signbit_p (mode, 1) > && op1 == (const_int_rtx[64]) > && mode == ((enum machine_mode) (op0)->mode) > && (i = exact_log2 (nonzero_bits (op0, mode))) >= 0) > { > x = simplify_shift_const ((rtx) 0, ASHIFT, mode, > expand_compound_operation (op0), > mode_precision[mode] - 1 - i); > if (((enum rtx_code) (x)->code) == AND && (((x)->u.fld[1]).rt_rtx) == const_true_rtx) > return (((x)->u.fld[0]).rt_rtx); > else > return x; > } > > > if (new_code != code) > return gen_rtx_fmt_ee_stat (new_code, mode, op0, op1 ); > > > > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), (op0)); > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (op1)); > } > break; > > case IF_THEN_ELSE: > return simplify_if_then_else (x); > > case ZERO_EXTRACT: > case SIGN_EXTRACT: > case ZERO_EXTEND: > case SIGN_EXTEND: > > if (in_dest) > return x; > > return expand_compound_operation (x); > > case SET: > return simplify_set (x); > > case AND: > case IOR: > return simplify_logical (x); > > case ASHIFT: > case LSHIFTRT: > case ASHIFTRT: > case ROTATE: > case ROTATERT: > > if ((((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT)) > return simplify_shift_const (x, code, mode, (((x)->u.fld[0]).rt_rtx), > (((((x)->u.fld[1]).rt_rtx))->u.hwint[0])); > > else if ((0 ? 1 : 0) && !(((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == REG)) > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (force_to_mode ((((x)->u.fld[1]).rt_rtx), ((enum machine_mode) ((((x)->u.fld[1]).rt_rtx))->mode), ((unsigned long long) 1 << exact_log2 (((unsigned short) (((unsigned short) mode_size[((enum machine_mode) (x)->mode)]) * 8)))) - 1, 0))) > > > > > ; > break; > > default: > break; > } > > return x; >} > > > >static rtx >simplify_if_then_else (rtx x) >{ > enum machine_mode mode = ((enum machine_mode) (x)->mode); > rtx cond = (((x)->u.fld[0]).rt_rtx); > rtx true_rtx = (((x)->u.fld[1]).rt_rtx); > rtx false_rtx = (((x)->u.fld[2]).rt_rtx); > enum rtx_code true_code = ((enum rtx_code) (cond)->code); > int comparison_p = (((rtx_class[(int) (((enum rtx_code) (cond)->code))]) & (~1)) == (RTX_COMPARE & (~1))); > rtx temp; > int i; > enum rtx_code false_code; > rtx reversed; > > > if (comparison_p && true_rtx == const_true_rtx && false_rtx == (const_int_rtx[64])) > return simplify_gen_relational (true_code, mode, VOIDmode, > (((cond)->u.fld[0]).rt_rtx), (((cond)->u.fld[1]).rt_rtx)); > > > if (comparison_p > && true_rtx == (const_int_rtx[64]) && false_rtx == const_true_rtx > && (reversed = reversed_comparison (cond, mode))) > return reversed; > > > > > > if (comparison_p > && ((false_code = reversed_comparison_code (cond, ((void *)0))) > != UNKNOWN) > && (((enum rtx_code) ((((cond)->u.fld[0]).rt_rtx))->code) == REG)) > { > long long nzb; > rtx from = (((cond)->u.fld[0]).rt_rtx); > rtx true_val = (((cond)->u.fld[1]).rt_rtx); > rtx false_val = true_val; > int swapped = 0; > > > > if (false_code == EQ) > { > swapped = 1, true_code = EQ, false_code = NE; > temp = true_rtx, true_rtx = false_rtx, false_rtx = temp; > } > > > > > > if (true_code == EQ && true_val == (const_int_rtx[64]) > && exact_log2 (nzb = nonzero_bits (from, ((enum machine_mode) (from)->mode))) >= 0) > { > false_code = EQ; > false_val = gen_int_mode (nzb, ((enum machine_mode) (from)->mode)); > } > else if (true_code == EQ && true_val == (const_int_rtx[64]) > && (num_sign_bit_copies (from, ((enum machine_mode) (from)->mode)) > == mode_precision[((enum machine_mode) (from)->mode)])) > { > false_code = EQ; > false_val = (const_int_rtx[64 -1]); > } > > > > > > if (reg_mentioned_p (from, true_rtx)) > true_rtx = subst (known_cond (copy_rtx (true_rtx), true_code, > from, true_val), > (((&default_target_rtl)->x_global_rtl)[GR_PC]), (((&default_target_rtl)->x_global_rtl)[GR_PC]), 0, 0, 0); > if (reg_mentioned_p (from, false_rtx)) > false_rtx = subst (known_cond (copy_rtx (false_rtx), false_code, > from, false_val), > (((&default_target_rtl)->x_global_rtl)[GR_PC]), (((&default_target_rtl)->x_global_rtl)[GR_PC]), 0, 0, 0); > > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (swapped ? false_rtx : true_rtx)); > do_SUBST(&((((x)->u.fld[2]).rt_rtx)), (swapped ? true_rtx : false_rtx)); > > true_rtx = (((x)->u.fld[1]).rt_rtx); > false_rtx = (((x)->u.fld[2]).rt_rtx); > true_code = ((enum rtx_code) (cond)->code); > } > > > > > > > > if (comparison_p > && reversed_comparison_code (cond, ((void *)0)) != UNKNOWN > && (true_rtx == (((&default_target_rtl)->x_global_rtl)[GR_PC]) > || (((rtx_class[(int) (((enum rtx_code) (true_rtx)->code))]) == RTX_CONST_OBJ) > && !(((enum rtx_code) (false_rtx)->code) == CONST_INT) && false_rtx != (((&default_target_rtl)->x_global_rtl)[GR_PC])) > || true_rtx == (const_int_rtx[64]) > || ((((rtx_class[(int) (((enum rtx_code) (true_rtx)->code))]) & (~1)) == (RTX_OBJ & (~1))) && !(((rtx_class[(int) (((enum rtx_code) (false_rtx)->code))]) & (~1)) == (RTX_OBJ & (~1)))) > || (((enum rtx_code) (true_rtx)->code) == SUBREG && (((rtx_class[(int) (((enum rtx_code) ((((true_rtx)->u.fld[0]).rt_rtx))->code))]) & (~1)) == (RTX_OBJ & (~1))) > && !(((rtx_class[(int) (((enum rtx_code) (false_rtx)->code))]) & (~1)) == (RTX_OBJ & (~1)))) > || reg_mentioned_p (true_rtx, false_rtx) > || rtx_equal_p (false_rtx, (((cond)->u.fld[0]).rt_rtx)))) > { > true_code = reversed_comparison_code (cond, ((void *)0)); > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), (reversed_comparison (cond, ((enum machine_mode) (cond)->mode)))); > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (false_rtx)); > do_SUBST(&((((x)->u.fld[2]).rt_rtx)), (true_rtx)); > > temp = true_rtx, true_rtx = false_rtx, false_rtx = temp; > cond = (((x)->u.fld[0]).rt_rtx); > > > true_code = ((enum rtx_code) (cond)->code); > comparison_p = (((rtx_class[(int) (((enum rtx_code) (cond)->code))]) & (~1)) == (RTX_COMPARE & (~1))); > } > > > > if (rtx_equal_p (true_rtx, false_rtx) && ! side_effects_p (cond)) > return true_rtx; > > > if (true_code == EQ && ! side_effects_p (cond) > && !(((((enum mode_class) mode_class[mode]) == MODE_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_DECIMAL_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_COMPLEX_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_VECTOR_FLOAT) && ((real_format_for_mode[(((enum mode_class) mode_class[(((enum mode_class) mode_class[mode]) == MODE_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_DECIMAL_FLOAT)? (mode) : ((enum machine_mode) mode_inner[mode])]) == MODE_DECIMAL_FLOAT) ? ((((((enum mode_class) mode_class[mode]) == MODE_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_DECIMAL_FLOAT)? (mode) : ((enum machine_mode) mode_inner[mode])) - MIN_MODE_DECIMAL_FLOAT) + (MAX_MODE_FLOAT - MIN_MODE_FLOAT + 1)) : (((((enum mode_class) mode_class[mode]) == MODE_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_DECIMAL_FLOAT)? (mode) : ((enum machine_mode) mode_inner[mode])) - MIN_MODE_FLOAT)]))->has_nans) && !global_options.x_flag_finite_math_only) > && rtx_equal_p ((((cond)->u.fld[0]).rt_rtx), false_rtx) > && rtx_equal_p ((((cond)->u.fld[1]).rt_rtx), true_rtx)) > return false_rtx; > else if (true_code == NE && ! side_effects_p (cond) > && !(((((enum mode_class) mode_class[mode]) == MODE_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_DECIMAL_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_COMPLEX_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_VECTOR_FLOAT) && ((real_format_for_mode[(((enum mode_class) mode_class[(((enum mode_class) mode_class[mode]) == MODE_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_DECIMAL_FLOAT)? (mode) : ((enum machine_mode) mode_inner[mode])]) == MODE_DECIMAL_FLOAT) ? ((((((enum mode_class) mode_class[mode]) == MODE_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_DECIMAL_FLOAT)? (mode) : ((enum machine_mode) mode_inner[mode])) - MIN_MODE_DECIMAL_FLOAT) + (MAX_MODE_FLOAT - MIN_MODE_FLOAT + 1)) : (((((enum mode_class) mode_class[mode]) == MODE_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_DECIMAL_FLOAT)? (mode) : ((enum machine_mode) mode_inner[mode])) - MIN_MODE_FLOAT)]))->has_nans) && !global_options.x_flag_finite_math_only) > && rtx_equal_p ((((cond)->u.fld[0]).rt_rtx), true_rtx) > && rtx_equal_p ((((cond)->u.fld[1]).rt_rtx), false_rtx)) > return true_rtx; > > > > if (((enum mode_class) mode_class[mode]) == MODE_INT > && comparison_p > && (((cond)->u.fld[1]).rt_rtx) == (const_int_rtx[64]) > && ((enum rtx_code) (false_rtx)->code) == NEG > && rtx_equal_p (true_rtx, (((false_rtx)->u.fld[0]).rt_rtx)) > && rtx_equal_p (true_rtx, (((cond)->u.fld[0]).rt_rtx)) > && ! side_effects_p (true_rtx)) > switch (true_code) > { > case GT: > case GE: > return simplify_gen_unary (ABS, mode, true_rtx, mode); > case LT: > case LE: > return > simplify_gen_unary (NEG, mode, > simplify_gen_unary (ABS, mode, true_rtx, mode), > mode); > default: > break; > } > > > > if ((! (((enum mode_class) mode_class[mode]) == MODE_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_DECIMAL_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_COMPLEX_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_VECTOR_FLOAT) || global_options.x_flag_unsafe_math_optimizations) > && comparison_p > && rtx_equal_p ((((cond)->u.fld[0]).rt_rtx), true_rtx) > && rtx_equal_p ((((cond)->u.fld[1]).rt_rtx), false_rtx) > && ! side_effects_p (cond)) > switch (true_code) > { > case GE: > case GT: > return simplify_gen_binary (SMAX, mode, true_rtx, false_rtx); > case LE: > case LT: > return simplify_gen_binary (SMIN, mode, true_rtx, false_rtx); > case GEU: > case GTU: > return simplify_gen_binary (UMAX, mode, true_rtx, false_rtx); > case LEU: > case LTU: > return simplify_gen_binary (UMIN, mode, true_rtx, false_rtx); > default: > break; > } ># 6200 "../../gcc/combine.c" > if ((1 == 1 || 1 == -1) > && comparison_p > && ((enum mode_class) mode_class[mode]) == MODE_INT > && ! side_effects_p (x)) > { > rtx t = make_compound_operation (true_rtx, SET); > rtx f = make_compound_operation (false_rtx, SET); > rtx cond_op0 = (((cond)->u.fld[0]).rt_rtx); > rtx cond_op1 = (((cond)->u.fld[1]).rt_rtx); > enum rtx_code op = UNKNOWN, extend_op = UNKNOWN; > enum machine_mode m = mode; > rtx z = 0, c1 = (rtx) 0; > > if ((((enum rtx_code) (t)->code) == PLUS || ((enum rtx_code) (t)->code) == MINUS > || ((enum rtx_code) (t)->code) == IOR || ((enum rtx_code) (t)->code) == XOR > || ((enum rtx_code) (t)->code) == ASHIFT > || ((enum rtx_code) (t)->code) == LSHIFTRT || ((enum rtx_code) (t)->code) == ASHIFTRT) > && rtx_equal_p ((((t)->u.fld[0]).rt_rtx), f)) > c1 = (((t)->u.fld[1]).rt_rtx), op = ((enum rtx_code) (t)->code), z = f; > > > > else if ((((enum rtx_code) (t)->code) == PLUS || ((enum rtx_code) (t)->code) == IOR > || ((enum rtx_code) (t)->code) == XOR) > && rtx_equal_p ((((t)->u.fld[1]).rt_rtx), f)) > c1 = (((t)->u.fld[0]).rt_rtx), op = ((enum rtx_code) (t)->code), z = f; > else if (((enum rtx_code) (t)->code) == SIGN_EXTEND > && (((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code) == PLUS > || ((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code) == MINUS > || ((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code) == IOR > || ((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code) == XOR > || ((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code) == ASHIFT > || ((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code) == LSHIFTRT > || ((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code) == ASHIFTRT) > && ((enum rtx_code) (((((((t)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code) == SUBREG > && subreg_lowpart_p (((((((t)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx)) > && rtx_equal_p ((((((((((t)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), f) > && (num_sign_bit_copies (f, ((enum machine_mode) (f)->mode)) > > (unsigned int) > (mode_precision[mode] > - mode_precision[((enum machine_mode) (((((((t)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode)]))) > { > c1 = ((((((t)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx); z = f; op = ((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code); > extend_op = SIGN_EXTEND; > m = ((enum machine_mode) ((((t)->u.fld[0]).rt_rtx))->mode); > } > else if (((enum rtx_code) (t)->code) == SIGN_EXTEND > && (((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code) == PLUS > || ((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code) == IOR > || ((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code) == XOR) > && ((enum rtx_code) (((((((t)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->code) == SUBREG > && subreg_lowpart_p (((((((t)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx)) > && rtx_equal_p ((((((((((t)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx), f) > && (num_sign_bit_copies (f, ((enum machine_mode) (f)->mode)) > > (unsigned int) > (mode_precision[mode] > - mode_precision[((enum machine_mode) (((((((t)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->mode)]))) > { > c1 = ((((((t)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); z = f; op = ((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code); > extend_op = SIGN_EXTEND; > m = ((enum machine_mode) ((((t)->u.fld[0]).rt_rtx))->mode); > } > else if (((enum rtx_code) (t)->code) == ZERO_EXTEND > && (((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code) == PLUS > || ((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code) == MINUS > || ((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code) == IOR > || ((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code) == XOR > || ((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code) == ASHIFT > || ((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code) == LSHIFTRT > || ((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code) == ASHIFTRT) > && ((enum rtx_code) (((((((t)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code) == SUBREG > && ((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) && mode_precision[mode] <= (8 * 8)) > && subreg_lowpart_p (((((((t)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx)) > && rtx_equal_p ((((((((((t)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), f) > && ((nonzero_bits (f, ((enum machine_mode) (f)->mode)) > & ~mode_mask_array[((enum machine_mode) (((((((t)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode)]) > == 0)) > { > c1 = ((((((t)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx); z = f; op = ((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code); > extend_op = ZERO_EXTEND; > m = ((enum machine_mode) ((((t)->u.fld[0]).rt_rtx))->mode); > } > else if (((enum rtx_code) (t)->code) == ZERO_EXTEND > && (((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code) == PLUS > || ((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code) == IOR > || ((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code) == XOR) > && ((enum rtx_code) (((((((t)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->code) == SUBREG > && ((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) && mode_precision[mode] <= (8 * 8)) > && subreg_lowpart_p (((((((t)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx)) > && rtx_equal_p ((((((((((t)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx), f) > && ((nonzero_bits (f, ((enum machine_mode) (f)->mode)) > & ~mode_mask_array[((enum machine_mode) (((((((t)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->mode)]) > == 0)) > { > c1 = ((((((t)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); z = f; op = ((enum rtx_code) ((((t)->u.fld[0]).rt_rtx))->code); > extend_op = ZERO_EXTEND; > m = ((enum machine_mode) ((((t)->u.fld[0]).rt_rtx))->mode); > } > > if (z) > { > temp = subst (simplify_gen_relational (true_code, m, VOIDmode, > cond_op0, cond_op1), > (((&default_target_rtl)->x_global_rtl)[GR_PC]), (((&default_target_rtl)->x_global_rtl)[GR_PC]), 0, 0, 0); > temp = simplify_gen_binary (MULT, m, temp, > simplify_gen_binary (MULT, m, c1, > const_true_rtx)); > temp = subst (temp, (((&default_target_rtl)->x_global_rtl)[GR_PC]), (((&default_target_rtl)->x_global_rtl)[GR_PC]), 0, 0, 0); > temp = simplify_gen_binary (op, m, rtl_hooks.gen_lowpart (m, z), temp); > > if (extend_op != UNKNOWN) > temp = simplify_gen_unary (extend_op, mode, temp, m); > > return temp; > } > } > > > > > > > if (true_code == NE && (((cond)->u.fld[1]).rt_rtx) == (const_int_rtx[64]) > && false_rtx == (const_int_rtx[64]) && (((enum rtx_code) (true_rtx)->code) == CONST_INT) > && ((1 == nonzero_bits ((((cond)->u.fld[0]).rt_rtx), mode) > && (i = exact_log2 (((unsigned long long) ((true_rtx)->u.hwint[0])))) >= 0) > || ((num_sign_bit_copies ((((cond)->u.fld[0]).rt_rtx), mode) > == mode_precision[mode]) > && (i = exact_log2 (-((unsigned long long) ((true_rtx)->u.hwint[0])))) >= 0))) > return > simplify_shift_const ((rtx) 0, ASHIFT, mode, > rtl_hooks.gen_lowpart (mode, (((cond)->u.fld[0]).rt_rtx)), i); > > > if (true_code == NE && (((cond)->u.fld[1]).rt_rtx) == (const_int_rtx[64]) > && false_rtx == (const_int_rtx[64]) && (((enum rtx_code) (true_rtx)->code) == CONST_INT) > && ((enum machine_mode) ((((cond)->u.fld[0]).rt_rtx))->mode) == mode > && (((unsigned long long) ((true_rtx)->u.hwint[0])) & mode_mask_array[mode]) > == nonzero_bits ((((cond)->u.fld[0]).rt_rtx), mode) > && (i = exact_log2 (((unsigned long long) ((true_rtx)->u.hwint[0])) & mode_mask_array[mode])) >= 0) > return (((cond)->u.fld[0]).rt_rtx); > > return x; >} > > > >static rtx >simplify_set (rtx x) >{ > rtx src = (((x)->u.fld[1]).rt_rtx); > rtx dest = (((x)->u.fld[0]).rt_rtx); > enum machine_mode mode > = ((enum machine_mode) (src)->mode) != VOIDmode ? ((enum machine_mode) (src)->mode) : ((enum machine_mode) (dest)->mode); > rtx other_insn; > rtx *cc_use; > > > if (((enum rtx_code) (dest)->code) == PC && (((enum rtx_code) (src)->code) == RETURN || ((enum rtx_code) (src)->code) == SIMPLE_RETURN)) > return src; > > > > > > if (((enum mode_class) mode_class[mode]) == MODE_INT && ((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) && mode_precision[mode] <= (8 * 8))) > { > src = force_to_mode (src, mode, ~(unsigned long long) 0, 0); > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (src)); > } > > > > > if ((((enum mode_class) mode_class[mode]) == MODE_CC > || ((enum rtx_code) (src)->code) == COMPARE > || ((dest) ? 0 : 0)) > && (cc_use = find_single_use (dest, subst_insn, &other_insn)) != 0 > && (undobuf.other_insn == 0 || other_insn == undobuf.other_insn) > && (((rtx_class[(int) (((enum rtx_code) (*cc_use)->code))]) & (~1)) == (RTX_COMPARE & (~1))) > && rtx_equal_p ((((*cc_use)->u.fld[0]).rt_rtx), dest)) > { > enum rtx_code old_code = ((enum rtx_code) (*cc_use)->code); > enum rtx_code new_code; > rtx op0, op1, tmp; > int other_changed = 0; > rtx inner_compare = (rtx) 0; > enum machine_mode compare_mode = ((enum machine_mode) (dest)->mode); > > if (((enum rtx_code) (src)->code) == COMPARE) > { > op0 = (((src)->u.fld[0]).rt_rtx), op1 = (((src)->u.fld[1]).rt_rtx); > if (((enum rtx_code) (op0)->code) == COMPARE && op1 == (const_int_rtx[64])) > { > inner_compare = op0; > op0 = (((inner_compare)->u.fld[0]).rt_rtx), op1 = (((inner_compare)->u.fld[1]).rt_rtx); > } > } > else > op0 = src, op1 = (const_tiny_rtx[0][(int) (((enum machine_mode) (src)->mode))]); > > tmp = simplify_relational_operation (old_code, compare_mode, VOIDmode, > op0, op1); > if (!tmp) > new_code = old_code; > else if (!((rtx_class[(int) (((enum rtx_code) (tmp)->code))]) == RTX_CONST_OBJ)) > { > new_code = ((enum rtx_code) (tmp)->code); > op0 = (((tmp)->u.fld[0]).rt_rtx); > op1 = (((tmp)->u.fld[1]).rt_rtx); > } > else > { > rtx pat = (((other_insn)->u.fld[4]).rt_rtx); > undobuf.other_insn = other_insn; > do_SUBST(&(*cc_use), (tmp)); > > > if (((enum rtx_code) (pat)->code) == SET) > { > rtx new_rtx = simplify_rtx ((((pat)->u.fld[1]).rt_rtx)); > if (new_rtx != (rtx) 0) > do_SUBST(&((((pat)->u.fld[1]).rt_rtx)), (new_rtx)); > } > > > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), ((((&default_target_rtl)->x_global_rtl)[GR_PC]))); > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), ((((&default_target_rtl)->x_global_rtl)[GR_PC]))); > return x; > } > > > new_code = simplify_comparison (new_code, &op0, &op1); > > > > > if (((enum mode_class) mode_class[((enum machine_mode) (op0)->mode)]) == MODE_CC) > compare_mode = ((enum machine_mode) (op0)->mode); > else if (inner_compare > && ((enum mode_class) mode_class[((enum machine_mode) (inner_compare)->mode)]) == MODE_CC > && new_code == old_code > && op0 == (((inner_compare)->u.fld[0]).rt_rtx) > && op1 == (((inner_compare)->u.fld[1]).rt_rtx)) > compare_mode = ((enum machine_mode) (inner_compare)->mode); > else > compare_mode = ((((enum mode_class) mode_class[((enum machine_mode) (op0)->mode)]) == MODE_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) (op0)->mode)]) == MODE_DECIMAL_FLOAT) ? CCFPmode : (new_code) == GTU || (new_code) == LTU || (new_code) == GEU || (new_code) == LEU ? CCUNSmode : (((new_code) == EQ || (new_code) == NE) && (((rtx_class[(int) (((enum rtx_code) (op0)->code))]) & (~1)) == (RTX_COMPARE & (~1))) ? CCEQmode : CCmode)); > > > > > > > > if (compare_mode != ((enum machine_mode) (dest)->mode)) > { > if (can_change_dest_mode (dest, 0, compare_mode)) > { > unsigned int regno = (rhs_regno(dest)); > rtx new_dest; > > if (regno < 114) > new_dest = gen_rtx_REG (compare_mode, regno); > else > { > do_SUBST_MODE(&(regno_reg_rtx[regno]), (compare_mode)); > new_dest = regno_reg_rtx[regno]; > } > > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), (new_dest)); > do_SUBST(&((((*cc_use)->u.fld[0]).rt_rtx)), (new_dest)); > other_changed = 1; > > dest = new_dest; > } > } > > > > > > if (new_code != old_code) > { > int other_changed_previously = other_changed; > unsigned long long mask; > rtx old_cc_use = *cc_use; > > do_SUBST(&(*cc_use), (gen_rtx_fmt_ee_stat (new_code, ((enum machine_mode) (*cc_use)->mode), dest, (const_int_rtx[64]) ))) > ; > other_changed = 1; > > > > > > > > if (((old_code == NE && new_code == EQ) > || (old_code == EQ && new_code == NE)) > && ! other_changed_previously && op1 == (const_int_rtx[64]) > && ((((enum mode_class) mode_class[((enum machine_mode) (op0)->mode)]) == MODE_INT || ((enum mode_class) mode_class[((enum machine_mode) (op0)->mode)]) == MODE_PARTIAL_INT) && mode_precision[((enum machine_mode) (op0)->mode)] <= (8 * 8)) > && exact_log2 (mask = nonzero_bits (op0, ((enum machine_mode) (op0)->mode))) >= 0) > { > rtx pat = (((other_insn)->u.fld[4]).rt_rtx), note = 0; > > if ((recog_for_combine (&pat, other_insn, ¬e) < 0 > && ! check_asm_operands (pat))) > { > *cc_use = old_cc_use; > other_changed = 0; > > op0 = simplify_gen_binary (XOR, ((enum machine_mode) (op0)->mode), > op0, gen_rtx_CONST_INT (VOIDmode, (mask))); > } > } > } > > if (other_changed) > undobuf.other_insn = other_insn; > > > > if (((enum rtx_code) (src)->code) != COMPARE || ((enum machine_mode) (src)->mode) != compare_mode) > { > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (gen_rtx_fmt_ee_stat (COMPARE, (compare_mode), (op0), (op1) ))); > src = (((x)->u.fld[1]).rt_rtx); > } > else if (((enum machine_mode) (op0)->mode) == compare_mode && op1 == (const_int_rtx[64])) > { > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (op0)); > src = (((x)->u.fld[1]).rt_rtx); > } > > else if ((((src)->u.fld[0]).rt_rtx) != op0 || (((src)->u.fld[1]).rt_rtx) != op1) > { > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (gen_rtx_fmt_ee_stat (COMPARE, (compare_mode), (op0), (op1) ))); > src = (((x)->u.fld[1]).rt_rtx); > } > } > else > { > > > src = make_compound_operation (src, SET); > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (src)); > } ># 6559 "../../gcc/combine.c" > if (((enum rtx_code) (src)->code) == SUBREG && subreg_lowpart_p (src) > && !(((rtx_class[(int) (((enum rtx_code) ((((src)->u.fld[0]).rt_rtx))->code))]) & (~1)) == (RTX_OBJ & (~1))) > && (((((unsigned short) mode_size[((enum machine_mode) (src)->mode)]) + ((! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8) - 1)) > / (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)) > == ((((unsigned short) mode_size[((enum machine_mode) ((((src)->u.fld[0]).rt_rtx))->mode)]) > + ((! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8) - 1)) / (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8))) > > > > > > && ! ((((enum rtx_code) (dest)->code) == REG) && (rhs_regno(dest)) < 114 > && rs6000_cannot_change_mode_class_ptr (((enum machine_mode) ((((src)->u.fld[0]).rt_rtx))->mode), ((enum machine_mode) (src)->mode), rs6000_regno_regclass[((rhs_regno(dest)))]) > > ) > > && ((((enum rtx_code) (dest)->code) == REG) > || (((enum rtx_code) (dest)->code) == SUBREG > && (((enum rtx_code) ((((dest)->u.fld[0]).rt_rtx))->code) == REG)))) > { > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), (rtl_hooks.gen_lowpart (((enum machine_mode) ((((src)->u.fld[0]).rt_rtx))->mode), dest))) > > ; > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), ((((src)->u.fld[0]).rt_rtx))); > > src = (((x)->u.fld[1]).rt_rtx), dest = (((x)->u.fld[0]).rt_rtx); > } ># 6614 "../../gcc/combine.c" > if (((enum rtx_code) (src)->code) == SUBREG && subreg_lowpart_p (src) > && (((enum mode_class) mode_class[((enum machine_mode) ((((src)->u.fld[0]).rt_rtx))->mode)]) == MODE_INT || ((enum mode_class) mode_class[((enum machine_mode) ((((src)->u.fld[0]).rt_rtx))->mode)]) == MODE_PARTIAL_INT || ((enum mode_class) mode_class[((enum machine_mode) ((((src)->u.fld[0]).rt_rtx))->mode)]) == MODE_COMPLEX_INT || ((enum mode_class) mode_class[((enum machine_mode) ((((src)->u.fld[0]).rt_rtx))->mode)]) == MODE_VECTOR_INT) > && ZERO_EXTEND != UNKNOWN > && (((src)->u.fld[1]).rt_uint) == 0 > && paradoxical_subreg_p (src) > && (((enum rtx_code) ((((src)->u.fld[0]).rt_rtx))->code) == MEM)) > { > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (gen_rtx_fmt_e_stat (ZERO_EXTEND, ((enum machine_mode) (src)->mode), (((src)->u.fld[0]).rt_rtx) ))) > > ; > > src = (((x)->u.fld[1]).rt_rtx); > } ># 6635 "../../gcc/combine.c" > if (((enum rtx_code) (dest)->code) != PC > && ((enum rtx_code) (src)->code) == IF_THEN_ELSE > && ((enum mode_class) mode_class[((enum machine_mode) (src)->mode)]) == MODE_INT > && (((enum rtx_code) ((((src)->u.fld[0]).rt_rtx))->code) == EQ || ((enum rtx_code) ((((src)->u.fld[0]).rt_rtx))->code) == NE) > && ((((((src)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx) == (const_int_rtx[64]) > && ((enum machine_mode) (src)->mode) == ((enum machine_mode) (((((((src)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode) > > && ! can_conditionally_move_p (((enum machine_mode) (src)->mode)) > > && (num_sign_bit_copies (((((((src)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), > ((enum machine_mode) (((((((src)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode)) > == mode_precision[((enum machine_mode) (((((((src)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode)]) > && ! side_effects_p (src)) > { > rtx true_rtx = (((enum rtx_code) ((((src)->u.fld[0]).rt_rtx))->code) == NE > ? (((src)->u.fld[1]).rt_rtx) : (((src)->u.fld[2]).rt_rtx)); > rtx false_rtx = (((enum rtx_code) ((((src)->u.fld[0]).rt_rtx))->code) == NE > ? (((src)->u.fld[2]).rt_rtx) : (((src)->u.fld[1]).rt_rtx)); > rtx term1 = (const_int_rtx[64]), term2, term3; > > if (((enum rtx_code) (true_rtx)->code) == IOR > && rtx_equal_p ((((true_rtx)->u.fld[0]).rt_rtx), false_rtx)) > term1 = false_rtx, true_rtx = (((true_rtx)->u.fld[1]).rt_rtx), false_rtx = (const_int_rtx[64]); > else if (((enum rtx_code) (true_rtx)->code) == IOR > && rtx_equal_p ((((true_rtx)->u.fld[1]).rt_rtx), false_rtx)) > term1 = false_rtx, true_rtx = (((true_rtx)->u.fld[0]).rt_rtx), false_rtx = (const_int_rtx[64]); > else if (((enum rtx_code) (false_rtx)->code) == IOR > && rtx_equal_p ((((false_rtx)->u.fld[0]).rt_rtx), true_rtx)) > term1 = true_rtx, false_rtx = (((false_rtx)->u.fld[1]).rt_rtx), true_rtx = (const_int_rtx[64]); > else if (((enum rtx_code) (false_rtx)->code) == IOR > && rtx_equal_p ((((false_rtx)->u.fld[1]).rt_rtx), true_rtx)) > term1 = true_rtx, false_rtx = (((false_rtx)->u.fld[0]).rt_rtx), true_rtx = (const_int_rtx[64]); > > term2 = simplify_gen_binary (AND, ((enum machine_mode) (src)->mode), > ((((((src)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), true_rtx); > term3 = simplify_gen_binary (AND, ((enum machine_mode) (src)->mode), > simplify_gen_unary (NOT, ((enum machine_mode) (src)->mode), > ((((((src)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), > ((enum machine_mode) (src)->mode)), > false_rtx); > > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (simplify_gen_binary (IOR, ((enum machine_mode) (src)->mode), simplify_gen_binary (IOR, ((enum machine_mode) (src)->mode), term1, term2), term3))) > > > > ; > > src = (((x)->u.fld[1]).rt_rtx); > } > > > > if (((enum rtx_code) (src)->code) == CLOBBER && (((src)->u.fld[0]).rt_rtx) == (const_int_rtx[64])) > return src; > else if (((enum rtx_code) (dest)->code) == CLOBBER && (((dest)->u.fld[0]).rt_rtx) == (const_int_rtx[64])) > return dest; > else > > return make_field_assignment (x); >} > > > > >static rtx >simplify_logical (rtx x) >{ > enum machine_mode mode = ((enum machine_mode) (x)->mode); > rtx op0 = (((x)->u.fld[0]).rt_rtx); > rtx op1 = (((x)->u.fld[1]).rt_rtx); > > switch (((enum rtx_code) (x)->code)) > { > case AND: > > > > if ((((enum rtx_code) (op1)->code) == CONST_INT) > && (((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) && mode_precision[mode] <= (8 * 8)) > || ((op1)->u.hwint[0]) > 0)) > { > x = simplify_and_const_int (x, mode, op0, ((op1)->u.hwint[0])); > if (((enum rtx_code) (x)->code) != AND) > return x; > > op0 = (((x)->u.fld[0]).rt_rtx); > op1 = (((x)->u.fld[1]).rt_rtx); > } > > > > > if (((enum rtx_code) (op0)->code) == IOR || ((enum rtx_code) (op0)->code) == XOR) > { > rtx result = distribute_and_simplify_rtx (x, 0); > if (result) > return result; > } > if (((enum rtx_code) (op1)->code) == IOR || ((enum rtx_code) (op1)->code) == XOR) > { > rtx result = distribute_and_simplify_rtx (x, 1); > if (result) > return result; > } > break; > > case IOR: > > > > if (((enum rtx_code) (op0)->code) == AND) > { > rtx result = distribute_and_simplify_rtx (x, 0); > if (result) > return result; > } > > if (((enum rtx_code) (op1)->code) == AND) > { > rtx result = distribute_and_simplify_rtx (x, 1); > if (result) > return result; > } > break; > > default: > (fancy_abort ("../../gcc/combine.c", 6761, __FUNCTION__)); > } > > return x; >} ># 6780 "../../gcc/combine.c" >static rtx >expand_compound_operation (rtx x) >{ > unsigned long long pos = 0, len; > int unsignedp = 0; > unsigned int modewidth; > rtx tem; > > switch (((enum rtx_code) (x)->code)) > { > case ZERO_EXTEND: > unsignedp = 1; > case SIGN_EXTEND: ># 6801 "../../gcc/combine.c" > if ((((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == CONST_INT)) > return x; ># 6813 "../../gcc/combine.c" > if (((unsigned short) mode_size[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)]) > (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)) > return x; > > > > > if (! (((enum mode_class) mode_class[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)]) == MODE_INT || ((enum mode_class) mode_class[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)]) == MODE_PARTIAL_INT)) > return x; > > len = mode_precision[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)]; > > > > if (len == 0) > return x; > > break; > > case ZERO_EXTRACT: > unsignedp = 1; > > > > case SIGN_EXTRACT: > > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == CLOBBER) > return (((x)->u.fld[0]).rt_rtx); > > if (!(((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT) > || !(((enum rtx_code) ((((x)->u.fld[2]).rt_rtx))->code) == CONST_INT) > || ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode) == VOIDmode) > return x; > > > > > if (! (((enum mode_class) mode_class[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)]) == MODE_INT || ((enum mode_class) mode_class[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)]) == MODE_PARTIAL_INT)) > return x; > > len = (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]); > pos = (((((x)->u.fld[2]).rt_rtx))->u.hwint[0]); > > > if (len + pos > mode_precision[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)]) > return x; > > if (1) > pos = mode_precision[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)] - len - pos; > > break; > > default: > return x; > } > > > > if (((enum rtx_code) (x)->code) == SIGN_EXTEND > && (((((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_INT || ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_PARTIAL_INT) && mode_precision[((enum machine_mode) (x)->mode)] <= (8 * 8)) > && ((nonzero_bits ((((x)->u.fld[0]).rt_rtx), ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)) > & ~(((unsigned long long) > mode_mask_array[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)]) > >> 1)) > == 0))) > { > rtx temp = gen_rtx_fmt_e_stat (ZERO_EXTEND, (((enum machine_mode) (x)->mode)), ((((x)->u.fld[0]).rt_rtx)) ); > rtx temp2 = expand_compound_operation (temp); > > > if (set_src_cost (x, optimize_this_for_speed_p) > > set_src_cost (temp2, optimize_this_for_speed_p)) > return temp2; > else if (set_src_cost (x, optimize_this_for_speed_p) > > set_src_cost (temp, optimize_this_for_speed_p)) > return temp; > else > return x; > } > > > if (((enum rtx_code) (x)->code) == ZERO_EXTEND) > { > > > > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == TRUNCATE > && ((enum machine_mode) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode) == ((enum machine_mode) (x)->mode) > && ((((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_INT || ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_PARTIAL_INT) && mode_precision[((enum machine_mode) (x)->mode)] <= (8 * 8)) > && (nonzero_bits (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), ((enum machine_mode) (x)->mode)) > & ~mode_mask_array[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)]) == 0) > return ((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > > > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == SUBREG > && ((enum machine_mode) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode) == ((enum machine_mode) (x)->mode) > && subreg_lowpart_p ((((x)->u.fld[0]).rt_rtx)) > && ((((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_INT || ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_PARTIAL_INT) && mode_precision[((enum machine_mode) (x)->mode)] <= (8 * 8)) > && (nonzero_bits (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), ((enum machine_mode) (x)->mode)) > & ~mode_mask_array[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)]) == 0) > return ((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > > > > > > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == TRUNCATE > && ((enum machine_mode) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode) == ((enum machine_mode) (x)->mode) > && (((rtx_class[(int) (((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code))]) & (~1)) == (RTX_COMPARE & (~1))) > && (mode_precision[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)] > <= (8 * 8)) > && (1 & ~mode_mask_array[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)]) == 0) > return ((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > > > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == SUBREG > && ((enum machine_mode) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode) == ((enum machine_mode) (x)->mode) > && subreg_lowpart_p ((((x)->u.fld[0]).rt_rtx)) > && (((rtx_class[(int) (((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code))]) & (~1)) == (RTX_COMPARE & (~1))) > && (mode_precision[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)] > <= (8 * 8)) > && (1 & ~mode_mask_array[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)]) == 0) > return ((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > > } ># 6953 "../../gcc/combine.c" > modewidth = mode_precision[((enum machine_mode) (x)->mode)]; > if (modewidth >= pos + len) > { > enum machine_mode mode = ((enum machine_mode) (x)->mode); > tem = rtl_hooks.gen_lowpart (mode, (((x)->u.fld[0]).rt_rtx)); > if (!tem || ((enum rtx_code) (tem)->code) == CLOBBER) > return x; > tem = simplify_shift_const ((rtx) 0, ASHIFT, mode, > tem, modewidth - pos - len); > tem = simplify_shift_const ((rtx) 0, unsignedp ? LSHIFTRT : ASHIFTRT, > mode, tem, modewidth - len); > } > else if (unsignedp && len < (8 * 8)) > tem = simplify_and_const_int ((rtx) 0, ((enum machine_mode) (x)->mode), > simplify_shift_const ((rtx) 0, LSHIFTRT, > ((enum machine_mode) (x)->mode), > (((x)->u.fld[0]).rt_rtx), pos), > ((unsigned long long) 1 << len) - 1); > else > > return x; > > > > if (((enum rtx_code) (tem)->code) == CLOBBER) > return x; > > return tem; >} ># 6991 "../../gcc/combine.c" >static const_rtx >expand_field_assignment (const_rtx x) >{ > rtx inner; > rtx pos; > int len; > rtx mask, cleared, masked; > enum machine_mode compute_mode; > > > while (1) > { > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == STRICT_LOW_PART > && ((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code) == SUBREG) > { > inner = (((((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > len = mode_precision[((enum machine_mode) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode)]; > pos = gen_rtx_CONST_INT (VOIDmode, (subreg_lsb (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx)))); > } > else if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == ZERO_EXTRACT > && (((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT)) > { > inner = ((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > len = ((((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]); > pos = ((((((x)->u.fld[0]).rt_rtx))->u.fld[2]).rt_rtx); > > > if ((((enum rtx_code) (pos)->code) == CONST_INT) > && ((pos)->u.hwint[0]) + len > mode_precision[((enum machine_mode) (inner)->mode)]) > break; > > if (1) > { > if ((((enum rtx_code) (pos)->code) == CONST_INT)) > pos = gen_rtx_CONST_INT (VOIDmode, (mode_precision[((enum machine_mode) (inner)->mode)] - len - ((pos)->u.hwint[0]))) > ; > else if (((enum rtx_code) (pos)->code) == MINUS > && (((enum rtx_code) ((((pos)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && ((((((pos)->u.fld[1]).rt_rtx))->u.hwint[0]) > == mode_precision[((enum machine_mode) (inner)->mode)] - len)) > > pos = (((pos)->u.fld[0]).rt_rtx); > else > pos = simplify_gen_binary (MINUS, ((enum machine_mode) (pos)->mode), > gen_rtx_CONST_INT (VOIDmode, (mode_precision[((enum machine_mode) (inner)->mode)] - len)) > > , > pos); > } > } > > > > else if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == SUBREG > > && nonzero_sign_valid > && (((((unsigned short) mode_size[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)]) > + ((! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8) - 1)) / (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)) > == ((((unsigned short) mode_size[((enum machine_mode) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode)]) > + ((! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8) - 1)) / (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)))) > { > x = gen_rtx_fmt_ee_stat (SET, (VOIDmode), (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx)), (rtl_hooks.gen_lowpart (((enum machine_mode) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode), (((x)->u.fld[1]).rt_rtx))) ) > > > ; > continue; > } > else > break; > > while (((enum rtx_code) (inner)->code) == SUBREG && subreg_lowpart_p (inner)) > inner = (((inner)->u.fld[0]).rt_rtx); > > compute_mode = ((enum machine_mode) (inner)->mode); > > > if (! (((enum mode_class) mode_class[compute_mode]) == MODE_INT || ((enum mode_class) mode_class[compute_mode]) == MODE_PARTIAL_INT)) > { > enum machine_mode imode; > > > if (! (((enum mode_class) mode_class[compute_mode]) == MODE_FLOAT || ((enum mode_class) mode_class[compute_mode]) == MODE_DECIMAL_FLOAT || ((enum mode_class) mode_class[compute_mode]) == MODE_COMPLEX_FLOAT || ((enum mode_class) mode_class[compute_mode]) == MODE_VECTOR_FLOAT)) > break; > > > imode = mode_for_size (((unsigned short) (((unsigned short) mode_size[compute_mode]) * 8)), MODE_INT, 0); > if (imode == BLKmode) > break; > > compute_mode = imode; > inner = rtl_hooks.gen_lowpart (imode, inner); > } > > > if (len >= (8 * 8)) > break; > > > > > mask = gen_rtx_CONST_INT (VOIDmode, (((unsigned long long) 1 << len) - 1)); > cleared = simplify_gen_binary (AND, compute_mode, > simplify_gen_unary (NOT, compute_mode, > simplify_gen_binary (ASHIFT, > compute_mode, > mask, pos), > compute_mode), > inner); > masked = simplify_gen_binary (ASHIFT, compute_mode, > simplify_gen_binary ( > AND, compute_mode, > rtl_hooks.gen_lowpart (compute_mode, (((x)->u.fld[1]).rt_rtx)), > mask), > pos); > > x = gen_rtx_fmt_ee_stat (SET, (VOIDmode), (copy_rtx (inner)), (simplify_gen_binary (IOR, compute_mode, cleared, masked)) ) > > ; > } > > return x; >} ># 7134 "../../gcc/combine.c" >static rtx >make_extraction (enum machine_mode mode, rtx inner, long long pos, > rtx pos_rtx, unsigned long long len, int unsignedp, > int in_dest, int in_compare) >{ > > > > enum machine_mode is_mode = ((enum machine_mode) (inner)->mode); > enum machine_mode inner_mode; > enum machine_mode wanted_inner_mode; > enum machine_mode wanted_inner_reg_mode = word_mode; > enum machine_mode pos_mode = word_mode; > enum machine_mode extraction_mode = word_mode; > enum machine_mode tmode = mode_for_size (len, MODE_INT, 1); > rtx new_rtx = 0; > rtx orig_pos_rtx = pos_rtx; > long long orig_pos; > > if (((enum rtx_code) (inner)->code) == SUBREG && subreg_lowpart_p (inner)) > { > > > > > > if ((((enum rtx_code) ((((inner)->u.fld[0]).rt_rtx))->code) == MEM)) > is_mode = ((enum machine_mode) ((((inner)->u.fld[0]).rt_rtx))->mode); > inner = (((inner)->u.fld[0]).rt_rtx); > } > else if (((enum rtx_code) (inner)->code) == ASHIFT > && (((enum rtx_code) ((((inner)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && pos_rtx == 0 && pos == 0 > && len > ((unsigned long long) (((((inner)->u.fld[1]).rt_rtx))->u.hwint[0]))) > { > > > > > new_rtx = make_extraction (mode, (((inner)->u.fld[0]).rt_rtx), > 0, 0, len - (((((inner)->u.fld[1]).rt_rtx))->u.hwint[0]), > unsignedp, in_dest, in_compare); > if (new_rtx != 0) > return gen_rtx_fmt_ee_stat (ASHIFT, (mode), (new_rtx), ((((inner)->u.fld[1]).rt_rtx)) ); > } > > inner_mode = ((enum machine_mode) (inner)->mode); > > if (pos_rtx && (((enum rtx_code) (pos_rtx)->code) == CONST_INT)) > pos = ((pos_rtx)->u.hwint[0]), pos_rtx = 0; ># 7194 "../../gcc/combine.c" > if (tmode != BLKmode > && ((pos_rtx == 0 && (pos % (8 * (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8))) == 0 > && !(((enum rtx_code) (inner)->code) == MEM) > && (inner_mode == tmode > || !(((enum rtx_code) (inner)->code) == REG) > || 1 > || reg_truncated_to_mode (tmode, inner)) > && (! in_dest > || ((((enum rtx_code) (inner)->code) == REG) > && have_insn_for (STRICT_LOW_PART, tmode)))) > || ((((enum rtx_code) (inner)->code) == MEM) && pos_rtx == 0 > && (pos > % ((((global_options.x_target_flags & (1 << 27)) != 0)) ? get_mode_alignment (tmode) > : 8)) == 0 > > > && mode_precision[inner_mode] >= mode_precision[tmode] > && (inner_mode == tmode > || (! mode_dependent_address_p ((((inner)->u.fld[0]).rt_rtx)) > && ! (((inner))->volatil)))))) > { > > > > > > > > if ((((enum rtx_code) (inner)->code) == MEM)) > { > long long offset; > > > if (((! ((global_options.x_target_flags & (1 << 8)) != 0)))) > offset = (mode_precision[is_mode] - len - pos) / 8; > else > offset = pos / 8; > > new_rtx = adjust_address_1 (inner, tmode, offset, 0, 1); > } > else if ((((enum rtx_code) (inner)->code) == REG)) > { > if (tmode != inner_mode) > { > > > > if (pos || in_dest) > { > long long final_word = pos / (8 * (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)); > > if (((! ((global_options.x_target_flags & (1 << 8)) != 0))) > && ((unsigned short) mode_size[inner_mode]) > (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)) > final_word = ((((unsigned short) mode_size[inner_mode]) > - ((unsigned short) mode_size[tmode])) > / (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)) - final_word; > > final_word *= (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8); > if (((! ((global_options.x_target_flags & (1 << 8)) != 0))) && > ((unsigned short) mode_size[inner_mode]) > ((unsigned short) mode_size[tmode])) > final_word += (((unsigned short) mode_size[inner_mode]) > - ((unsigned short) mode_size[tmode])) % (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8); > > > > if (!validate_subreg (tmode, inner_mode, inner, final_word)) > return (rtx) 0; > > new_rtx = gen_rtx_SUBREG (tmode, inner, final_word); > } > else > new_rtx = rtl_hooks.gen_lowpart (tmode, inner); > } > else > new_rtx = inner; > } > else > new_rtx = force_to_mode (inner, tmode, > len >= (8 * 8) > ? ~(unsigned long long) 0 > : ((unsigned long long) 1 << len) - 1, > 0); > > > > > if (in_dest) > return ((((enum rtx_code) (new_rtx)->code) == MEM) ? new_rtx > : (((enum rtx_code) (new_rtx)->code) != SUBREG > ? gen_rtx_fmt_e_stat (CLOBBER, (tmode), ((const_int_rtx[64])) ) > : gen_rtx_fmt_e_stat (STRICT_LOW_PART, (VOIDmode), (new_rtx) ))); > > if (mode == tmode) > return new_rtx; > > if ((((enum rtx_code) (new_rtx)->code) == CONST_INT) > || ((enum rtx_code) (new_rtx)->code) == CONST_DOUBLE) > return simplify_unary_operation (unsignedp ? ZERO_EXTEND : SIGN_EXTEND, > mode, new_rtx, tmode); > > > > > if (global_options.x_flag_expensive_optimizations > && (((((enum mode_class) mode_class[tmode]) == MODE_INT || ((enum mode_class) mode_class[tmode]) == MODE_PARTIAL_INT) && mode_precision[tmode] <= (8 * 8)) > && ((nonzero_bits (new_rtx, tmode) > & ~(((unsigned long long)mode_mask_array[tmode]) >> 1)) > == 0))) > { > rtx temp = gen_rtx_fmt_e_stat (ZERO_EXTEND, (mode), (new_rtx) ); > rtx temp1 = gen_rtx_fmt_e_stat (SIGN_EXTEND, (mode), (new_rtx) ); > > > > if (set_src_cost (temp, optimize_this_for_speed_p) > <= set_src_cost (temp1, optimize_this_for_speed_p)) > return temp; > return temp1; > } > > > > > return (gen_rtx_fmt_e_stat (unsignedp ? ZERO_EXTEND : SIGN_EXTEND, mode, new_rtx ) > ); > } > > > > > if (pos_rtx == 0 && pos == 0 && ! in_dest > && ! in_compare && unsignedp) > return 0; > > > > > > if ((((enum rtx_code) (inner)->code) == MEM) > && ((pos_rtx == 0 && pos + len > mode_precision[is_mode]) > || (pos_rtx != 0 && len != 1))) > return 0; > > > > if (in_dest && mode_for_extraction (EP_insv, -1) != MAX_MACHINE_MODE) > { > wanted_inner_reg_mode = mode_for_extraction (EP_insv, 0); > pos_mode = mode_for_extraction (EP_insv, 2); > extraction_mode = mode_for_extraction (EP_insv, 3); > } > > if (! in_dest && unsignedp > && mode_for_extraction (EP_extzv, -1) != MAX_MACHINE_MODE) > { > wanted_inner_reg_mode = mode_for_extraction (EP_extzv, 1); > pos_mode = mode_for_extraction (EP_extzv, 3); > extraction_mode = mode_for_extraction (EP_extzv, 0); > } > > if (! in_dest && ! unsignedp > && mode_for_extraction (EP_extv, -1) != MAX_MACHINE_MODE) > { > wanted_inner_reg_mode = mode_for_extraction (EP_extv, 1); > pos_mode = mode_for_extraction (EP_extv, 3); > extraction_mode = mode_for_extraction (EP_extv, 0); > } > > > > if (mode != VOIDmode > && ((unsigned short) mode_size[extraction_mode]) < ((unsigned short) mode_size[mode])) > extraction_mode = mode; > > if (pos_rtx && ((enum machine_mode) (pos_rtx)->mode) != VOIDmode > && ((unsigned short) mode_size[pos_mode]) < ((unsigned short) mode_size[((enum machine_mode) (pos_rtx)->mode)])) > pos_mode = ((enum machine_mode) (pos_rtx)->mode); > > > > > if (!(((enum rtx_code) (inner)->code) == MEM)) > wanted_inner_mode = wanted_inner_reg_mode; > else > { > > > wanted_inner_mode = smallest_mode_for_size (len, MODE_INT); > while (pos % ((unsigned short) (((unsigned short) mode_size[wanted_inner_mode]) * 8)) + len > > ((unsigned short) (((unsigned short) mode_size[wanted_inner_mode]) * 8))) > { > wanted_inner_mode = ((enum machine_mode) mode_wider[wanted_inner_mode]); > ((void)(!(wanted_inner_mode != VOIDmode) ? fancy_abort ("../../gcc/combine.c", 7386, __FUNCTION__), 0 : 0)); > } > > > > if (inner_mode != wanted_inner_mode > && (mode_dependent_address_p ((((inner)->u.fld[0]).rt_rtx)) > || (((inner))->volatil) > || pos_rtx)) > wanted_inner_mode = extraction_mode; > } > > orig_pos = pos; > > if (1) > { > > > > > > > > int width = ((((enum rtx_code) (inner)->code) == MEM) > ? ((unsigned short) (((unsigned short) mode_size[is_mode]) * 8)) > : ((unsigned short) (((unsigned short) mode_size[wanted_inner_mode]) * 8))); > > if (pos_rtx == 0) > pos = width - len - pos; > else > pos_rtx > = gen_rtx_fmt_ee_stat (MINUS, (((enum machine_mode) (pos_rtx)->mode)), (gen_rtx_CONST_INT (VOIDmode, (width - len))), (pos_rtx) ); > > > } > > > > > if (wanted_inner_mode != VOIDmode > && inner_mode != wanted_inner_mode > && ! pos_rtx > && ((unsigned short) mode_size[wanted_inner_mode]) < ((unsigned short) mode_size[is_mode]) > && (((enum rtx_code) (inner)->code) == MEM) > && ! mode_dependent_address_p ((((inner)->u.fld[0]).rt_rtx)) > && ! (((inner))->volatil)) > { > int offset = 0; > > > > > > > > if (((! ((global_options.x_target_flags & (1 << 8)) != 0))) > && ((unsigned short) mode_size[inner_mode]) < ((unsigned short) mode_size[is_mode])) > offset -= ((unsigned short) mode_size[is_mode]) - ((unsigned short) mode_size[inner_mode]); > > > offset += (pos / ((unsigned short) (((unsigned short) mode_size[wanted_inner_mode]) * 8))) > * ((unsigned short) mode_size[wanted_inner_mode]); > pos %= ((unsigned short) (((unsigned short) mode_size[wanted_inner_mode]) * 8)); > > if (((! ((global_options.x_target_flags & (1 << 8)) != 0))) != 1 > && is_mode != wanted_inner_mode) > offset = (((unsigned short) mode_size[is_mode]) > - ((unsigned short) mode_size[wanted_inner_mode]) - offset); > > inner = adjust_address_1 (inner, wanted_inner_mode, offset, 0, 1); > } > > > > > else if (!(((enum rtx_code) (inner)->code) == MEM)) > { > > > if (in_dest > && !1 > ) > return (rtx) 0; > > if (((enum machine_mode) (inner)->mode) != wanted_inner_mode > && (pos_rtx != 0 > || orig_pos + len > ((unsigned short) (((unsigned short) mode_size[wanted_inner_mode]) * 8)))) > return (rtx) 0; > > if (orig_pos < 0) > return (rtx) 0; > > inner = force_to_mode (inner, wanted_inner_mode, > pos_rtx > || len + orig_pos >= (8 * 8) > ? ~(unsigned long long) 0 > : ((((unsigned long long) 1 << len) - 1) > << orig_pos), > 0); > } > > > > if (pos_rtx != 0 > && ((unsigned short) mode_size[pos_mode]) > ((unsigned short) mode_size[((enum machine_mode) (pos_rtx)->mode)])) > { > rtx temp = gen_rtx_fmt_e_stat (ZERO_EXTEND, (pos_mode), (pos_rtx) ); > > > > > > if (global_options.x_flag_expensive_optimizations > && (((((enum mode_class) mode_class[((enum machine_mode) (pos_rtx)->mode)]) == MODE_INT || ((enum mode_class) mode_class[((enum machine_mode) (pos_rtx)->mode)]) == MODE_PARTIAL_INT) && mode_precision[((enum machine_mode) (pos_rtx)->mode)] <= (8 * 8)) > && ((nonzero_bits (pos_rtx, ((enum machine_mode) (pos_rtx)->mode)) > & ~(((unsigned long long) > mode_mask_array[((enum machine_mode) (pos_rtx)->mode)]) > >> 1)) > == 0))) > { > rtx temp1 = gen_rtx_fmt_e_stat (SIGN_EXTEND, (pos_mode), (pos_rtx) ); > > > > if (set_src_cost (temp1, optimize_this_for_speed_p) > < set_src_cost (temp, optimize_this_for_speed_p)) > temp = temp1; > } > pos_rtx = temp; > } > else if (pos_rtx != 0 > && ((unsigned short) mode_size[pos_mode]) < ((unsigned short) mode_size[((enum machine_mode) (pos_rtx)->mode)])) > pos_rtx = rtl_hooks.gen_lowpart (pos_mode, pos_rtx); > > > > > if (pos_rtx == 0 && orig_pos_rtx != 0 && ((orig_pos_rtx)->u.hwint[0]) == pos) > pos_rtx = orig_pos_rtx; > > else if (pos_rtx == 0) > pos_rtx = gen_rtx_CONST_INT (VOIDmode, (pos)); > > > new_rtx = gen_rtx_fmt_eee_stat (unsignedp ? ZERO_EXTRACT : SIGN_EXTRACT, extraction_mode, inner, gen_rtx_CONST_INT (VOIDmode, (len)), pos_rtx ) > ; > if (! in_dest) > new_rtx = rtl_hooks.gen_lowpart (mode, new_rtx); > > return new_rtx; >} > > > > >static rtx >extract_left_shift (rtx x, int count) >{ > enum rtx_code code = ((enum rtx_code) (x)->code); > enum machine_mode mode = ((enum machine_mode) (x)->mode); > rtx tem; > > switch (code) > { > case ASHIFT: > > > > if ((((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) >= count) > return simplify_shift_const ((rtx) 0, ASHIFT, mode, (((x)->u.fld[0]).rt_rtx), > (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) - count); > break; > > case NEG: case NOT: > if ((tem = extract_left_shift ((((x)->u.fld[0]).rt_rtx), count)) != 0) > return simplify_gen_unary (code, mode, tem, mode); > > break; > > case PLUS: case IOR: case XOR: case AND: > > > if ((((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((unsigned long long) (((((x)->u.fld[1]).rt_rtx))->u.hwint[0])) > & ((((unsigned long long) 1 << count)) - 1)) == 0 > && (tem = extract_left_shift ((((x)->u.fld[0]).rt_rtx), count)) != 0) > return simplify_gen_binary (code, mode, tem, > gen_rtx_CONST_INT (VOIDmode, ((((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) >> count))); > > break; > > default: > break; > } > > return 0; >} ># 7603 "../../gcc/combine.c" >static rtx >make_compound_operation (rtx x, enum rtx_code in_code) >{ > enum rtx_code code = ((enum rtx_code) (x)->code); > enum machine_mode mode = ((enum machine_mode) (x)->mode); > int mode_width = mode_precision[mode]; > rtx rhs, lhs; > enum rtx_code next_code; > int i, j; > rtx new_rtx = 0; > rtx tem; > const char *fmt; > > > > > > next_code = (code == MEM ? MEM > : ((code == PLUS || code == MINUS) > && (((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT)) ? MEM > : ((code == COMPARE || (((rtx_class[(int) (((enum rtx_code) (x)->code))]) & (~1)) == (RTX_COMPARE & (~1)))) > && (((x)->u.fld[1]).rt_rtx) == (const_int_rtx[64])) ? COMPARE > : in_code == COMPARE ? SET : in_code); > > > > > switch (code) > { > case ASHIFT: > > > if (in_code == MEM && (((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) < (8 * 8) > && (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) >= 0 > && (((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT)) > { > long long count = (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]); > long long multval = (long long) 1 << count; > > new_rtx = make_compound_operation ((((x)->u.fld[0]).rt_rtx), next_code); > if (((enum rtx_code) (new_rtx)->code) == NEG) > { > new_rtx = (((new_rtx)->u.fld[0]).rt_rtx); > multval = -multval; > } > multval = trunc_int_for_mode (multval, mode); > new_rtx = gen_rtx_fmt_ee_stat (MULT, (mode), (new_rtx), (gen_rtx_CONST_INT (VOIDmode, (multval))) ); > } > break; > > case PLUS: > lhs = (((x)->u.fld[0]).rt_rtx); > rhs = (((x)->u.fld[1]).rt_rtx); > lhs = make_compound_operation (lhs, next_code); > rhs = make_compound_operation (rhs, next_code); > if (((enum rtx_code) (lhs)->code) == MULT && ((enum rtx_code) ((((lhs)->u.fld[0]).rt_rtx))->code) == NEG > && (((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT)) > { > tem = simplify_gen_binary (MULT, mode, ((((((lhs)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), > (((lhs)->u.fld[1]).rt_rtx)); > new_rtx = simplify_gen_binary (MINUS, mode, rhs, tem); > } > else if (((enum rtx_code) (lhs)->code) == MULT > && ((((enum rtx_code) ((((lhs)->u.fld[1]).rt_rtx))->code) == CONST_INT) && (((((lhs)->u.fld[1]).rt_rtx))->u.hwint[0]) < 0)) > { > tem = simplify_gen_binary (MULT, mode, (((lhs)->u.fld[0]).rt_rtx), > simplify_gen_unary (NEG, mode, > (((lhs)->u.fld[1]).rt_rtx), > mode)); > new_rtx = simplify_gen_binary (MINUS, mode, rhs, tem); > } > else > { > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), (lhs)); > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (rhs)); > goto maybe_swap; > } > x = rtl_hooks.gen_lowpart (mode, new_rtx); > goto maybe_swap; > > case MINUS: > lhs = (((x)->u.fld[0]).rt_rtx); > rhs = (((x)->u.fld[1]).rt_rtx); > lhs = make_compound_operation (lhs, next_code); > rhs = make_compound_operation (rhs, next_code); > if (((enum rtx_code) (rhs)->code) == MULT && ((enum rtx_code) ((((rhs)->u.fld[0]).rt_rtx))->code) == NEG > && (((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT)) > { > tem = simplify_gen_binary (MULT, mode, ((((((rhs)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), > (((rhs)->u.fld[1]).rt_rtx)); > new_rtx = simplify_gen_binary (PLUS, mode, tem, lhs); > } > else if (((enum rtx_code) (rhs)->code) == MULT > && ((((enum rtx_code) ((((rhs)->u.fld[1]).rt_rtx))->code) == CONST_INT) && (((((rhs)->u.fld[1]).rt_rtx))->u.hwint[0]) < 0)) > { > tem = simplify_gen_binary (MULT, mode, (((rhs)->u.fld[0]).rt_rtx), > simplify_gen_unary (NEG, mode, > (((rhs)->u.fld[1]).rt_rtx), > mode)); > new_rtx = simplify_gen_binary (PLUS, mode, tem, lhs); > } > else > { > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), (lhs)); > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (rhs)); > return x; > } > return rtl_hooks.gen_lowpart (mode, new_rtx); > > case AND: > > > if (!(((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT)) > break; > > > > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == LSHIFTRT > && (i = exact_log2 (((unsigned long long) (((((x)->u.fld[1]).rt_rtx))->u.hwint[0])) + 1)) >= 0) > { > new_rtx = make_compound_operation (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), next_code); > new_rtx = make_extraction (mode, new_rtx, 0, ((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx), i, 1, > 0, in_code == COMPARE); > } > > > else if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == SUBREG > && subreg_lowpart_p ((((x)->u.fld[0]).rt_rtx)) > && ((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code) == LSHIFTRT > && (i = exact_log2 (((unsigned long long) (((((x)->u.fld[1]).rt_rtx))->u.hwint[0])) + 1)) >= 0) > { > new_rtx = make_compound_operation ((((((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), > next_code); > new_rtx = make_extraction (((enum machine_mode) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode), new_rtx, 0, > (((((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx), i, 1, > 0, in_code == COMPARE); > } > > else if ((((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == XOR > || ((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == IOR) > && ((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code) == LSHIFTRT > && ((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->code) == LSHIFTRT > && (i = exact_log2 (((unsigned long long) (((((x)->u.fld[1]).rt_rtx))->u.hwint[0])) + 1)) >= 0) > { > > new_rtx = gen_rtx_fmt_ee_stat (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code), mode, gen_rtx_fmt_ee_stat (AND, (mode), (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx)), ((((x)->u.fld[1]).rt_rtx)) ), gen_rtx_fmt_ee_stat (AND, (mode), (((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx)), ((((x)->u.fld[1]).rt_rtx)) ) ) > > > > ; > new_rtx = make_compound_operation (new_rtx, in_code); > } > > > > > else if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == ROTATE > && (((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (i = exact_log2 (((unsigned long long) (((((x)->u.fld[1]).rt_rtx))->u.hwint[0])) + 1)) >= 0 > && i <= ((((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0])) > { > new_rtx = make_compound_operation (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), next_code); > new_rtx = make_extraction (mode, new_rtx, > (mode_precision[mode] > - ((((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0])), > (rtx) 0, i, 1, 0, in_code == COMPARE); > } > > > > > else if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == LSHIFTRT > && !have_insn_for (LSHIFTRT, mode) > && have_insn_for (ASHIFTRT, mode) > && (((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT) > && ((((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]) >= 0 > && ((((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]) < (8 * 8) > && mode_width <= (8 * 8)) > { > unsigned long long mask = mode_mask_array[mode]; > > mask >>= ((((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]); > if (((((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) & ~mask) == 0) > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), (gen_rtx_fmt_ee_stat (ASHIFTRT, (mode), (make_compound_operation (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), next_code)), (((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx)) ))) > > > > ; > } > > > > > > else if ((i = exact_log2 (((unsigned long long) (((((x)->u.fld[1]).rt_rtx))->u.hwint[0])) + 1)) >= 0) > new_rtx = make_extraction (mode, > make_compound_operation ((((x)->u.fld[0]).rt_rtx), > next_code), > 0, (rtx) 0, i, 1, 0, in_code == COMPARE); > > > > else if (in_code == COMPARE > && (i = exact_log2 (((unsigned long long) (((((x)->u.fld[1]).rt_rtx))->u.hwint[0])))) >= 0) > new_rtx = make_extraction (mode, > make_compound_operation ((((x)->u.fld[0]).rt_rtx), > next_code), > i, (rtx) 0, 1, 1, 0, 1); > > break; > > case LSHIFTRT: > > > if (have_insn_for (ASHIFTRT, mode) > && ! have_insn_for (LSHIFTRT, mode) > && mode_width <= (8 * 8) > && (nonzero_bits ((((x)->u.fld[0]).rt_rtx), mode) & (1 << (mode_width - 1))) == 0) > { > new_rtx = gen_rtx_fmt_ee_stat (ASHIFTRT, (mode), (make_compound_operation ((((x)->u.fld[0]).rt_rtx), next_code)), ((((x)->u.fld[1]).rt_rtx)) ) > > > ; > break; > } > > > > case ASHIFTRT: > lhs = (((x)->u.fld[0]).rt_rtx); > rhs = (((x)->u.fld[1]).rt_rtx); > > > > if ((((enum rtx_code) (rhs)->code) == CONST_INT) > && ((enum rtx_code) (lhs)->code) == ASHIFT > && (((enum rtx_code) ((((lhs)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && ((rhs)->u.hwint[0]) >= (((((lhs)->u.fld[1]).rt_rtx))->u.hwint[0]) > && (((((lhs)->u.fld[1]).rt_rtx))->u.hwint[0]) >= 0 > && ((rhs)->u.hwint[0]) < mode_width) > { > new_rtx = make_compound_operation ((((lhs)->u.fld[0]).rt_rtx), next_code); > new_rtx = make_extraction (mode, new_rtx, > ((rhs)->u.hwint[0]) - (((((lhs)->u.fld[1]).rt_rtx))->u.hwint[0]), > (rtx) 0, mode_width - ((rhs)->u.hwint[0]), > code == LSHIFTRT, 0, in_code == COMPARE); > break; > } > > > > > > > if (!(((rtx_class[(int) (((enum rtx_code) (lhs)->code))]) & (~1)) == (RTX_OBJ & (~1))) > && ! (((enum rtx_code) (lhs)->code) == SUBREG > && ((((rtx_class[(int) (((enum rtx_code) ((((lhs)->u.fld[0]).rt_rtx))->code))]) & (~1)) == (RTX_OBJ & (~1))))) > && (((enum rtx_code) (rhs)->code) == CONST_INT) > && ((rhs)->u.hwint[0]) < (8 * 8) > && ((rhs)->u.hwint[0]) < mode_width > && (new_rtx = extract_left_shift (lhs, ((rhs)->u.hwint[0]))) != 0) > new_rtx = make_extraction (mode, make_compound_operation (new_rtx, next_code), > 0, (rtx) 0, mode_width - ((rhs)->u.hwint[0]), > code == LSHIFTRT, 0, in_code == COMPARE); > > break; > > case SUBREG: > > > > { > rtx inner = (((x)->u.fld[0]).rt_rtx), simplified; > > tem = make_compound_operation (inner, in_code); > > simplified > = simplify_subreg (mode, tem, ((enum machine_mode) (inner)->mode), (((x)->u.fld[1]).rt_uint)); > if (simplified) > tem = simplified; > > if (((enum rtx_code) (tem)->code) != ((enum rtx_code) (inner)->code) > && ((unsigned short) mode_size[mode]) < ((unsigned short) mode_size[((enum machine_mode) (inner)->mode)]) > && subreg_lowpart_p (x)) > { > rtx newer > = force_to_mode (tem, mode, ~(unsigned long long) 0, 0); > > > > if (((enum rtx_code) (newer)->code) != SUBREG) > newer = make_compound_operation (newer, in_code); > > > > if (rtx_equal_p (newer, x) > > > > || (((enum rtx_code) (newer)->code) == SUBREG > && (((enum rtx_code) ((((newer)->u.fld[0]).rt_rtx))->code) == LSHIFTRT > || ((enum rtx_code) ((((newer)->u.fld[0]).rt_rtx))->code) == ASHIFTRT) > && ((enum rtx_code) (inner)->code) == AND > && rtx_equal_p ((((newer)->u.fld[0]).rt_rtx), (((inner)->u.fld[0]).rt_rtx)))) > return rtl_hooks.gen_lowpart (((enum machine_mode) (x)->mode), tem); > > return newer; > } > > if (simplified) > return tem; > } > break; > > default: > break; > } > > if (new_rtx) > { > x = rtl_hooks.gen_lowpart (mode, new_rtx); > code = ((enum rtx_code) (x)->code); > } > > > > > if (((enum rtx_code) (x)->code) == ZERO_EXTEND) > { > new_rtx = make_compound_operation ((((x)->u.fld[0]).rt_rtx), next_code); > tem = simplify_const_unary_operation (ZERO_EXTEND, ((enum machine_mode) (x)->mode), > new_rtx, ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)); > if (tem) > return tem; > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), (new_rtx)); > return x; > } > > fmt = (rtx_format[(int) (code)]); > for (i = 0; i < (rtx_length[(int) (code)]); i++) > if (fmt[i] == 'e') > { > new_rtx = make_compound_operation ((((x)->u.fld[i]).rt_rtx), next_code); > do_SUBST(&((((x)->u.fld[i]).rt_rtx)), (new_rtx)); > } > else if (fmt[i] == 'E') > for (j = 0; j < (((((x)->u.fld[i]).rt_rtvec))->num_elem); j++) > { > new_rtx = make_compound_operation ((((((x)->u.fld[i]).rt_rtvec))->elem[j]), next_code); > do_SUBST(&((((((x)->u.fld[i]).rt_rtvec))->elem[j])), (new_rtx)); > } > > maybe_swap: > > > if (((rtx_class[(int) (((enum rtx_code) (x)->code))]) == RTX_COMM_ARITH) > && swap_commutative_operands_p ((((x)->u.fld[0]).rt_rtx), (((x)->u.fld[1]).rt_rtx))) > { > tem = (((x)->u.fld[0]).rt_rtx); > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), ((((x)->u.fld[1]).rt_rtx))); > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (tem)); > } > > return x; >} ># 7977 "../../gcc/combine.c" >static int >get_pos_from_mask (unsigned long long m, unsigned long long *plen) >{ > > int pos = m ? ctz_hwi (m) : -1; > int len = 0; > > if (pos >= 0) > > > len = exact_log2 ((m >> pos) + 1); > > if (len <= 0) > pos = -1; > > *plen = len; > return pos; >} > > > >static rtx >canon_reg_for_combine (rtx x, rtx reg) >{ > rtx op0, op1, op2; > const char *fmt; > int i; > unsigned char copied; > > enum rtx_code code = ((enum rtx_code) (x)->code); > switch ((rtx_class[(int) (code)])) > { > case RTX_UNARY: > op0 = canon_reg_for_combine ((((x)->u.fld[0]).rt_rtx), reg); > if (op0 != (((x)->u.fld[0]).rt_rtx)) > return simplify_gen_unary (((enum rtx_code) (x)->code), ((enum machine_mode) (x)->mode), op0, > ((enum machine_mode) (reg)->mode)); > break; > > case RTX_BIN_ARITH: > case RTX_COMM_ARITH: > op0 = canon_reg_for_combine ((((x)->u.fld[0]).rt_rtx), reg); > op1 = canon_reg_for_combine ((((x)->u.fld[1]).rt_rtx), reg); > if (op0 != (((x)->u.fld[0]).rt_rtx) || op1 != (((x)->u.fld[1]).rt_rtx)) > return simplify_gen_binary (((enum rtx_code) (x)->code), ((enum machine_mode) (x)->mode), op0, op1); > break; > > case RTX_COMPARE: > case RTX_COMM_COMPARE: > op0 = canon_reg_for_combine ((((x)->u.fld[0]).rt_rtx), reg); > op1 = canon_reg_for_combine ((((x)->u.fld[1]).rt_rtx), reg); > if (op0 != (((x)->u.fld[0]).rt_rtx) || op1 != (((x)->u.fld[1]).rt_rtx)) > return simplify_gen_relational (((enum rtx_code) (x)->code), ((enum machine_mode) (x)->mode), > ((enum machine_mode) (op0)->mode), op0, op1); > break; > > case RTX_TERNARY: > case RTX_BITFIELD_OPS: > op0 = canon_reg_for_combine ((((x)->u.fld[0]).rt_rtx), reg); > op1 = canon_reg_for_combine ((((x)->u.fld[1]).rt_rtx), reg); > op2 = canon_reg_for_combine ((((x)->u.fld[2]).rt_rtx), reg); > if (op0 != (((x)->u.fld[0]).rt_rtx) || op1 != (((x)->u.fld[1]).rt_rtx) || op2 != (((x)->u.fld[2]).rt_rtx)) > return simplify_gen_ternary (((enum rtx_code) (x)->code), ((enum machine_mode) (x)->mode), > ((enum machine_mode) (op0)->mode), op0, op1, op2); > > case RTX_OBJ: > if ((((enum rtx_code) (x)->code) == REG)) > { > if (rtx_equal_p (get_last_value (reg), x) > || rtx_equal_p (reg, get_last_value (x))) > return reg; > else > break; > } > > > > default: > fmt = (rtx_format[(int) (code)]); > copied = 0; > for (i = (rtx_length[(int) (code)]) - 1; i >= 0; i--) > if (fmt[i] == 'e') > { > rtx op = canon_reg_for_combine ((((x)->u.fld[i]).rt_rtx), reg); > if (op != (((x)->u.fld[i]).rt_rtx)) > { > if (!copied) > { > copied = 1; > x = copy_rtx (x); > } > (((x)->u.fld[i]).rt_rtx) = op; > } > } > else if (fmt[i] == 'E') > { > int j; > for (j = 0; j < (((((x)->u.fld[i]).rt_rtvec))->num_elem); j++) > { > rtx op = canon_reg_for_combine ((((((x)->u.fld[i]).rt_rtvec))->elem[j]), reg); > if (op != (((((x)->u.fld[i]).rt_rtvec))->elem[j])) > { > if (!copied) > { > copied = 1; > x = copy_rtx (x); > } > (((((x)->u.fld[i]).rt_rtvec))->elem[j]) = op; > } > } > } > > break; > } > > return x; >} > > > > > >static rtx >gen_lowpart_or_truncate (enum machine_mode mode, rtx x) >{ > if (!(((enum rtx_code) (x)->code) == CONST_INT) > && ((unsigned short) mode_size[mode]) < ((unsigned short) mode_size[((enum machine_mode) (x)->mode)]) > && !1 > && !((((enum rtx_code) (x)->code) == REG) && reg_truncated_to_mode (mode, x))) > { > > if (!(((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_INT || ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_PARTIAL_INT)) > x = rtl_hooks.gen_lowpart (int_mode_for_mode (((enum machine_mode) (x)->mode)), x); > x = simplify_gen_unary (TRUNCATE, int_mode_for_mode (mode), > x, ((enum machine_mode) (x)->mode)); > } > > return rtl_hooks.gen_lowpart (mode, x); >} ># 8130 "../../gcc/combine.c" >static rtx >force_to_mode (rtx x, enum machine_mode mode, unsigned long long mask, > int just_select) >{ > enum rtx_code code = ((enum rtx_code) (x)->code); > int next_select = just_select || code == XOR || code == NOT || code == NEG; > enum machine_mode op_mode; > unsigned long long fuller_mask, nonzero; > rtx op0, op1, temp; > > > > > > > > if (code == CALL || code == ASM_OPERANDS || code == CLOBBER) > return x; > > > > > op_mode = ((((enum mode_class) mode_class[mode]) == ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) > && have_insn_for (code, mode)) > ? mode : ((enum machine_mode) (x)->mode)); > > > > if ((code == LSHIFTRT || code == ASHIFTRT) > && mode_precision[mode] < mode_precision[((enum machine_mode) (x)->mode)]) > op_mode = ((enum machine_mode) (x)->mode); > > > if (op_mode) > mask &= mode_mask_array[op_mode]; > > > > > if (mask & ((unsigned long long) 1 << ((8 * 8) - 1))) > fuller_mask = ~(unsigned long long) 0; > else > fuller_mask = (((unsigned long long) 1 << (floor_log2 (mask) + 1)) > - 1); > > > nonzero = nonzero_bits (x, mode); > > > if (!just_select && (nonzero & mask) == 0 && !side_effects_p (x)) > x = (const_int_rtx[64]); > > > > if ((((enum rtx_code) (x)->code) == CONST_INT)) > { > if ((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT)) > return gen_int_mode (((x)->u.hwint[0]) & mask, mode); > else > { > x = gen_rtx_CONST_INT (VOIDmode, (((x)->u.hwint[0]) & mask)); > return gen_lowpart_common (mode, x); > } > } > > > > if (((unsigned short) mode_size[((enum machine_mode) (x)->mode)]) < ((unsigned short) mode_size[mode]) > && (mode_mask_array[((enum machine_mode) (x)->mode)] & ~mask) == 0) > return rtl_hooks.gen_lowpart (mode, x); > > > > if (((enum rtx_code) (x)->code) == SUBREG > && subreg_lowpart_p (x) > && ((((unsigned short) mode_size[((enum machine_mode) (x)->mode)]) > < ((unsigned short) mode_size[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)])) > || (0 == (mask > & mode_mask_array[((enum machine_mode) (x)->mode)] > & ~mode_mask_array[((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)])))) > return force_to_mode ((((x)->u.fld[0]).rt_rtx), mode, mask, next_select); > > > if (!(((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) || !(((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_INT || ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_PARTIAL_INT)) > return gen_lowpart_or_truncate (mode, x); > > switch (code) > { > case CLOBBER: > > > return x; > > case SIGN_EXTEND: > case ZERO_EXTEND: > case ZERO_EXTRACT: > case SIGN_EXTRACT: > x = expand_compound_operation (x); > if (((enum rtx_code) (x)->code) != code) > return force_to_mode (x, mode, mask, next_select); > break; > > case TRUNCATE: > > return force_to_mode ((((x)->u.fld[0]).rt_rtx), mode, mask, next_select); > > case AND: > > > > > if ((((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT)) > { > x = simplify_and_const_int (x, op_mode, (((x)->u.fld[0]).rt_rtx), > mask & (((((x)->u.fld[1]).rt_rtx))->u.hwint[0])); > > > > > > if (((enum rtx_code) (x)->code) == AND && (((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) & mode_mask_array[((enum machine_mode) (x)->mode)]) > == mask)) > x = (((x)->u.fld[0]).rt_rtx); > > > > > > > if (((enum rtx_code) (x)->code) == AND && (((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && mode_mask_array[((enum machine_mode) (x)->mode)] != mask > && ((((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_INT || ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_PARTIAL_INT) && mode_precision[((enum machine_mode) (x)->mode)] <= (8 * 8))) > { > unsigned long long cval > = ((unsigned long long) (((((x)->u.fld[1]).rt_rtx))->u.hwint[0])) > | (mode_mask_array[((enum machine_mode) (x)->mode)] & ~mask); > int width = mode_precision[((enum machine_mode) (x)->mode)]; > rtx y; > > > > if (width > 0 && width < (8 * 8) > && (cval & ((unsigned long long) 1 << (width - 1))) != 0) > cval |= (unsigned long long) -1 << width; > > y = simplify_gen_binary (AND, ((enum machine_mode) (x)->mode), > (((x)->u.fld[0]).rt_rtx), gen_rtx_CONST_INT (VOIDmode, (cval))); > if (set_src_cost (y, optimize_this_for_speed_p) > < set_src_cost (x, optimize_this_for_speed_p)) > x = y; > } > > break; > } > > goto binop; > > case PLUS: > > > > > > { > unsigned int width = mode_precision[mode]; > unsigned long long smask = mask; > > > > > if (width < (8 * 8) > && (smask & ((unsigned long long) 1 << (width - 1))) != 0) > smask |= (unsigned long long) (-1) << width; > > if ((((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && exact_log2 (- smask) >= 0 > && (nonzero_bits ((((x)->u.fld[0]).rt_rtx), mode) & ~smask) == 0 > && ((((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) & ~smask) != 0) > return force_to_mode (plus_constant ((((x)->u.fld[0]).rt_rtx), > ((((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) & smask)), > mode, smask, next_select); > } > > > > case MULT: > > > > mask = fuller_mask; > goto binop; > > case MINUS: > > > if ((((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == CONST_INT) > && (((unsigned long long) ((((((x)->u.fld[0]).rt_rtx))->u.hwint[0]) > & -(((((x)->u.fld[0]).rt_rtx))->u.hwint[0]))) > > mask)) > { > x = simplify_gen_unary (NEG, ((enum machine_mode) (x)->mode), (((x)->u.fld[1]).rt_rtx), > ((enum machine_mode) (x)->mode)); > return force_to_mode (x, mode, mask, next_select); > } > > > > if ((((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == CONST_INT) > && ((((unsigned long long) (((((x)->u.fld[0]).rt_rtx))->u.hwint[0])) | fuller_mask) == ((unsigned long long) (((((x)->u.fld[0]).rt_rtx))->u.hwint[0])))) > { > x = simplify_gen_unary (NOT, ((enum machine_mode) (x)->mode), > (((x)->u.fld[1]).rt_rtx), ((enum machine_mode) (x)->mode)); > return force_to_mode (x, mode, mask, next_select); > } > > mask = fuller_mask; > goto binop; > > case IOR: > case XOR: > > > > > > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == LSHIFTRT > && (((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT) > && ((((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]) >= 0 > && ((((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]) < (8 * 8) > && (((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && ((((((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]) > + floor_log2 ((((((x)->u.fld[1]).rt_rtx))->u.hwint[0]))) > < mode_precision[((enum machine_mode) (x)->mode)]) > && (((unsigned long long) (((((x)->u.fld[1]).rt_rtx))->u.hwint[0])) > & ~nonzero_bits ((((x)->u.fld[0]).rt_rtx), ((enum machine_mode) (x)->mode))) == 0) > { > temp = gen_rtx_CONST_INT (VOIDmode, (((((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) & mask) << ((((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]))) > ; > temp = simplify_gen_binary (((enum rtx_code) (x)->code), ((enum machine_mode) (x)->mode), > ((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), temp); > x = simplify_gen_binary (LSHIFTRT, ((enum machine_mode) (x)->mode), temp, > ((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx)); > return force_to_mode (x, mode, mask, next_select); > } > > binop: > > > > op0 = force_to_mode ((((x)->u.fld[0]).rt_rtx), mode, mask, next_select); > op1 = force_to_mode ((((x)->u.fld[1]).rt_rtx), mode, mask, next_select); > > > > if (((enum rtx_code) (op0)->code) == TRUNCATE > && ((enum rtx_code) (op1)->code) == TRUNCATE) > { > op0 = (((op0)->u.fld[0]).rt_rtx); > op1 = (((op1)->u.fld[0]).rt_rtx); > } > > op0 = gen_lowpart_or_truncate (op_mode, op0); > op1 = gen_lowpart_or_truncate (op_mode, op1); > > if (op_mode != ((enum machine_mode) (x)->mode) || op0 != (((x)->u.fld[0]).rt_rtx) || op1 != (((x)->u.fld[1]).rt_rtx)) > x = simplify_gen_binary (code, op_mode, op0, op1); > break; > > case ASHIFT: > > > > > > > if (! ((((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) >= 0 > && (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) < mode_precision[mode]) > && ! (((enum machine_mode) ((((x)->u.fld[1]).rt_rtx))->mode) != VOIDmode > && (nonzero_bits ((((x)->u.fld[1]).rt_rtx), ((enum machine_mode) ((((x)->u.fld[1]).rt_rtx))->mode)) > < (unsigned long long) mode_precision[mode]))) > break; > > > > > if ((((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) >= 0 > && (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) < mode_precision[op_mode] > && ((((enum mode_class) mode_class[op_mode]) == MODE_INT || ((enum mode_class) mode_class[op_mode]) == MODE_PARTIAL_INT) && mode_precision[op_mode] <= (8 * 8))) > mask >>= (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]); > else > mask = fuller_mask; > > op0 = gen_lowpart_or_truncate (op_mode, > force_to_mode ((((x)->u.fld[0]).rt_rtx), op_mode, > mask, next_select)); > > if (op_mode != ((enum machine_mode) (x)->mode) || op0 != (((x)->u.fld[0]).rt_rtx)) > x = simplify_gen_binary (code, op_mode, op0, (((x)->u.fld[1]).rt_rtx)); > break; > > case LSHIFTRT: > > > > > if ((((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) < (8 * 8) > && ((((enum mode_class) mode_class[op_mode]) == MODE_INT || ((enum mode_class) mode_class[op_mode]) == MODE_PARTIAL_INT) && mode_precision[op_mode] <= (8 * 8))) > { > rtx inner = (((x)->u.fld[0]).rt_rtx); > unsigned long long inner_mask; > > > inner_mask = mask << (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]); > > > > > if ((inner_mask & ~mode_mask_array[((enum machine_mode) (x)->mode)]) != 0) > op_mode = ((enum machine_mode) (x)->mode); > > inner = force_to_mode (inner, op_mode, inner_mask, next_select); > > if (((enum machine_mode) (x)->mode) != op_mode || inner != (((x)->u.fld[0]).rt_rtx)) > x = simplify_gen_binary (LSHIFTRT, op_mode, inner, (((x)->u.fld[1]).rt_rtx)); > } > > > > > > if (((enum rtx_code) (x)->code) == LSHIFTRT > && (((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT) > > > && (((((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) > + num_sign_bit_copies ((((x)->u.fld[0]).rt_rtx), ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode))) > >= mode_precision[((enum machine_mode) (x)->mode)]) > && exact_log2 (mask + 1) >= 0 > > > && (((((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) + exact_log2 (mask + 1)) > <= mode_precision[((enum machine_mode) (x)->mode)]) > > && ((int) num_sign_bit_copies ((((x)->u.fld[0]).rt_rtx), ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)) > >= exact_log2 (mask + 1))) > x = simplify_gen_binary (LSHIFTRT, ((enum machine_mode) (x)->mode), (((x)->u.fld[0]).rt_rtx), > gen_rtx_CONST_INT (VOIDmode, (mode_precision[((enum machine_mode) (x)->mode)] - exact_log2 (mask + 1))) > ); > > goto shiftrt; > > case ASHIFTRT: > > > if (val_signbit_p (((enum machine_mode) (x)->mode), mask)) > return force_to_mode ((((x)->u.fld[0]).rt_rtx), mode, mask, next_select); ># 8498 "../../gcc/combine.c" > if ((((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT) && (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) >= 0 > && (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) < (8 * 8)) > { > int i; > > > > > > if (mode_precision[((enum machine_mode) (x)->mode)] > (8 * 8)) > { > nonzero = ~(unsigned long long) 0; > > > > > > > if (mode_precision[((enum machine_mode) (x)->mode)] - (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) > < (8 * 8)) > nonzero >>= (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) > + (8 * 8) > - mode_precision[((enum machine_mode) (x)->mode)] ; > } > else > { > nonzero = mode_mask_array[((enum machine_mode) (x)->mode)]; > nonzero >>= (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]); > } > > if ((mask & ~nonzero) == 0) > { > x = simplify_shift_const ((rtx) 0, LSHIFTRT, ((enum machine_mode) (x)->mode), > (((x)->u.fld[0]).rt_rtx), (((((x)->u.fld[1]).rt_rtx))->u.hwint[0])); > if (((enum rtx_code) (x)->code) != ASHIFTRT) > return force_to_mode (x, mode, mask, next_select); > } > > else if ((i = exact_log2 (mask)) >= 0) > { > x = simplify_shift_const > ((rtx) 0, LSHIFTRT, ((enum machine_mode) (x)->mode), (((x)->u.fld[0]).rt_rtx), > mode_precision[((enum machine_mode) (x)->mode)] - 1 - i); > > if (((enum rtx_code) (x)->code) != ASHIFTRT) > return force_to_mode (x, mode, mask, next_select); > } > } > > > > if (mask == 1) > x = simplify_gen_binary (LSHIFTRT, ((enum machine_mode) (x)->mode), > (((x)->u.fld[0]).rt_rtx), (((x)->u.fld[1]).rt_rtx)); > > shiftrt: > > > > > > if ((((enum rtx_code) (x)->code) == LSHIFTRT || ((enum rtx_code) (x)->code) == ASHIFTRT) > && (((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) >= 0 > && ((((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) > <= mode_precision[((enum machine_mode) (x)->mode)] - (floor_log2 (mask) + 1)) > && ((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == ASHIFT > && ((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx) == (((x)->u.fld[1]).rt_rtx)) > return force_to_mode (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), mode, mask, > next_select); > > break; > > case ROTATE: > case ROTATERT: > > > > > if ((((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((((x)->u.fld[1]).rt_rtx))->u.hwint[0]) >= 0) > { > temp = simplify_binary_operation (code == ROTATE ? ROTATERT : ROTATE, > ((enum machine_mode) (x)->mode), gen_rtx_CONST_INT (VOIDmode, (mask)), > (((x)->u.fld[1]).rt_rtx)); > if (temp && (((enum rtx_code) (temp)->code) == CONST_INT)) > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), (force_to_mode ((((x)->u.fld[0]).rt_rtx), ((enum machine_mode) (x)->mode), ((temp)->u.hwint[0]), next_select))) > > ; > } > break; > > case NEG: > > > if (mask == 1) > return force_to_mode ((((x)->u.fld[0]).rt_rtx), mode, mask, just_select); > > > > > mask = fuller_mask; > goto unop; > > case NOT: > > > > > if (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == LSHIFTRT > && (((enum rtx_code) (((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT) > && ((((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]) >= 0 > && (((((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]) + floor_log2 (mask) > < mode_precision[((enum machine_mode) (x)->mode)]) > && ((((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]) < (8 * 8)) > { > temp = gen_int_mode (mask << ((((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]), > ((enum machine_mode) (x)->mode)); > temp = simplify_gen_binary (XOR, ((enum machine_mode) (x)->mode), > ((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), temp); > x = simplify_gen_binary (LSHIFTRT, ((enum machine_mode) (x)->mode), > temp, ((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx)); > > return force_to_mode (x, mode, mask, next_select); > } > > > > mask = fuller_mask; > > unop: > op0 = gen_lowpart_or_truncate (op_mode, > force_to_mode ((((x)->u.fld[0]).rt_rtx), mode, mask, > next_select)); > if (op_mode != ((enum machine_mode) (x)->mode) || op0 != (((x)->u.fld[0]).rt_rtx)) > x = simplify_gen_unary (code, op_mode, op0, op_mode); > break; > > case NE: > > > > if ((mask & ~1) == 0 > && (((x)->u.fld[1]).rt_rtx) == (const_int_rtx[64]) > && ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode) == mode > && exact_log2 (nonzero_bits ((((x)->u.fld[0]).rt_rtx), mode)) >= 0 > && (nonzero_bits ((((x)->u.fld[0]).rt_rtx), mode) > == (unsigned long long) 1)) > return force_to_mode ((((x)->u.fld[0]).rt_rtx), mode, mask, next_select); > > break; > > case IF_THEN_ELSE: > > > > do_SUBST(&((((x)->u.fld[1]).rt_rtx)), (gen_lowpart_or_truncate (((enum machine_mode) (x)->mode), force_to_mode ((((x)->u.fld[1]).rt_rtx), mode, mask, next_select)))) > > > ; > do_SUBST(&((((x)->u.fld[2]).rt_rtx)), (gen_lowpart_or_truncate (((enum machine_mode) (x)->mode), force_to_mode ((((x)->u.fld[2]).rt_rtx), mode, mask, next_select)))) > > > ; > break; > > default: > break; > } > > > return gen_lowpart_or_truncate (mode, x); >} ># 8679 "../../gcc/combine.c" >static rtx >if_then_else_cond (rtx x, rtx *ptrue, rtx *pfalse) >{ > enum machine_mode mode = ((enum machine_mode) (x)->mode); > enum rtx_code code = ((enum rtx_code) (x)->code); > rtx cond0, cond1, true0, true1, false0, false1; > unsigned long long nz; > > > if ((code == NE || code == EQ) > && (((x)->u.fld[1]).rt_rtx) == (const_int_rtx[64])) > { > *ptrue = (code == NE) ? const_true_rtx : (const_int_rtx[64]); > *pfalse = (code == NE) ? (const_int_rtx[64]) : const_true_rtx; > return (((x)->u.fld[0]).rt_rtx); > } > > > > else if (((rtx_class[(int) (((enum rtx_code) (x)->code))]) == RTX_UNARY) > && (cond0 = if_then_else_cond ((((x)->u.fld[0]).rt_rtx), &true0, &false0)) != 0) > { > *ptrue = simplify_gen_unary (code, mode, true0, ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)); > *pfalse = simplify_gen_unary (code, mode, false0, > ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)); > return cond0; > } > > > > else if (code == COMPARE) > ; > > > > > else if ((((rtx_class[(int) (((enum rtx_code) (x)->code))]) & (~3)) == (RTX_COMPARE & (~3)))) > { > cond0 = if_then_else_cond ((((x)->u.fld[0]).rt_rtx), &true0, &false0); > cond1 = if_then_else_cond ((((x)->u.fld[1]).rt_rtx), &true1, &false1); > > if ((cond0 != 0 || cond1 != 0) > && ! (cond0 != 0 && cond1 != 0 && ! rtx_equal_p (cond0, cond1))) > { > > > > if (cond0 == 0) > true0 = copy_rtx (true0); > else if (cond1 == 0) > true1 = copy_rtx (true1); > > if ((((rtx_class[(int) (((enum rtx_code) (x)->code))]) & (~1)) == (RTX_COMPARE & (~1)))) > { > *ptrue = simplify_gen_relational (code, mode, VOIDmode, > true0, true1); > *pfalse = simplify_gen_relational (code, mode, VOIDmode, > false0, false1); > } > else > { > *ptrue = simplify_gen_binary (code, mode, true0, true1); > *pfalse = simplify_gen_binary (code, mode, false0, false1); > } > > return cond0 ? cond0 : cond1; > } > > > > > > if ((1 == 1 || 1 == -1) > && (code == PLUS || code == IOR || code == XOR || code == MINUS > || code == UMAX) > && ((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == MULT && ((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == MULT) > { > rtx op0 = ((((((x)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx); > rtx op1 = ((((((x)->u.fld[1]).rt_rtx))->u.fld[1]).rt_rtx); > > cond0 = ((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > cond1 = ((((((x)->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx); > > if ((((rtx_class[(int) (((enum rtx_code) (cond0)->code))]) & (~1)) == (RTX_COMPARE & (~1))) > && (((rtx_class[(int) (((enum rtx_code) (cond1)->code))]) & (~1)) == (RTX_COMPARE & (~1))) > && ((((enum rtx_code) (cond0)->code) == reversed_comparison_code (cond1, ((void *)0)) > && rtx_equal_p ((((cond0)->u.fld[0]).rt_rtx), (((cond1)->u.fld[0]).rt_rtx)) > && rtx_equal_p ((((cond0)->u.fld[1]).rt_rtx), (((cond1)->u.fld[1]).rt_rtx))) > || ((swap_condition (((enum rtx_code) (cond0)->code)) > == reversed_comparison_code (cond1, ((void *)0))) > && rtx_equal_p ((((cond0)->u.fld[0]).rt_rtx), (((cond1)->u.fld[1]).rt_rtx)) > && rtx_equal_p ((((cond0)->u.fld[1]).rt_rtx), (((cond1)->u.fld[0]).rt_rtx)))) > && ! side_effects_p (x)) > { > *ptrue = simplify_gen_binary (MULT, mode, op0, const_true_rtx); > *pfalse = simplify_gen_binary (MULT, mode, > (code == MINUS > ? simplify_gen_unary (NEG, mode, > op1, mode) > : op1), > const_true_rtx); > return cond0; > } > } > > > > if ((1 == 1 || 1 == -1) > && (code == MULT || code == AND || code == UMIN) > && ((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == MULT && ((enum rtx_code) ((((x)->u.fld[1]).rt_rtx))->code) == MULT) > { > cond0 = ((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > cond1 = ((((((x)->u.fld[1]).rt_rtx))->u.fld[0]).rt_rtx); > > if ((((rtx_class[(int) (((enum rtx_code) (cond0)->code))]) & (~1)) == (RTX_COMPARE & (~1))) > && (((rtx_class[(int) (((enum rtx_code) (cond1)->code))]) & (~1)) == (RTX_COMPARE & (~1))) > && ((((enum rtx_code) (cond0)->code) == reversed_comparison_code (cond1, ((void *)0)) > && rtx_equal_p ((((cond0)->u.fld[0]).rt_rtx), (((cond1)->u.fld[0]).rt_rtx)) > && rtx_equal_p ((((cond0)->u.fld[1]).rt_rtx), (((cond1)->u.fld[1]).rt_rtx))) > || ((swap_condition (((enum rtx_code) (cond0)->code)) > == reversed_comparison_code (cond1, ((void *)0))) > && rtx_equal_p ((((cond0)->u.fld[0]).rt_rtx), (((cond1)->u.fld[1]).rt_rtx)) > && rtx_equal_p ((((cond0)->u.fld[1]).rt_rtx), (((cond1)->u.fld[0]).rt_rtx)))) > && ! side_effects_p (x)) > { > *ptrue = *pfalse = (const_int_rtx[64]); > return cond0; > } > } > } > > else if (code == IF_THEN_ELSE) > { > > > cond0 = (((x)->u.fld[0]).rt_rtx); > *ptrue = (((x)->u.fld[1]).rt_rtx), *pfalse = (((x)->u.fld[2]).rt_rtx); > if (((enum rtx_code) (cond0)->code) == NE && (((cond0)->u.fld[1]).rt_rtx) == (const_int_rtx[64])) > return (((cond0)->u.fld[0]).rt_rtx); > else if (((enum rtx_code) (cond0)->code) == EQ && (((cond0)->u.fld[1]).rt_rtx) == (const_int_rtx[64])) > { > *ptrue = (((x)->u.fld[2]).rt_rtx), *pfalse = (((x)->u.fld[1]).rt_rtx); > return (((cond0)->u.fld[0]).rt_rtx); > } > else > return cond0; > } > > > > else if (code == SUBREG > && 0 != (cond0 = if_then_else_cond ((((x)->u.fld[0]).rt_rtx), > &true0, &false0))) > { > true0 = simplify_gen_subreg (mode, true0, > ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode), (((x)->u.fld[1]).rt_uint)); > false0 = simplify_gen_subreg (mode, false0, > ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode), (((x)->u.fld[1]).rt_uint)); > if (true0 && false0) > { > *ptrue = true0; > *pfalse = false0; > return cond0; > } > } > > > > else if (((rtx_class[(int) (((enum rtx_code) (x)->code))]) == RTX_CONST_OBJ) > || ((cond0 = get_last_value (x)) != 0 && ((rtx_class[(int) (((enum rtx_code) (cond0)->code))]) == RTX_CONST_OBJ))) > ; > > > > else if (mode == BImode) > { > *ptrue = gen_rtx_CONST_INT (VOIDmode, (1)), *pfalse = (const_int_rtx[64]); > return x; > } > > > > else if (x == (const_int_rtx[64 -1]) || x == (const_int_rtx[64]) > || (mode != VOIDmode > && num_sign_bit_copies (x, mode) == mode_precision[mode])) > { > *ptrue = (const_int_rtx[64 -1]), *pfalse = (const_int_rtx[64]); > return x; > } > > > else if (((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) && mode_precision[mode] <= (8 * 8)) > && exact_log2 (nz = nonzero_bits (x, mode)) >= 0) > { > *ptrue = gen_int_mode (nz, mode), *pfalse = (const_int_rtx[64]); > return x; > } > > > *ptrue = *pfalse = x; > return 0; >} ># 8890 "../../gcc/combine.c" >static rtx >known_cond (rtx x, enum rtx_code cond, rtx reg, rtx val) >{ > enum rtx_code code = ((enum rtx_code) (x)->code); > rtx temp; > const char *fmt; > int i, j; > > if (side_effects_p (x)) > return x; > > > > if (cond == EQ > && rtx_equal_p (x, reg) > && ! (((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_DECIMAL_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_COMPLEX_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_VECTOR_FLOAT) > && ! (((enum mode_class) mode_class[((enum machine_mode) (val)->mode)]) == MODE_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) (val)->mode)]) == MODE_DECIMAL_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) (val)->mode)]) == MODE_COMPLEX_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) (val)->mode)]) == MODE_VECTOR_FLOAT)) > return val; > > if (cond == UNEQ && rtx_equal_p (x, reg)) > return val; > > > > > if (code == ABS && rtx_equal_p ((((x)->u.fld[0]).rt_rtx), reg) && val == (const_int_rtx[64])) > switch (cond) > { > case GE: case GT: case EQ: > return (((x)->u.fld[0]).rt_rtx); > case LT: case LE: > return simplify_gen_unary (NEG, ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode), > (((x)->u.fld[0]).rt_rtx), > ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode)); > default: > break; > } > > > > > else if ((((rtx_class[(int) (((enum rtx_code) (x)->code))]) & (~1)) == (RTX_COMPARE & (~1))) || ((rtx_class[(int) (((enum rtx_code) (x)->code))]) == RTX_COMM_ARITH)) > { > if (rtx_equal_p ((((x)->u.fld[0]).rt_rtx), val)) > cond = swap_condition (cond), temp = val, val = reg, reg = temp; > > if (rtx_equal_p ((((x)->u.fld[0]).rt_rtx), reg) && rtx_equal_p ((((x)->u.fld[1]).rt_rtx), val)) > { > if ((((rtx_class[(int) (((enum rtx_code) (x)->code))]) & (~1)) == (RTX_COMPARE & (~1)))) > { > if (comparison_dominates_p (cond, code)) > return const_true_rtx; > > code = reversed_comparison_code (x, ((void *)0)); > if (code != UNKNOWN > && comparison_dominates_p (cond, code)) > return (const_int_rtx[64]); > else > return x; > } > else if (code == SMAX || code == SMIN > || code == UMIN || code == UMAX) > { > int unsignedp = (code == UMIN || code == UMAX); > > > > > > if ((code == SMAX || code == UMAX) > && ! (cond == EQ || cond == NE)) > cond = reverse_condition (cond); > > switch (cond) > { > case GE: case GT: > return unsignedp ? x : (((x)->u.fld[1]).rt_rtx); > case LE: case LT: > return unsignedp ? x : (((x)->u.fld[0]).rt_rtx); > case GEU: case GTU: > return unsignedp ? (((x)->u.fld[1]).rt_rtx) : x; > case LEU: case LTU: > return unsignedp ? (((x)->u.fld[0]).rt_rtx) : x; > default: > break; > } > } > } > } > else if (code == SUBREG) > { > enum machine_mode inner_mode = ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode); > rtx new_rtx, r = known_cond ((((x)->u.fld[0]).rt_rtx), cond, reg, val); > > if ((((x)->u.fld[0]).rt_rtx) != r) > { > > > new_rtx = simplify_subreg (((enum machine_mode) (x)->mode), r, > inner_mode, (((x)->u.fld[1]).rt_uint)); > if (new_rtx) > return new_rtx; > else > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), (r)); > } > > return x; > } > > > > > > > else if (code == ZERO_EXTEND) > { > enum machine_mode inner_mode = ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode); > rtx new_rtx, r = known_cond ((((x)->u.fld[0]).rt_rtx), cond, reg, val); > > if ((((x)->u.fld[0]).rt_rtx) != r) > { > > > new_rtx = simplify_unary_operation (ZERO_EXTEND, ((enum machine_mode) (x)->mode), > r, inner_mode); > if (new_rtx) > return new_rtx; > else > do_SUBST(&((((x)->u.fld[0]).rt_rtx)), (r)); > } > > return x; > } > > fmt = (rtx_format[(int) (code)]); > for (i = (rtx_length[(int) (code)]) - 1; i >= 0; i--) > { > if (fmt[i] == 'e') > do_SUBST(&((((x)->u.fld[i]).rt_rtx)), (known_cond ((((x)->u.fld[i]).rt_rtx), cond, reg, val))); > else if (fmt[i] == 'E') > for (j = (((((x)->u.fld[i]).rt_rtvec))->num_elem) - 1; j >= 0; j--) > do_SUBST(&((((((x)->u.fld[i]).rt_rtvec))->elem[j])), (known_cond ((((((x)->u.fld[i]).rt_rtvec))->elem[j]), cond, reg, val))) > ; > } > > return x; >} > > > > >static int >rtx_equal_for_field_assignment_p (rtx x, rtx y) >{ > if (x == y || rtx_equal_p (x, y)) > return 1; > > if (x == 0 || y == 0 || ((enum machine_mode) (x)->mode) != ((enum machine_mode) (y)->mode)) > return 0; > > > > > if ((((enum rtx_code) (x)->code) == MEM) && ((enum rtx_code) (y)->code) == SUBREG > && (((enum rtx_code) ((((y)->u.fld[0]).rt_rtx))->code) == MEM) > && rtx_equal_p ((((y)->u.fld[0]).rt_rtx), > rtl_hooks.gen_lowpart (((enum machine_mode) ((((y)->u.fld[0]).rt_rtx))->mode), x))) > return 1; > > if ((((enum rtx_code) (y)->code) == MEM) && ((enum rtx_code) (x)->code) == SUBREG > && (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == MEM) > && rtx_equal_p ((((x)->u.fld[0]).rt_rtx), > rtl_hooks.gen_lowpart (((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode), y))) > return 1; > > > > > > > return 0; >} > > > > > > >static rtx >make_field_assignment (rtx x) >{ > rtx dest = (((x)->u.fld[0]).rt_rtx); > rtx src = (((x)->u.fld[1]).rt_rtx); > rtx assign; > rtx rhs, lhs; > long long c1; > long long pos; > unsigned long long len; > rtx other; > enum machine_mode mode; > > > > > > > if (((enum rtx_code) (src)->code) == AND && ((enum rtx_code) ((((src)->u.fld[0]).rt_rtx))->code) == ROTATE > && (((enum rtx_code) (((((((src)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code) == CONST_INT) > && ((((((((src)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->u.hwint[0]) == -2 > && rtx_equal_for_field_assignment_p (dest, (((src)->u.fld[1]).rt_rtx))) > { > assign = make_extraction (VOIDmode, dest, 0, ((((((src)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx), > 1, 1, 1, 0); > if (assign != 0) > return gen_rtx_fmt_ee_stat (SET, (VOIDmode), (assign), ((const_int_rtx[64])) ); > return x; > } > > if (((enum rtx_code) (src)->code) == AND && ((enum rtx_code) ((((src)->u.fld[0]).rt_rtx))->code) == SUBREG > && subreg_lowpart_p ((((src)->u.fld[0]).rt_rtx)) > && (((unsigned short) mode_size[((enum machine_mode) ((((src)->u.fld[0]).rt_rtx))->mode)]) > < ((unsigned short) mode_size[((enum machine_mode) (((((((src)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode)])) > && ((enum rtx_code) (((((((src)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code) == ROTATE > && (((enum rtx_code) ((((((((((src)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code) == CONST_INT) > && (((((((((((src)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->u.hwint[0]) == -2 > && rtx_equal_for_field_assignment_p (dest, (((src)->u.fld[1]).rt_rtx))) > { > assign = make_extraction (VOIDmode, dest, 0, > (((((((((src)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx), > 1, 1, 1, 0); > if (assign != 0) > return gen_rtx_fmt_ee_stat (SET, (VOIDmode), (assign), ((const_int_rtx[64])) ); > return x; > } > > > > if (((enum rtx_code) (src)->code) == IOR && ((enum rtx_code) ((((src)->u.fld[0]).rt_rtx))->code) == ASHIFT > && ((((((src)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx) == (const_int_rtx[64 +1]) > && rtx_equal_for_field_assignment_p (dest, (((src)->u.fld[1]).rt_rtx))) > { > assign = make_extraction (VOIDmode, dest, 0, ((((((src)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx), > 1, 1, 1, 0); > if (assign != 0) > return gen_rtx_fmt_ee_stat (SET, (VOIDmode), (assign), ((const_int_rtx[64 +1])) ); > return x; > } > > > > > if (((enum rtx_code) (dest)->code) == ZERO_EXTRACT > && (((enum rtx_code) ((((dest)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && ((enum rtx_code) (src)->code) == AND > && (((enum rtx_code) ((((src)->u.fld[1]).rt_rtx))->code) == CONST_INT)) > { > long long width = (((((dest)->u.fld[1]).rt_rtx))->u.hwint[0]); > unsigned long long and_mask = (((((src)->u.fld[1]).rt_rtx))->u.hwint[0]); > unsigned long long ze_mask; > > if (width >= (8 * 8)) > ze_mask = -1; > else > ze_mask = ((unsigned long long)1 << width) - 1; > > > if ((and_mask & ze_mask) == ze_mask) > return gen_rtx_fmt_ee_stat (SET, (VOIDmode), (dest), ((((src)->u.fld[0]).rt_rtx)) ); > > > if ((and_mask & ze_mask) != and_mask) > { > mode = ((enum machine_mode) (src)->mode); > src = gen_rtx_fmt_ee_stat (AND, (mode), ((((src)->u.fld[0]).rt_rtx)), (gen_int_mode (and_mask & ze_mask, mode)) ) > ; > return gen_rtx_fmt_ee_stat (SET, (VOIDmode), (dest), (src) ); > } > } ># 9177 "../../gcc/combine.c" > if (((enum rtx_code) (src)->code) != IOR && ((enum rtx_code) (src)->code) != XOR) > return x; > > rhs = expand_compound_operation ((((src)->u.fld[0]).rt_rtx)); > lhs = expand_compound_operation ((((src)->u.fld[1]).rt_rtx)); > > if (((enum rtx_code) (rhs)->code) == AND > && (((enum rtx_code) ((((rhs)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && rtx_equal_for_field_assignment_p ((((rhs)->u.fld[0]).rt_rtx), dest)) > c1 = (((((rhs)->u.fld[1]).rt_rtx))->u.hwint[0]), other = lhs; > else if (((enum rtx_code) (lhs)->code) == AND > && (((enum rtx_code) ((((lhs)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && rtx_equal_for_field_assignment_p ((((lhs)->u.fld[0]).rt_rtx), dest)) > c1 = (((((lhs)->u.fld[1]).rt_rtx))->u.hwint[0]), other = rhs; > else > return x; > > pos = get_pos_from_mask ((~c1) & mode_mask_array[((enum machine_mode) (dest)->mode)], &len); > if (pos < 0 || pos + len > mode_precision[((enum machine_mode) (dest)->mode)] > || mode_precision[((enum machine_mode) (dest)->mode)] > (8 * 8) > || (c1 & nonzero_bits (other, ((enum machine_mode) (dest)->mode))) != 0) > return x; > > assign = make_extraction (VOIDmode, dest, pos, (rtx) 0, len, 1, 1, 0); > if (assign == 0) > return x; > > > > mode = (((enum rtx_code) (assign)->code) == STRICT_LOW_PART > ? ((enum machine_mode) ((((assign)->u.fld[0]).rt_rtx))->mode) : ((enum machine_mode) (assign)->mode)); > > > > > src = canon_reg_for_combine (simplify_shift_const ((rtx) 0, LSHIFTRT, > ((enum machine_mode) (src)->mode), > other, pos), > dest); > src = force_to_mode (src, mode, > mode_precision[mode] >= (8 * 8) > ? ~(unsigned long long) 0 > : ((unsigned long long) 1 << len) - 1, > 0); > > > > if (((enum rtx_code) (assign)->code) == ZERO_EXTRACT > && (((enum rtx_code) ((((assign)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((((assign)->u.fld[1]).rt_rtx))->u.hwint[0]) < (8 * 8) > && ((enum rtx_code) (src)->code) == AND > && (((enum rtx_code) ((((src)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && ((unsigned long long) (((((src)->u.fld[1]).rt_rtx))->u.hwint[0])) > == ((unsigned long long) 1 << (((((assign)->u.fld[1]).rt_rtx))->u.hwint[0])) - 1) > src = (((src)->u.fld[0]).rt_rtx); > > return gen_rtx_fmt_ee_stat (SET, (VOIDmode), (assign), (src) ); >} > > > > >static rtx >apply_distributive_law (rtx x) >{ > enum rtx_code code = ((enum rtx_code) (x)->code); > enum rtx_code inner_code; > rtx lhs, rhs, other; > rtx tem; > > > > if ((((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_DECIMAL_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_COMPLEX_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_VECTOR_FLOAT) > && ! global_options.x_flag_unsafe_math_optimizations) > return x; > > > if (code != IOR && code != AND && code != XOR > && code != PLUS && code != MINUS) > return x; > > lhs = (((x)->u.fld[0]).rt_rtx); > rhs = (((x)->u.fld[1]).rt_rtx); > > > > if ((((rtx_class[(int) (((enum rtx_code) (lhs)->code))]) & (~1)) == (RTX_OBJ & (~1))) || (((rtx_class[(int) (((enum rtx_code) (rhs)->code))]) & (~1)) == (RTX_OBJ & (~1)))) > return x; > > lhs = expand_compound_operation (lhs); > rhs = expand_compound_operation (rhs); > inner_code = ((enum rtx_code) (lhs)->code); > if (inner_code != ((enum rtx_code) (rhs)->code)) > return x; > > > switch (inner_code) > { > case LSHIFTRT: > case ASHIFTRT: > case AND: > case IOR: > > if (code == PLUS || code == MINUS) > return x; > break; > > case MULT: > if (code != PLUS && code != MINUS) > return x; > break; > > case ASHIFT: > > break; > > case SUBREG: ># 9306 "../../gcc/combine.c" > if (((enum machine_mode) ((((lhs)->u.fld[0]).rt_rtx))->mode) != ((enum machine_mode) ((((rhs)->u.fld[0]).rt_rtx))->mode) > || (((lhs)->u.fld[1]).rt_uint) != (((rhs)->u.fld[1]).rt_uint) > || ! subreg_lowpart_p (lhs) > || (((enum mode_class) mode_class[((enum machine_mode) (lhs)->mode)]) > != ((enum mode_class) mode_class[((enum machine_mode) ((((lhs)->u.fld[0]).rt_rtx))->mode)])) > || paradoxical_subreg_p (lhs) > || (((enum mode_class) mode_class[((enum machine_mode) (lhs)->mode)]) == MODE_VECTOR_INT || ((enum mode_class) mode_class[((enum machine_mode) (lhs)->mode)]) == MODE_VECTOR_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) (lhs)->mode)]) == MODE_VECTOR_FRACT || ((enum mode_class) mode_class[((enum machine_mode) (lhs)->mode)]) == MODE_VECTOR_UFRACT || ((enum mode_class) mode_class[((enum machine_mode) (lhs)->mode)]) == MODE_VECTOR_ACCUM || ((enum mode_class) mode_class[((enum machine_mode) (lhs)->mode)]) == MODE_VECTOR_UACCUM) > || ((unsigned short) mode_size[((enum machine_mode) ((((lhs)->u.fld[0]).rt_rtx))->mode)]) > (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8) > > > || !1 > ) > return x; > > tem = simplify_gen_binary (code, ((enum machine_mode) ((((lhs)->u.fld[0]).rt_rtx))->mode), > (((lhs)->u.fld[0]).rt_rtx), (((rhs)->u.fld[0]).rt_rtx)); > return rtl_hooks.gen_lowpart (((enum machine_mode) (x)->mode), tem); > > default: > return x; > } > > > > > > if (((rtx_class[(int) (((enum rtx_code) (lhs)->code))]) == RTX_COMM_ARITH) > && rtx_equal_p ((((lhs)->u.fld[0]).rt_rtx), (((rhs)->u.fld[0]).rt_rtx))) > other = (((lhs)->u.fld[0]).rt_rtx), lhs = (((lhs)->u.fld[1]).rt_rtx), rhs = (((rhs)->u.fld[1]).rt_rtx); > else if (((rtx_class[(int) (((enum rtx_code) (lhs)->code))]) == RTX_COMM_ARITH) > && rtx_equal_p ((((lhs)->u.fld[0]).rt_rtx), (((rhs)->u.fld[1]).rt_rtx))) > other = (((lhs)->u.fld[0]).rt_rtx), lhs = (((lhs)->u.fld[1]).rt_rtx), rhs = (((rhs)->u.fld[0]).rt_rtx); > else if (((rtx_class[(int) (((enum rtx_code) (lhs)->code))]) == RTX_COMM_ARITH) > && rtx_equal_p ((((lhs)->u.fld[1]).rt_rtx), (((rhs)->u.fld[0]).rt_rtx))) > other = (((lhs)->u.fld[1]).rt_rtx), lhs = (((lhs)->u.fld[0]).rt_rtx), rhs = (((rhs)->u.fld[1]).rt_rtx); > else if (rtx_equal_p ((((lhs)->u.fld[1]).rt_rtx), (((rhs)->u.fld[1]).rt_rtx))) > other = (((lhs)->u.fld[1]).rt_rtx), lhs = (((lhs)->u.fld[0]).rt_rtx), rhs = (((rhs)->u.fld[0]).rt_rtx); > else > return x; > > > tem = simplify_gen_binary (code, ((enum machine_mode) (x)->mode), lhs, rhs); > > > > if (code == XOR && inner_code == IOR) > { > inner_code = AND; > other = simplify_gen_unary (NOT, ((enum machine_mode) (x)->mode), other, ((enum machine_mode) (x)->mode)); > } > > > > > return simplify_gen_binary (inner_code, ((enum machine_mode) (x)->mode), > apply_distributive_law (tem), other); >} ># 9383 "../../gcc/combine.c" >static rtx >distribute_and_simplify_rtx (rtx x, int n) >{ > enum machine_mode mode; > enum rtx_code outer_code, inner_code; > rtx decomposed, distributed, inner_op0, inner_op1, new_op0, new_op1, tmp; > > > > if ((((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_DECIMAL_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_COMPLEX_FLOAT || ((enum mode_class) mode_class[((enum machine_mode) (x)->mode)]) == MODE_VECTOR_FLOAT) > && ! global_options.x_flag_unsafe_math_optimizations) > return (rtx) 0; > > decomposed = (((x)->u.fld[n]).rt_rtx); > if (!(((rtx_class[(int) (((enum rtx_code) (decomposed)->code))]) & (~1)) == (RTX_COMM_ARITH & (~1)))) > return (rtx) 0; > > mode = ((enum machine_mode) (x)->mode); > outer_code = ((enum rtx_code) (x)->code); > distributed = (((x)->u.fld[!n]).rt_rtx); > > inner_code = ((enum rtx_code) (decomposed)->code); > inner_op0 = (((decomposed)->u.fld[0]).rt_rtx); > inner_op1 = (((decomposed)->u.fld[1]).rt_rtx); > > > > if (outer_code == AND && inner_code == XOR && ((enum rtx_code) (distributed)->code) == NOT) > { > distributed = (((distributed)->u.fld[0]).rt_rtx); > outer_code = IOR; > } > > if (n == 0) > { > > new_op0 = simplify_gen_binary (outer_code, mode, inner_op0, distributed); > new_op1 = simplify_gen_binary (outer_code, mode, inner_op1, distributed); > } > else > { > > new_op0 = simplify_gen_binary (outer_code, mode, distributed, inner_op0); > new_op1 = simplify_gen_binary (outer_code, mode, distributed, inner_op1); > } > > tmp = apply_distributive_law (simplify_gen_binary (inner_code, mode, > new_op0, new_op1)); > if (((enum rtx_code) (tmp)->code) != outer_code > && (set_src_cost (tmp, optimize_this_for_speed_p) > < set_src_cost (x, optimize_this_for_speed_p))) > return tmp; > > return (rtx) 0; >} > > > > > >static rtx >simplify_and_const_int_1 (enum machine_mode mode, rtx varop, > unsigned long long constop) >{ > unsigned long long nonzero; > unsigned long long orig_constop; > rtx orig_varop; > int i; > > orig_varop = varop; > orig_constop = constop; > if (((enum rtx_code) (varop)->code) == CLOBBER) > return (rtx) 0; ># 9464 "../../gcc/combine.c" > varop = force_to_mode (varop, mode, constop, 0); > > > if (((enum rtx_code) (varop)->code) == CLOBBER) > return varop; > > > > if ((((enum rtx_code) (varop)->code) == CONST_INT)) > return gen_int_mode (((varop)->u.hwint[0]) & constop, mode); > > > > > > nonzero = nonzero_bits (varop, mode) & mode_mask_array[mode]; > > > > > > constop &= nonzero; > > > if (constop == 0) > return (const_int_rtx[64]); > > > > if (((enum rtx_code) (varop)->code) == NEG && nonzero_bits ((((varop)->u.fld[0]).rt_rtx), mode) == 1 > && (i = exact_log2 (constop)) >= 0) > return simplify_shift_const ((rtx) 0, ASHIFT, mode, (((varop)->u.fld[0]).rt_rtx), i); > > > > > > > > if (((enum rtx_code) (varop)->code) == IOR || ((enum rtx_code) (varop)->code) == XOR) > return > rtl_hooks.gen_lowpart > (mode, > apply_distributive_law > (simplify_gen_binary (((enum rtx_code) (varop)->code), ((enum machine_mode) (varop)->mode), > simplify_and_const_int ((rtx) 0, > ((enum machine_mode) (varop)->mode), > (((varop)->u.fld[0]).rt_rtx), > constop), > simplify_and_const_int ((rtx) 0, > ((enum machine_mode) (varop)->mode), > (((varop)->u.fld[1]).rt_rtx), > constop)))); > > > > > > if (((enum rtx_code) (varop)->code) == PLUS > && exact_log2 (constop + 1) >= 0) > { > rtx o0, o1; > > o0 = simplify_and_const_int ((rtx) 0, mode, (((varop)->u.fld[0]).rt_rtx), constop); > o1 = simplify_and_const_int ((rtx) 0, mode, (((varop)->u.fld[1]).rt_rtx), constop); > if (o0 == (const_int_rtx[64])) > return o1; > if (o1 == (const_int_rtx[64])) > return o0; > } > > > varop = rtl_hooks.gen_lowpart (mode, varop); > if (varop == (rtx) 0 || ((enum rtx_code) (varop)->code) == CLOBBER) > return (rtx) 0; > > > if (constop == nonzero) > return varop; > > if (varop == orig_varop && constop == orig_constop) > return (rtx) 0; > > > return simplify_gen_binary (AND, mode, varop, gen_int_mode (constop, mode)); >} ># 9558 "../../gcc/combine.c" >static rtx >simplify_and_const_int (rtx x, enum machine_mode mode, rtx varop, > unsigned long long constop) >{ > rtx tem = simplify_and_const_int_1 (mode, varop, constop); > if (tem) > return tem; > > if (!x) > x = simplify_gen_binary (AND, ((enum machine_mode) (varop)->mode), varop, > gen_int_mode (constop, mode)); > if (((enum machine_mode) (x)->mode) != mode) > x = rtl_hooks.gen_lowpart (mode, x); > return x; >} > > > > > > > >static rtx >reg_nonzero_bits_for_combine (const_rtx x, enum machine_mode mode, > const_rtx known_x __attribute__ ((__unused__)), > enum machine_mode known_mode __attribute__ ((__unused__)), > unsigned long long known_ret __attribute__ ((__unused__)), > unsigned long long *nonzero) >{ > rtx tem; > reg_stat_type *rsp; > > > > > > > rsp = (VEC_reg_stat_type_base_index(((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),(rhs_regno(x)) )); > if (rsp->last_set_value != 0 > && (rsp->last_set_mode == mode > || (((enum mode_class) mode_class[rsp->last_set_mode]) == MODE_INT > && ((enum mode_class) mode_class[mode]) == MODE_INT)) > && ((rsp->last_set_label >= label_tick_ebb_start > && rsp->last_set_label < label_tick) > || (rsp->last_set_label == label_tick > && ((((df->insns[((((rsp->last_set)->u.fld[0]).rt_int))]))->luid)) < subst_low_luid) > || ((rhs_regno(x)) >= 114 > && REG_N_SETS ((rhs_regno(x))) == 1 > && !bitmap_bit_p ((&(df_lr_get_bb_info((((cfun + 0)->cfg->x_entry_block_ptr)->next_bb)->index))->in), (rhs_regno(x))) > ))) > { > *nonzero &= rsp->last_set_nonzero_bits; > return ((void *)0); > } > > tem = get_last_value (x); > > if (tem) > { ># 9627 "../../gcc/combine.c" > if (mode_precision[((enum machine_mode) (x)->mode)] < mode_precision[mode] > && (((enum rtx_code) (tem)->code) == CONST_INT) > && ((tem)->u.hwint[0]) > 0 > && val_signbit_known_set_p (((enum machine_mode) (x)->mode), ((tem)->u.hwint[0]))) > tem = gen_rtx_CONST_INT (VOIDmode, (((tem)->u.hwint[0]) | ~mode_mask_array[((enum machine_mode) (x)->mode)])); > > return tem; > } > else if (nonzero_sign_valid && rsp->nonzero_bits) > { > unsigned long long mask = rsp->nonzero_bits; > > if (mode_precision[((enum machine_mode) (x)->mode)] < mode_precision[mode]) > > mask |= mode_mask_array[mode] ^ mode_mask_array[((enum machine_mode) (x)->mode)]; > *nonzero &= mask; > } > > return ((void *)0); >} > > > > > > >static rtx >reg_num_sign_bit_copies_for_combine (const_rtx x, enum machine_mode mode, > const_rtx known_x __attribute__ ((__unused__)), > enum machine_mode known_mode > __attribute__ ((__unused__)), > unsigned int known_ret __attribute__ ((__unused__)), > unsigned int *result) >{ > rtx tem; > reg_stat_type *rsp; > > rsp = (VEC_reg_stat_type_base_index(((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),(rhs_regno(x)) )); > if (rsp->last_set_value != 0 > && rsp->last_set_mode == mode > && ((rsp->last_set_label >= label_tick_ebb_start > && rsp->last_set_label < label_tick) > || (rsp->last_set_label == label_tick > && ((((df->insns[((((rsp->last_set)->u.fld[0]).rt_int))]))->luid)) < subst_low_luid) > || ((rhs_regno(x)) >= 114 > && REG_N_SETS ((rhs_regno(x))) == 1 > && !bitmap_bit_p ((&(df_lr_get_bb_info((((cfun + 0)->cfg->x_entry_block_ptr)->next_bb)->index))->in), (rhs_regno(x))) > ))) > { > *result = rsp->last_set_sign_bit_copies; > return ((void *)0); > } > > tem = get_last_value (x); > if (tem != 0) > return tem; > > if (nonzero_sign_valid && rsp->sign_bit_copies != 0 > && mode_precision[((enum machine_mode) (x)->mode)] == mode_precision[mode]) > *result = rsp->sign_bit_copies; > > return ((void *)0); >} ># 9702 "../../gcc/combine.c" >unsigned int >extended_count (const_rtx x, enum machine_mode mode, int unsignedp) >{ > if (nonzero_sign_valid == 0) > return 0; > > return (unsignedp > ? (((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) && mode_precision[mode] <= (8 * 8)) > ? (unsigned int) (mode_precision[mode] - 1 > - floor_log2 (nonzero_bits (x, mode))) > : 0) > : num_sign_bit_copies (x, mode) - 1); >} ># 9737 "../../gcc/combine.c" >static int >merge_outer_ops (enum rtx_code *pop0, long long *pconst0, enum rtx_code op1, long long const1, enum machine_mode mode, int *pcomp_p) >{ > enum rtx_code op0 = *pop0; > long long const0 = *pconst0; > > const0 &= mode_mask_array[mode]; > const1 &= mode_mask_array[mode]; > > > if (op0 == AND) > const1 &= const0; > > > > > if (op1 == UNKNOWN || op0 == SET) > return 1; > > else if (op0 == UNKNOWN) > op0 = op1, const0 = const1; > > else if (op0 == op1) > { > switch (op0) > { > case AND: > const0 &= const1; > break; > case IOR: > const0 |= const1; > break; > case XOR: > const0 ^= const1; > break; > case PLUS: > const0 += const1; > break; > case NEG: > op0 = UNKNOWN; > break; > default: > break; > } > } > > > else if (op0 == PLUS || op1 == PLUS || op0 == NEG || op1 == NEG) > return 0; > > > > else if (const0 != const1) > return 0; > > else > switch (op0) > { > case IOR: > if (op1 == AND) > > op0 = SET; > else > > {;} > break; > > case XOR: > if (op1 == AND) > > op0 = AND, *pcomp_p = 1; > else > > op0 = AND, const0 = ~const0; > break; > > case AND: > if (op1 == IOR) > > op0 = SET; > else > > *pcomp_p = 1; > break; > default: > break; > } > > > const0 &= mode_mask_array[mode]; > if (const0 == 0 > && (op0 == IOR || op0 == XOR || op0 == PLUS)) > op0 = UNKNOWN; > else if (const0 == 0 && op0 == AND) > op0 = SET; > else if ((unsigned long long) const0 == mode_mask_array[mode] > && op0 == AND) > op0 = UNKNOWN; > > *pop0 = op0; > > > > > if (op0 != UNKNOWN && op0 != NEG) > *pconst0 = trunc_int_for_mode (const0, mode); > > return 1; >} ># 9854 "../../gcc/combine.c" >static enum machine_mode >try_widen_shift_mode (enum rtx_code code, rtx op, int count, > enum machine_mode orig_mode, enum machine_mode mode, > enum rtx_code outer_code, long long outer_const) >{ > if (orig_mode == mode) > return mode; > ((void)(!(mode_precision[mode] > mode_precision[orig_mode]) ? fancy_abort ("../../gcc/combine.c", 9861, __FUNCTION__), 0 : 0)); > > > switch (code) > { > case ASHIFTRT: > > > if (num_sign_bit_copies (op, mode) > > (unsigned) (mode_precision[mode] > - mode_precision[orig_mode])) > return mode; > return orig_mode; > > case LSHIFTRT: > > if (((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) && mode_precision[mode] <= (8 * 8)) > && (nonzero_bits (op, mode) & ~mode_mask_array[orig_mode]) == 0) > return mode; > > > > if (outer_code == AND) > { > int care_bits = low_bitmask_len (orig_mode, outer_const); > > if (care_bits >= 0 > && mode_precision[orig_mode] - care_bits >= count) > return mode; > } > > > case ROTATE: > return orig_mode; > > case ROTATERT: > (fancy_abort ("../../gcc/combine.c", 9897, __FUNCTION__)); > > default: > return mode; > } >} ># 9912 "../../gcc/combine.c" >static rtx >simplify_shift_const_1 (enum rtx_code code, enum machine_mode result_mode, > rtx varop, int orig_count) >{ > enum rtx_code orig_code = code; > rtx orig_varop = varop; > int count; > enum machine_mode mode = result_mode; > enum machine_mode shift_mode, tmode; > unsigned int mode_words > = (((unsigned short) mode_size[mode]) + ((! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8) - 1)) / (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8); > > enum rtx_code outer_op = UNKNOWN; > long long outer_const = 0; > int complement_p = 0; > rtx new_rtx, x; > > > > > if ((0 ? 1 : 0)) > orig_count &= ((unsigned short) (((unsigned short) mode_size[mode]) * 8)) - 1; > > > > > if (orig_count < 0 || orig_count >= (int) mode_precision[mode]) > return (rtx) 0; > > count = orig_count; > > > > > while (count != 0) > { > > if (((enum rtx_code) (varop)->code) == CLOBBER) > return (rtx) 0; > > > if (code == ROTATERT) > { > unsigned int bitsize = mode_precision[result_mode]; > code = ROTATE; > if ((((enum mode_class) mode_class[result_mode]) == MODE_VECTOR_INT || ((enum mode_class) mode_class[result_mode]) == MODE_VECTOR_FLOAT || ((enum mode_class) mode_class[result_mode]) == MODE_VECTOR_FRACT || ((enum mode_class) mode_class[result_mode]) == MODE_VECTOR_UFRACT || ((enum mode_class) mode_class[result_mode]) == MODE_VECTOR_ACCUM || ((enum mode_class) mode_class[result_mode]) == MODE_VECTOR_UACCUM)) > count = bitsize / mode_nunits[result_mode] - count; > else > count = bitsize - count; > } > > shift_mode = try_widen_shift_mode (code, varop, count, result_mode, > mode, outer_op, outer_const); ># 9976 "../../gcc/combine.c" > if (count > (mode_precision[shift_mode] - 1)) > { > if (code == ASHIFTRT) > count = mode_precision[shift_mode] - 1; > else if (code == ROTATE || code == ROTATERT) > count %= mode_precision[shift_mode]; > else > { > > > varop = (const_int_rtx[64]); > count = 0; > break; > } > } > > > > if (complement_p) > break; > > > > if (code == ASHIFTRT > && (num_sign_bit_copies (varop, shift_mode) > == mode_precision[shift_mode])) > { > count = 0; > break; > } > > > > > > > if (code == ASHIFTRT > && (count + num_sign_bit_copies (varop, shift_mode) > >= mode_precision[shift_mode])) > count = mode_precision[shift_mode] - 1; > > > > > > if (code == ASHIFTRT > && val_signbit_known_clear_p (shift_mode, > nonzero_bits (varop, shift_mode))) > code = LSHIFTRT; > > if (((code == LSHIFTRT > && ((((enum mode_class) mode_class[shift_mode]) == MODE_INT || ((enum mode_class) mode_class[shift_mode]) == MODE_PARTIAL_INT) && mode_precision[shift_mode] <= (8 * 8)) > && !(nonzero_bits (varop, shift_mode) >> count)) > || (code == ASHIFT > && ((((enum mode_class) mode_class[shift_mode]) == MODE_INT || ((enum mode_class) mode_class[shift_mode]) == MODE_PARTIAL_INT) && mode_precision[shift_mode] <= (8 * 8)) > && !((nonzero_bits (varop, shift_mode) << count) > & mode_mask_array[shift_mode]))) > && !side_effects_p (varop)) > varop = (const_int_rtx[64]); > > switch (((enum rtx_code) (varop)->code)) > { > case SIGN_EXTEND: > case ZERO_EXTEND: > case SIGN_EXTRACT: > case ZERO_EXTRACT: > new_rtx = expand_compound_operation (varop); > if (new_rtx != varop) > { > varop = new_rtx; > continue; > } > break; > > case MEM: > > > > if ((code == ASHIFTRT || code == LSHIFTRT) > && ! mode_dependent_address_p ((((varop)->u.fld[0]).rt_rtx)) > && ! (((varop))->volatil) > && (tmode = mode_for_size (((unsigned short) (((unsigned short) mode_size[mode]) * 8)) - count, > MODE_INT, 1)) != BLKmode) > { > new_rtx = adjust_address_1 (varop, tmode, ((! ((global_options.x_target_flags & (1 << 8)) != 0))) ? 0 : count / 8, 0, 1) > > ; > > varop = gen_rtx_fmt_e_stat (code == ASHIFTRT ? SIGN_EXTEND : ZERO_EXTEND, mode, new_rtx ) > ; > count = 0; > continue; > } > break; > > case SUBREG: > > > > if (subreg_lowpart_p (varop) > && (((unsigned short) mode_size[((enum machine_mode) ((((varop)->u.fld[0]).rt_rtx))->mode)]) > > ((unsigned short) mode_size[((enum machine_mode) (varop)->mode)])) > && (unsigned int) ((((unsigned short) mode_size[((enum machine_mode) ((((varop)->u.fld[0]).rt_rtx))->mode)]) > + ((! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8) - 1)) / (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)) > == mode_words > && ((enum mode_class) mode_class[((enum machine_mode) (varop)->mode)]) == MODE_INT > && ((enum mode_class) mode_class[((enum machine_mode) ((((varop)->u.fld[0]).rt_rtx))->mode)]) == MODE_INT) > { > varop = (((varop)->u.fld[0]).rt_rtx); > if (((unsigned short) mode_size[((enum machine_mode) (varop)->mode)]) > ((unsigned short) mode_size[mode])) > mode = ((enum machine_mode) (varop)->mode); > continue; > } > break; > > case MULT: > > > > if ((((enum rtx_code) ((((varop)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && exact_log2 (((unsigned long long) (((((varop)->u.fld[1]).rt_rtx))->u.hwint[0]))) >= 0) > { > varop > = simplify_gen_binary (ASHIFT, ((enum machine_mode) (varop)->mode), > (((varop)->u.fld[0]).rt_rtx), > gen_rtx_CONST_INT (VOIDmode, (exact_log2 ( ((unsigned long long) (((((varop)->u.fld[1]).rt_rtx))->u.hwint[0]))))) > ); > continue; > } > break; > > case UDIV: > > if ((((enum rtx_code) ((((varop)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && exact_log2 (((unsigned long long) (((((varop)->u.fld[1]).rt_rtx))->u.hwint[0]))) >= 0) > { > varop > = simplify_gen_binary (LSHIFTRT, ((enum machine_mode) (varop)->mode), > (((varop)->u.fld[0]).rt_rtx), > gen_rtx_CONST_INT (VOIDmode, (exact_log2 ( ((unsigned long long) (((((varop)->u.fld[1]).rt_rtx))->u.hwint[0]))))) > ); > continue; > } > break; > > case ASHIFTRT: > > > > > > if (code == LSHIFTRT > && count == (((unsigned short) (((unsigned short) mode_size[result_mode]) * 8)) - 1) > && (((unsigned short) (((unsigned short) mode_size[result_mode]) * 8)) > >= ((unsigned short) (((unsigned short) mode_size[((enum machine_mode) (varop)->mode)]) * 8)))) > { > varop = (((varop)->u.fld[0]).rt_rtx); > continue; > } > > > > case LSHIFTRT: > case ASHIFT: > case ROTATE: > > > if ((((enum rtx_code) ((((varop)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((((varop)->u.fld[1]).rt_rtx))->u.hwint[0]) >= 0 > && (((((varop)->u.fld[1]).rt_rtx))->u.hwint[0]) < mode_precision[((enum machine_mode) (varop)->mode)] > && ((((enum mode_class) mode_class[result_mode]) == MODE_INT || ((enum mode_class) mode_class[result_mode]) == MODE_PARTIAL_INT) && mode_precision[result_mode] <= (8 * 8)) > && ((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) && mode_precision[mode] <= (8 * 8)) > && !(((enum mode_class) mode_class[result_mode]) == MODE_VECTOR_INT || ((enum mode_class) mode_class[result_mode]) == MODE_VECTOR_FLOAT || ((enum mode_class) mode_class[result_mode]) == MODE_VECTOR_FRACT || ((enum mode_class) mode_class[result_mode]) == MODE_VECTOR_UFRACT || ((enum mode_class) mode_class[result_mode]) == MODE_VECTOR_ACCUM || ((enum mode_class) mode_class[result_mode]) == MODE_VECTOR_UACCUM)) > { > enum rtx_code first_code = ((enum rtx_code) (varop)->code); > unsigned int first_count = (((((varop)->u.fld[1]).rt_rtx))->u.hwint[0]); > unsigned long long mask; > rtx mask_rtx; ># 10162 "../../gcc/combine.c" > if (code == ASHIFT && first_code == ASHIFTRT > && count == (mode_precision[result_mode] > - mode_precision[((enum machine_mode) (varop)->mode)])) > { > > > mask = mode_mask_array[mode] > & ~(((unsigned long long) 1 << first_count) - 1); > > varop = simplify_and_const_int ((rtx) 0, result_mode, > (((varop)->u.fld[0]).rt_rtx), mask); > varop = simplify_shift_const ((rtx) 0, ASHIFT, result_mode, > varop, count); > count = first_count; > code = ASHIFTRT; > continue; > } ># 10187 "../../gcc/combine.c" > if (code == ASHIFTRT && first_code == ASHIFT > && ((enum machine_mode) (varop)->mode) == shift_mode > && (num_sign_bit_copies ((((varop)->u.fld[0]).rt_rtx), shift_mode) > > first_count)) > { > varop = (((varop)->u.fld[0]).rt_rtx); > count -= first_count; > if (count < 0) > { > count = -count; > code = ASHIFT; > } > > continue; > } ># 10218 "../../gcc/combine.c" > if (code == first_code) > { > if (((enum machine_mode) (varop)->mode) != result_mode > && (code == ASHIFTRT || code == LSHIFTRT > || code == ROTATE)) > break; > > count += first_count; > varop = (((varop)->u.fld[0]).rt_rtx); > continue; > } > > if (code == ASHIFTRT > || (code == ROTATE && first_code == ASHIFTRT) > || mode_precision[mode] > (8 * 8) > || (((enum machine_mode) (varop)->mode) != result_mode > && (first_code == ASHIFTRT || first_code == LSHIFTRT > || first_code == ROTATE > || code == ROTATE))) > break; > > > > > > mask_rtx = gen_rtx_CONST_INT (VOIDmode, (nonzero_bits (varop, ((enum machine_mode) (varop)->mode)))); > > mask_rtx > = simplify_const_binary_operation (code, result_mode, mask_rtx, > gen_rtx_CONST_INT (VOIDmode, (count))); > > > if (mask_rtx == 0 > || !(((enum rtx_code) (mask_rtx)->code) == CONST_INT) > || ! merge_outer_ops (&outer_op, &outer_const, AND, > ((mask_rtx)->u.hwint[0]), > result_mode, &complement_p)) > break; > > > > if ((code == ASHIFTRT || code == LSHIFTRT) > == (first_code == ASHIFTRT || first_code == LSHIFTRT)) > count += first_count; > else > count -= first_count; > > > > > > if (count > 0 > && ((first_code == ROTATE && code == ASHIFT) > || (first_code == ASHIFTRT && code == LSHIFTRT))) > code = first_code; > else if (count < 0) > code = first_code, count = -count; > > varop = (((varop)->u.fld[0]).rt_rtx); > continue; > } > > > > > > else if (((enum rtx_code) (varop)->code) == code > && (((enum rtx_code) ((((varop)->u.fld[0]).rt_rtx))->code) == CONST_INT) > && !(((enum rtx_code) ((((varop)->u.fld[1]).rt_rtx))->code) == CONST_INT)) > { > rtx new_rtx = simplify_const_binary_operation (code, mode, > (((varop)->u.fld[0]).rt_rtx), > gen_rtx_CONST_INT (VOIDmode, (count))); > varop = gen_rtx_fmt_ee_stat (code, mode, new_rtx, (((varop)->u.fld[1]).rt_rtx) ); > count = 0; > continue; > } > break; > > case NOT: > if ((((enum mode_class) mode_class[mode]) == MODE_VECTOR_INT || ((enum mode_class) mode_class[mode]) == MODE_VECTOR_FLOAT || ((enum mode_class) mode_class[mode]) == MODE_VECTOR_FRACT || ((enum mode_class) mode_class[mode]) == MODE_VECTOR_UFRACT || ((enum mode_class) mode_class[mode]) == MODE_VECTOR_ACCUM || ((enum mode_class) mode_class[mode]) == MODE_VECTOR_UACCUM)) > break; > > > varop = gen_rtx_fmt_ee_stat (XOR, (mode), ((((varop)->u.fld[0]).rt_rtx)), ((const_int_rtx[64 -1])) ); > continue; > > case IOR: > case AND: > case XOR: > > > > > > > > if (((enum rtx_code) (varop)->code) == IOR && ((enum rtx_code) ((((varop)->u.fld[0]).rt_rtx))->code) == PLUS > && ((((((varop)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx) == (const_int_rtx[64 -1]) > && (1 == 1 || 1 == -1) > && (code == LSHIFTRT || code == ASHIFTRT) > && count == (mode_precision[((enum machine_mode) (varop)->mode)] - 1) > && rtx_equal_p (((((((varop)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), (((varop)->u.fld[1]).rt_rtx))) > { > count = 0; > varop = gen_rtx_fmt_ee_stat (LE, (((enum machine_mode) (varop)->mode)), ((((varop)->u.fld[1]).rt_rtx)), ((const_int_rtx[64])) ) > ; > > if (1 == 1 ? code == ASHIFTRT : code == LSHIFTRT) > varop = gen_rtx_fmt_e_stat (NEG, (((enum machine_mode) (varop)->mode)), (varop) ); > > continue; > } > > > > > > > > if ((((enum rtx_code) ((((varop)->u.fld[1]).rt_rtx))->code) == CONST_INT) > > > && !(code == ASHIFTRT && ((enum rtx_code) (varop)->code) == XOR > && 0 > trunc_int_for_mode ((((((varop)->u.fld[1]).rt_rtx))->u.hwint[0]), > shift_mode)) > && (new_rtx = simplify_const_binary_operation (code, result_mode, > (((varop)->u.fld[1]).rt_rtx), > gen_rtx_CONST_INT (VOIDmode, (count)))) != 0 > && (((enum rtx_code) (new_rtx)->code) == CONST_INT) > && merge_outer_ops (&outer_op, &outer_const, ((enum rtx_code) (varop)->code), > ((new_rtx)->u.hwint[0]), result_mode, &complement_p)) > { > varop = (((varop)->u.fld[0]).rt_rtx); > continue; > } > > > > > > if ((((enum rtx_code) ((((varop)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && !(code == ASHIFTRT && ((enum rtx_code) (varop)->code) == XOR > && 0 > trunc_int_for_mode ((((((varop)->u.fld[1]).rt_rtx))->u.hwint[0]), > shift_mode))) > { > rtx lhs = simplify_shift_const ((rtx) 0, code, shift_mode, > (((varop)->u.fld[0]).rt_rtx), count); > rtx rhs = simplify_shift_const ((rtx) 0, code, shift_mode, > (((varop)->u.fld[1]).rt_rtx), count); > > varop = simplify_gen_binary (((enum rtx_code) (varop)->code), shift_mode, > lhs, rhs); > varop = apply_distributive_law (varop); > > count = 0; > continue; > } > break; > > case EQ: > > > > > if (code == LSHIFTRT > && (((varop)->u.fld[1]).rt_rtx) == (const_int_rtx[64]) > && ((enum machine_mode) ((((varop)->u.fld[0]).rt_rtx))->mode) == result_mode > && count == (mode_precision[result_mode] - 1) > && ((((enum mode_class) mode_class[result_mode]) == MODE_INT || ((enum mode_class) mode_class[result_mode]) == MODE_PARTIAL_INT) && mode_precision[result_mode] <= (8 * 8)) > && 1 == -1 > && nonzero_bits ((((varop)->u.fld[0]).rt_rtx), result_mode) == 1 > && merge_outer_ops (&outer_op, &outer_const, XOR, 1, result_mode, > &complement_p)) > { > varop = (((varop)->u.fld[0]).rt_rtx); > count = 0; > continue; > } > break; > > case NEG: > > > if (code == LSHIFTRT > && count == (mode_precision[result_mode] - 1) > && nonzero_bits ((((varop)->u.fld[0]).rt_rtx), result_mode) == 1) > { > varop = (((varop)->u.fld[0]).rt_rtx); > count = 0; > continue; > } > > > > if (code == ASHIFT > && merge_outer_ops (&outer_op, &outer_const, NEG, 0, result_mode, > &complement_p)) > { > varop = (((varop)->u.fld[0]).rt_rtx); > continue; > } > break; > > case PLUS: > > > > if (code == LSHIFTRT > && count == (mode_precision[result_mode] - 1) > && (((varop)->u.fld[1]).rt_rtx) == (const_int_rtx[64 -1]) > && nonzero_bits ((((varop)->u.fld[0]).rt_rtx), result_mode) == 1 > && merge_outer_ops (&outer_op, &outer_const, XOR, 1, result_mode, > &complement_p)) > { > count = 0; > varop = (((varop)->u.fld[0]).rt_rtx); > continue; > } > > > > > > > > if ((code == ASHIFTRT || code == LSHIFTRT) > && count < (8 * 8) > && nonzero_bits ((((varop)->u.fld[1]).rt_rtx), result_mode) >> count == 0 > && (nonzero_bits ((((varop)->u.fld[1]).rt_rtx), result_mode) > & nonzero_bits ((((varop)->u.fld[0]).rt_rtx), result_mode)) == 0) > { > varop = (((varop)->u.fld[0]).rt_rtx); > continue; > } > else if ((code == ASHIFTRT || code == LSHIFTRT) > && count < (8 * 8) > && ((((enum mode_class) mode_class[result_mode]) == MODE_INT || ((enum mode_class) mode_class[result_mode]) == MODE_PARTIAL_INT) && mode_precision[result_mode] <= (8 * 8)) > && 0 == (nonzero_bits ((((varop)->u.fld[0]).rt_rtx), result_mode) > >> count) > && 0 == (nonzero_bits ((((varop)->u.fld[0]).rt_rtx), result_mode) > & nonzero_bits ((((varop)->u.fld[1]).rt_rtx), > result_mode))) > { > varop = (((varop)->u.fld[1]).rt_rtx); > continue; > } > > > if (code == ASHIFT > && (((enum rtx_code) ((((varop)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (new_rtx = simplify_const_binary_operation (ASHIFT, result_mode, > (((varop)->u.fld[1]).rt_rtx), > gen_rtx_CONST_INT (VOIDmode, (count)))) != 0 > && (((enum rtx_code) (new_rtx)->code) == CONST_INT) > && merge_outer_ops (&outer_op, &outer_const, PLUS, > ((new_rtx)->u.hwint[0]), result_mode, &complement_p)) > { > varop = (((varop)->u.fld[0]).rt_rtx); > continue; > } > > > > > > > if (code == LSHIFTRT > && (((enum rtx_code) ((((varop)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && mode_signbit_p (result_mode, (((varop)->u.fld[1]).rt_rtx)) > && (new_rtx = simplify_const_binary_operation (code, result_mode, > (((varop)->u.fld[1]).rt_rtx), > gen_rtx_CONST_INT (VOIDmode, (count)))) != 0 > && (((enum rtx_code) (new_rtx)->code) == CONST_INT) > && merge_outer_ops (&outer_op, &outer_const, XOR, > ((new_rtx)->u.hwint[0]), result_mode, &complement_p)) > { > varop = (((varop)->u.fld[0]).rt_rtx); > continue; > } > > break; > > case MINUS: > > > > > > > > if ((1 == 1 || 1 == -1) > && ((enum rtx_code) ((((varop)->u.fld[0]).rt_rtx))->code) == ASHIFTRT > && count == (mode_precision[((enum machine_mode) (varop)->mode)] - 1) > && (code == LSHIFTRT || code == ASHIFTRT) > && (((enum rtx_code) (((((((varop)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT) > && ((((((((varop)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]) == count > && rtx_equal_p (((((((varop)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), (((varop)->u.fld[1]).rt_rtx))) > { > count = 0; > varop = gen_rtx_fmt_ee_stat (GT, (((enum machine_mode) (varop)->mode)), ((((varop)->u.fld[1]).rt_rtx)), ((const_int_rtx[64])) ) > ; > > if (1 == 1 ? code == ASHIFTRT : code == LSHIFTRT) > varop = gen_rtx_fmt_e_stat (NEG, (((enum machine_mode) (varop)->mode)), (varop) ); > > continue; > } > break; > > case TRUNCATE: > > > if (code == LSHIFTRT > && ((enum rtx_code) ((((varop)->u.fld[0]).rt_rtx))->code) == LSHIFTRT > && (((enum rtx_code) (((((((varop)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((((((((varop)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]) > >= (mode_precision[((enum machine_mode) ((((varop)->u.fld[0]).rt_rtx))->mode)] > - mode_precision[((enum machine_mode) (varop)->mode)]))) > { > rtx varop_inner = (((varop)->u.fld[0]).rt_rtx); > > varop_inner > = gen_rtx_fmt_ee_stat (LSHIFTRT, (((enum machine_mode) (varop_inner)->mode)), ((((varop_inner)->u.fld[0]).rt_rtx)), (gen_rtx_CONST_INT (VOIDmode, (count + (((((varop_inner)->u.fld[1]).rt_rtx))->u.hwint[0])))) ) > > > ; > varop = gen_rtx_fmt_e_stat (TRUNCATE, (((enum machine_mode) (varop)->mode)), (varop_inner) ); > count = 0; > continue; > } > break; > > default: > break; > } > > break; > } > > shift_mode = try_widen_shift_mode (code, varop, count, result_mode, mode, > outer_op, outer_const); > > > > > > > > if (outer_op == UNKNOWN > && orig_code == code && orig_count == count > && varop == orig_varop > && shift_mode == ((enum machine_mode) (varop)->mode)) > return (rtx) 0; > > > varop = rtl_hooks.gen_lowpart (shift_mode, varop); > if (varop == (rtx) 0 || ((enum rtx_code) (varop)->code) == CLOBBER) > return (rtx) 0; > > > > > > > if (outer_op != UNKNOWN) > x = simplify_shift_const_1 (code, shift_mode, varop, count); > else > x = (rtx) 0; > > if (x == (rtx) 0) > x = simplify_gen_binary (code, shift_mode, varop, gen_rtx_CONST_INT (VOIDmode, (count))); > > > > if (orig_code == LSHIFTRT && result_mode != shift_mode) > x = simplify_and_const_int ((rtx) 0, shift_mode, x, > mode_mask_array[result_mode] >> orig_count); > > > x = gen_lowpart_or_truncate (result_mode, x); > > > > if (complement_p) > x = simplify_gen_unary (NOT, result_mode, x, result_mode); > > if (outer_op != UNKNOWN) > { > if ((rtx_class[(int) (outer_op)]) != RTX_UNARY > && mode_precision[result_mode] < (8 * 8)) > outer_const = trunc_int_for_mode (outer_const, result_mode); > > if (outer_op == AND) > x = simplify_and_const_int ((rtx) 0, result_mode, x, outer_const); > else if (outer_op == SET) > { > > > if (!side_effects_p (x)) > x = gen_rtx_CONST_INT (VOIDmode, (outer_const)); > } > else if ((rtx_class[(int) (outer_op)]) == RTX_UNARY) > x = simplify_gen_unary (outer_op, result_mode, x, result_mode); > else > x = simplify_gen_binary (outer_op, result_mode, x, > gen_rtx_CONST_INT (VOIDmode, (outer_const))); > } > > return x; >} ># 10639 "../../gcc/combine.c" >static rtx >simplify_shift_const (rtx x, enum rtx_code code, enum machine_mode result_mode, > rtx varop, int count) >{ > rtx tem = simplify_shift_const_1 (code, result_mode, varop, count); > if (tem) > return tem; > > if (!x) > x = simplify_gen_binary (code, ((enum machine_mode) (varop)->mode), varop, gen_rtx_CONST_INT (VOIDmode, (count))); > if (((enum machine_mode) (x)->mode) != result_mode) > x = rtl_hooks.gen_lowpart (result_mode, x); > return x; >} ># 10668 "../../gcc/combine.c" >static int >recog_for_combine (rtx *pnewpat, rtx insn, rtx *pnotes) >{ > rtx pat = *pnewpat; > int insn_code_number; > int num_clobbers_to_add = 0; > int i; > rtx notes = 0; > rtx old_notes, old_pat; > > > > > if (((enum rtx_code) (pat)->code) == PARALLEL) > for (i = (((((pat)->u.fld[0]).rt_rtvec))->num_elem) - 1; i >= 0; i--) > if (((enum rtx_code) ((((((pat)->u.fld[0]).rt_rtvec))->elem[i]))->code) == CLOBBER > && ((((((((pat)->u.fld[0]).rt_rtvec))->elem[i]))->u.fld[0]).rt_rtx) == (const_int_rtx[64])) > return -1; > > old_pat = (((insn)->u.fld[4]).rt_rtx); > old_notes = (((insn)->u.fld[7]).rt_rtx); > (((insn)->u.fld[4]).rt_rtx) = pat; > (((insn)->u.fld[7]).rt_rtx) = 0; > > insn_code_number = recog (pat, insn, &num_clobbers_to_add); > if (dump_file && (dump_flags & (1 << 3))) > { > if (insn_code_number < 0) > fputs_unlocked ("Failed to match this instruction:\n", dump_file); > else > fputs_unlocked ("Successfully matched this instruction:\n", dump_file); > print_rtl_single (dump_file, pat); > } > > > > > > > if (insn_code_number < 0 && ! check_asm_operands (pat) > && ((enum rtx_code) (pat)->code) == PARALLEL) > { > int pos; > > for (pos = 0, i = 0; i < (((((pat)->u.fld[0]).rt_rtvec))->num_elem); i++) > if (((enum rtx_code) ((((((pat)->u.fld[0]).rt_rtvec))->elem[i]))->code) != CLOBBER) > { > if (i != pos) > do_SUBST(&((((((pat)->u.fld[0]).rt_rtvec))->elem[pos])), ((((((pat)->u.fld[0]).rt_rtvec))->elem[i]))); > pos++; > } > > do_SUBST_INT(&((((((pat)->u.fld[0]).rt_rtvec))->num_elem)), (pos)); > > if (pos == 1) > pat = (((((pat)->u.fld[0]).rt_rtvec))->elem[0]); > > (((insn)->u.fld[4]).rt_rtx) = pat; > insn_code_number = recog (pat, insn, &num_clobbers_to_add); > if (dump_file && (dump_flags & (1 << 3))) > { > if (insn_code_number < 0) > fputs_unlocked ("Failed to match this instruction:\n", dump_file); > else > fputs_unlocked ("Successfully matched this instruction:\n", dump_file); > print_rtl_single (dump_file, pat); > } > } > (((insn)->u.fld[4]).rt_rtx) = old_pat; > (((insn)->u.fld[7]).rt_rtx) = old_notes; > > > if (insn_code_number < 0 && ((enum rtx_code) (pat)->code) == SET && set_noop_p (pat)) > insn_code_number = 2147483647, num_clobbers_to_add = 0; > > > > if (num_clobbers_to_add) > { > rtx newpat = gen_rtx_fmt_E_stat (PARALLEL, (VOIDmode), (rtvec_alloc (((enum rtx_code) (pat)->code) == PARALLEL ? ((((((pat)->u.fld[0]).rt_rtvec))->num_elem) + num_clobbers_to_add) : num_clobbers_to_add + 1)) ) > > > > ; > > if (((enum rtx_code) (pat)->code) == PARALLEL) > for (i = 0; i < (((((pat)->u.fld[0]).rt_rtvec))->num_elem); i++) > (((((newpat)->u.fld[0]).rt_rtvec))->elem[i]) = (((((pat)->u.fld[0]).rt_rtvec))->elem[i]); > else > (((((newpat)->u.fld[0]).rt_rtvec))->elem[0]) = pat; > > add_clobbers (newpat, insn_code_number); > > for (i = (((((newpat)->u.fld[0]).rt_rtvec))->num_elem) - num_clobbers_to_add; > i < (((((newpat)->u.fld[0]).rt_rtvec))->num_elem); i++) > { > if ((((enum rtx_code) (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[i]))->u.fld[0]).rt_rtx))->code) == REG) > && ! reg_dead_at_p (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[i]))->u.fld[0]).rt_rtx), insn)) > return -1; > if (((enum rtx_code) (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[i]))->u.fld[0]).rt_rtx))->code) != SCRATCH) > { > ((void)(!((((enum rtx_code) (((((((((newpat)->u.fld[0]).rt_rtvec))->elem[i]))->u.fld[0]).rt_rtx))->code) == REG)) ? fancy_abort ("../../gcc/combine.c", 10769, __FUNCTION__), 0 : 0)); > notes = alloc_reg_note (REG_UNUSED, > ((((((((newpat)->u.fld[0]).rt_rtvec))->elem[i]))->u.fld[0]).rt_rtx), notes); > } > } > pat = newpat; > } > > *pnewpat = pat; > *pnotes = notes; > > return insn_code_number; >} ># 10793 "../../gcc/combine.c" >static rtx >gen_lowpart_for_combine (enum machine_mode omode, rtx x) >{ > enum machine_mode imode = ((enum machine_mode) (x)->mode); > unsigned int osize = ((unsigned short) mode_size[omode]); > unsigned int isize = ((unsigned short) mode_size[imode]); > rtx result; > > if (omode == imode) > return x; > > > if (omode == ((enum machine_mode)rs6000_pmode) > && (((enum rtx_code) (x)->code) == CONST > || ((enum rtx_code) (x)->code) == SYMBOL_REF > || ((enum rtx_code) (x)->code) == LABEL_REF)) > return x; > > > > if (((unsigned short) mode_size[omode]) > (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8) > && ! ((imode == VOIDmode > && ((((enum rtx_code) (x)->code) == CONST_INT) > || ((enum rtx_code) (x)->code) == CONST_DOUBLE)) > || isize == osize)) > goto fail; > > > > > if (((enum rtx_code) (x)->code) == SUBREG && (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == MEM)) > { > x = (((x)->u.fld[0]).rt_rtx); > > > > > imode = ((enum machine_mode) (x)->mode); > > if (imode == omode) > return x; > > isize = ((unsigned short) mode_size[imode]); > } > > result = gen_lowpart_common (omode, x); > > if (result) > return result; > > if ((((enum rtx_code) (x)->code) == MEM)) > { > int offset = 0; > > > > if ((((x))->volatil) || mode_dependent_address_p ((((x)->u.fld[0]).rt_rtx))) > goto fail; > > > > > if (isize < osize) > return gen_rtx_SUBREG (omode, x, 0); > > if (((! ((global_options.x_target_flags & (1 << 8)) != 0)))) > offset = ((isize) > ((! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)) ? (isize) : ((! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8))) - ((osize) > ((! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)) ? (osize) : ((! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8))); > > > > if (((! ((global_options.x_target_flags & (1 << 8)) != 0)))) > offset -= (((! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)) < (osize) ? ((! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)) : (osize)) - (((! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)) < (isize) ? ((! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)) : (isize)); > > return adjust_address_1 (x, omode, offset, 0, 1); > } > > > > else if ((((rtx_class[(int) (((enum rtx_code) (x)->code))]) & (~1)) == (RTX_COMPARE & (~1)))) > return gen_rtx_fmt_ee_stat (((enum rtx_code) (x)->code), omode, (((x)->u.fld[0]).rt_rtx), (((x)->u.fld[1]).rt_rtx) ); > > > > > else > { > int offset = 0; > rtx res; > > offset = subreg_lowpart_offset (omode, imode); > if (imode == VOIDmode) > { > imode = int_mode_for_mode (omode); > x = gen_lowpart_common (imode, x); > if (x == ((void *)0)) > goto fail; > } > res = simplify_gen_subreg (omode, x, imode, offset); > if (res) > return res; > } > > fail: > return gen_rtx_fmt_e_stat (CLOBBER, (omode), ((const_int_rtx[64])) ); >} ># 10906 "../../gcc/combine.c" >static enum rtx_code >simplify_compare_const (enum rtx_code code, rtx op0, rtx *pop1) >{ > enum machine_mode mode = ((enum machine_mode) (op0)->mode); > unsigned int mode_width = mode_precision[mode]; > long long const_op = ((*pop1)->u.hwint[0]); > > > > if (mode != VOIDmode) > const_op = trunc_int_for_mode (const_op, mode); > > > > > > if (const_op > && (code == EQ || code == NE || code == GE || code == GEU > || code == LT || code == LTU) > && mode_width <= (8 * 8) > && exact_log2 (const_op) >= 0 > && nonzero_bits (op0, mode) == (unsigned long long) const_op) > { > code = (code == EQ || code == GE || code == GEU ? NE : EQ); > const_op = 0; > } > > > > if (const_op == -1 > && (code == EQ || code == NE || code == GT || code == LE > || code == GEU || code == LTU) > && num_sign_bit_copies (op0, mode) == mode_width) > { > code = (code == EQ || code == LE || code == GEU ? NE : EQ); > const_op = 0; > } > > > > > switch (code) > { > case LT: > > if (const_op > 0) > { > const_op -= 1; > code = LE; > > } > else > break; > > case LE: > > if (const_op < 0) > { > const_op += 1; > code = LT; > } > > > > else if (const_op == 0 > && mode_width <= (8 * 8) > && (nonzero_bits (op0, mode) > & ((unsigned long long) 1 << (mode_width - 1))) > == 0) > code = EQ; > break; > > case GE: > > if (const_op > 0) > { > const_op -= 1; > code = GT; > > } > else > break; > > case GT: > > if (const_op < 0) > { > const_op += 1; > code = GE; > } > > > > else if (const_op == 0 > && mode_width <= (8 * 8) > && (nonzero_bits (op0, mode) > & ((unsigned long long) 1 << (mode_width - 1))) > == 0) > code = NE; > break; > > case LTU: > > if (const_op > 0) > { > const_op -= 1; > code = LEU; > > } > > else if (mode_width <= (8 * 8) > && (unsigned long long) const_op > == (unsigned long long) 1 << (mode_width - 1)) > { > const_op = 0; > code = GE; > break; > } > else > break; > > case LEU: > > if (const_op == 0) > code = EQ; > > else if (mode_width <= (8 * 8) > && (unsigned long long) const_op > == ((unsigned long long) 1 << (mode_width - 1)) - 1) > { > const_op = 0; > code = GE; > } > break; > > case GEU: > > if (const_op > 1) > { > const_op -= 1; > code = GTU; > > } > > > else if (mode_width <= (8 * 8) > && (unsigned long long) const_op > == (unsigned long long) 1 << (mode_width - 1)) > { > const_op = 0; > code = LT; > break; > } > else > break; > > case GTU: > > if (const_op == 0) > code = NE; > > else if (mode_width <= (8 * 8) > && (unsigned long long) const_op > == ((unsigned long long) 1 << (mode_width - 1)) - 1) > { > const_op = 0; > code = LT; > } > break; > > default: > break; > } > > *pop1 = gen_rtx_CONST_INT (VOIDmode, (const_op)); > return code; >} ># 11095 "../../gcc/combine.c" >static enum rtx_code >simplify_comparison (enum rtx_code code, rtx *pop0, rtx *pop1) >{ > rtx op0 = *pop0; > rtx op1 = *pop1; > rtx tem, tem1; > int i; > enum machine_mode mode, tmode; > > > while (1) > { ># 11136 "../../gcc/combine.c" > if (((enum rtx_code) (op0)->code) == ((enum rtx_code) (op1)->code) > && ((((enum mode_class) mode_class[((enum machine_mode) (op0)->mode)]) == MODE_INT || ((enum mode_class) mode_class[((enum machine_mode) (op0)->mode)]) == MODE_PARTIAL_INT) && mode_precision[((enum machine_mode) (op0)->mode)] <= (8 * 8)) > && ((((enum rtx_code) (op0)->code) == ROTATE && (code == NE || code == EQ)) > || ((((enum rtx_code) (op0)->code) == LSHIFTRT || ((enum rtx_code) (op0)->code) == ASHIFT) > && (code != GT && code != LT && code != GE && code != LE)) > || (((enum rtx_code) (op0)->code) == ASHIFTRT > && (code != GTU && code != LTU > && code != GEU && code != LEU))) > && (((enum rtx_code) ((((op0)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0]) >= 0 > && (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0]) < (8 * 8) > && (((op0)->u.fld[1]).rt_rtx) == (((op1)->u.fld[1]).rt_rtx)) > { > enum machine_mode mode = ((enum machine_mode) (op0)->mode); > unsigned long long mask = mode_mask_array[mode]; > int shift_count = (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0]); > > if (((enum rtx_code) (op0)->code) == LSHIFTRT || ((enum rtx_code) (op0)->code) == ASHIFTRT) > mask &= (mask >> shift_count) << shift_count; > else if (((enum rtx_code) (op0)->code) == ASHIFT) > mask = (mask & (mask << shift_count)) >> shift_count; > > if ((nonzero_bits ((((op0)->u.fld[0]).rt_rtx), mode) & ~mask) == 0 > && (nonzero_bits ((((op1)->u.fld[0]).rt_rtx), mode) & ~mask) == 0) > op0 = (((op0)->u.fld[0]).rt_rtx), op1 = (((op1)->u.fld[0]).rt_rtx); > else > break; > } ># 11178 "../../gcc/combine.c" > else if (((enum rtx_code) (op0)->code) == AND && ((enum rtx_code) (op1)->code) == AND > && (((enum rtx_code) ((((op0)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((enum rtx_code) ((((op1)->u.fld[1]).rt_rtx))->code) == CONST_INT)) > { > rtx inner_op0 = (((op0)->u.fld[0]).rt_rtx); > rtx inner_op1 = (((op1)->u.fld[0]).rt_rtx); > long long c0 = (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0]); > long long c1 = (((((op1)->u.fld[1]).rt_rtx))->u.hwint[0]); > int changed = 0; > > if (paradoxical_subreg_p (inner_op0) > && ((enum rtx_code) (inner_op1)->code) == SUBREG > && (((enum machine_mode) ((((inner_op0)->u.fld[0]).rt_rtx))->mode) > == ((enum machine_mode) ((((inner_op1)->u.fld[0]).rt_rtx))->mode)) > && (mode_precision[((enum machine_mode) ((((inner_op0)->u.fld[0]).rt_rtx))->mode)] > <= (8 * 8)) > && (0 == ((~c0) & nonzero_bits ((((inner_op0)->u.fld[0]).rt_rtx), > ((enum machine_mode) ((((inner_op0)->u.fld[0]).rt_rtx))->mode)))) > && (0 == ((~c1) & nonzero_bits ((((inner_op1)->u.fld[0]).rt_rtx), > ((enum machine_mode) ((((inner_op1)->u.fld[0]).rt_rtx))->mode))))) > { > op0 = (((inner_op0)->u.fld[0]).rt_rtx); > op1 = (((inner_op1)->u.fld[0]).rt_rtx); > > > > code = unsigned_condition (code); > > changed = 1; > } > > else if (c0 == c1) > for (tmode = ((enum machine_mode) class_narrowest_mode[((enum mode_class) mode_class[((enum machine_mode) (op0)->mode)])]) > ; > tmode != ((enum machine_mode) (op0)->mode); tmode = ((enum machine_mode) mode_wider[tmode])) > if ((unsigned long long) c0 == mode_mask_array[tmode]) > { > op0 = rtl_hooks.gen_lowpart (tmode, inner_op0); > op1 = rtl_hooks.gen_lowpart (tmode, inner_op1); > code = unsigned_condition (code); > changed = 1; > break; > } > > if (! changed) > break; > } > > > > > else if ((((enum rtx_code) (op0)->code) == NOT && ((enum rtx_code) (op1)->code) == NOT) > || (((enum rtx_code) (op0)->code) == NEG && ((enum rtx_code) (op1)->code) == NEG > && (code == EQ || code == NE))) > op0 = (((op0)->u.fld[0]).rt_rtx), op1 = (((op1)->u.fld[0]).rt_rtx), code = swap_condition (code); > > else > break; > } > > > > > if (swap_commutative_operands_p (op0, op1)) > { > tem = op0, op0 = op1, op1 = tem; > code = swap_condition (code); > } > > > > > > > while ((((enum rtx_code) (op1)->code) == CONST_INT)) > { > enum machine_mode mode = ((enum machine_mode) (op0)->mode); > unsigned int mode_width = mode_precision[mode]; > unsigned long long mask = mode_mask_array[mode]; > int equality_comparison_p; > int sign_bit_comparison_p; > int unsigned_comparison_p; > long long const_op; > > > > > > > if (((enum mode_class) mode_class[mode]) != MODE_INT > && ! (mode == VOIDmode > && (((enum rtx_code) (op0)->code) == COMPARE || (((rtx_class[(int) (((enum rtx_code) (op0)->code))]) & (~1)) == (RTX_COMPARE & (~1)))))) > break; > > > > code = simplify_compare_const (code, op0, &op1); > const_op = ((op1)->u.hwint[0]); > > > > equality_comparison_p = (code == EQ || code == NE); > sign_bit_comparison_p = ((code == LT || code == GE) && const_op == 0); > unsigned_comparison_p = (code == LTU || code == LEU || code == GTU > || code == GEU); > > > > if (sign_bit_comparison_p && ((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) && mode_precision[mode] <= (8 * 8))) > op0 = force_to_mode (op0, mode, > (unsigned long long) 1 > << (mode_precision[mode] - 1), > 0); > > > > > > switch (((enum rtx_code) (op0)->code)) > { > case ZERO_EXTRACT: > > > > > > > if (!(0 ? 1 : 0) > && (((enum rtx_code) ((((op0)->u.fld[0]).rt_rtx))->code) == CONST_INT) > && (((op0)->u.fld[1]).rt_rtx) == (const_int_rtx[64 +1]) > && equality_comparison_p && const_op == 0 > && (i = exact_log2 (((unsigned long long) (((((op0)->u.fld[0]).rt_rtx))->u.hwint[0])))) >= 0) > { > if (1) > { > enum machine_mode new_mode > = mode_for_extraction (EP_extzv, 1); > if (new_mode == MAX_MACHINE_MODE) > i = (8 * (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)) - 1 - i; > else > { > mode = new_mode; > i = (mode_precision[mode] - 1 - i); > } > } > > op0 = (((op0)->u.fld[2]).rt_rtx); > op1 = gen_rtx_CONST_INT (VOIDmode, (i)); > const_op = i; > > > code = reverse_condition (code); > continue; > } > > > > case SIGN_EXTRACT: > tem = expand_compound_operation (op0); > if (tem != op0) > { > op0 = tem; > continue; > } > break; > > case NOT: > > if (equality_comparison_p > && (tem = simplify_unary_operation (NOT, mode, op1, mode)) != 0) > { > op0 = (((op0)->u.fld[0]).rt_rtx); > op1 = tem; > continue; > } > > > > if (sign_bit_comparison_p) > { > op0 = (((op0)->u.fld[0]).rt_rtx); > code = (code == GE ? LT : GE); > continue; > } > break; > > case NEG: > > if (equality_comparison_p > && (tem = simplify_unary_operation (NEG, mode, op1, mode)) != 0) > { > op0 = (((op0)->u.fld[0]).rt_rtx); > op1 = tem; > continue; > } > > > if (const_op != 0) > break; > > > > > if (sign_bit_comparison_p > && (((enum rtx_code) ((((op0)->u.fld[0]).rt_rtx))->code) == ABS > || (mode_width <= (8 * 8) > && (nonzero_bits ((((op0)->u.fld[0]).rt_rtx), mode) > & ((unsigned long long) 1 << (mode_width - 1))) > == 0))) > { > op0 = (((op0)->u.fld[0]).rt_rtx); > code = (code == LT ? NE : EQ); > continue; > } > > > > if (num_sign_bit_copies (op0, mode) >= 2) > { > op0 = (((op0)->u.fld[0]).rt_rtx); > code = swap_condition (code); > continue; > } > break; > > case ROTATE: > > > if (equality_comparison_p && (((enum rtx_code) ((((op0)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (tem = simplify_binary_operation (ROTATERT, mode, > op1, (((op0)->u.fld[1]).rt_rtx))) != 0) > { > op0 = (((op0)->u.fld[0]).rt_rtx); > op1 = tem; > continue; > } > > > > > if (const_op == 0 && sign_bit_comparison_p > && (((enum rtx_code) ((((op0)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && mode_width <= (8 * 8)) > { > op0 = simplify_and_const_int ((rtx) 0, mode, (((op0)->u.fld[0]).rt_rtx), > ((unsigned long long) 1 > << (mode_width - 1 > - (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0])))); > code = (code == LT ? NE : EQ); > continue; > } > > > > case ABS: > > if (const_op == 0 && equality_comparison_p) > { > op0 = (((op0)->u.fld[0]).rt_rtx); > continue; > } > break; > > case SIGN_EXTEND: ># 11450 "../../gcc/combine.c" > mode = ((enum machine_mode) ((((op0)->u.fld[0]).rt_rtx))->mode); > if (((enum mode_class) mode_class[mode]) == MODE_INT > && ! unsigned_comparison_p > && ((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) && mode_precision[mode] <= (8 * 8)) > && trunc_int_for_mode (const_op, mode) == const_op > && have_insn_for (COMPARE, mode)) > { > op0 = (((op0)->u.fld[0]).rt_rtx); > continue; > } > break; > > case SUBREG: ># 11483 "../../gcc/combine.c" > if (mode_width <= (8 * 8) > && subreg_lowpart_p (op0) > && mode_precision[((enum machine_mode) ((((op0)->u.fld[0]).rt_rtx))->mode)] > mode_width > && ((enum rtx_code) ((((op0)->u.fld[0]).rt_rtx))->code) == PLUS > && (((enum rtx_code) (((((((op0)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT)) > { > enum machine_mode inner_mode = ((enum machine_mode) ((((op0)->u.fld[0]).rt_rtx))->mode); > rtx a = ((((((op0)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > long long c1 = -((((((((op0)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]); > > if ((c1 > 0 > && (unsigned long long) c1 > < (unsigned long long) 1 << (mode_width - 1) > && (equality_comparison_p || unsigned_comparison_p) > > > && ((0 == (nonzero_bits (a, inner_mode) > & ~mode_mask_array[mode]) > && const_op >= 0) > > > || (num_sign_bit_copies (a, inner_mode) > > (unsigned int) (mode_precision[inner_mode] > - mode_width) > && const_op < 0))) > || ((unsigned long long) c1 > < (unsigned long long) 1 << (mode_width - 2) > > && num_sign_bit_copies (a, inner_mode) > > (unsigned int) (mode_precision[inner_mode] > - (mode_width - 1)))) > { > op0 = (((op0)->u.fld[0]).rt_rtx); > continue; > } > } > > > > if (subreg_lowpart_p (op0) > && mode_precision[((enum machine_mode) ((((op0)->u.fld[0]).rt_rtx))->mode)] < mode_width) > ; > else > break; > > > > case ZERO_EXTEND: > mode = ((enum machine_mode) ((((op0)->u.fld[0]).rt_rtx))->mode); > if (((enum mode_class) mode_class[mode]) == MODE_INT > && (unsigned_comparison_p || equality_comparison_p) > && ((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) && mode_precision[mode] <= (8 * 8)) > && (unsigned long long) const_op <= mode_mask_array[mode] > && const_op >= 0 > && have_insn_for (COMPARE, mode)) > { > op0 = (((op0)->u.fld[0]).rt_rtx); > continue; > } > break; > > case PLUS: > > > > if (equality_comparison_p > && 0 != (tem = simplify_binary_operation (MINUS, mode, > op1, (((op0)->u.fld[1]).rt_rtx)))) > { > op0 = (((op0)->u.fld[0]).rt_rtx); > op1 = tem; > continue; > } > > > if (const_op == 0 && (((op0)->u.fld[1]).rt_rtx) == (const_int_rtx[64 -1]) > && ((enum rtx_code) ((((op0)->u.fld[0]).rt_rtx))->code) == ABS && sign_bit_comparison_p) > { > op0 = ((((((op0)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > code = (code == LT ? EQ : NE); > continue; > } > break; > > case MINUS: ># 11577 "../../gcc/combine.c" > if (equality_comparison_p > && 0 != (tem = simplify_binary_operation (PLUS, mode, > (((op0)->u.fld[1]).rt_rtx), op1))) > { > op0 = (((op0)->u.fld[0]).rt_rtx); > op1 = tem; > continue; > } > > if (equality_comparison_p > && 0 != (tem = simplify_binary_operation (MINUS, mode, > (((op0)->u.fld[0]).rt_rtx), op1))) > { > op0 = (((op0)->u.fld[1]).rt_rtx); > op1 = tem; > continue; > } > > > > if (sign_bit_comparison_p && ((enum rtx_code) ((((op0)->u.fld[0]).rt_rtx))->code) == ASHIFTRT > && (((enum rtx_code) (((((((op0)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT) > && ((unsigned long long) ((((((((op0)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0])) == mode_width - 1 > && rtx_equal_p (((((((op0)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), (((op0)->u.fld[1]).rt_rtx))) > { > op0 = (((op0)->u.fld[1]).rt_rtx); > code = (code == GE ? LE : GT); > continue; > } > break; > > case XOR: > > > if (equality_comparison_p > && 0 != (tem = simplify_binary_operation (XOR, mode, > (((op0)->u.fld[1]).rt_rtx), op1))) > { > op0 = (((op0)->u.fld[0]).rt_rtx); > op1 = tem; > continue; > } > break; > > case EQ: case NE: > case UNEQ: case LTGT: > case LT: case LTU: case UNLT: case LE: case LEU: case UNLE: > case GT: case GTU: case UNGT: case GE: case GEU: case UNGE: > case UNORDERED: case ORDERED: > > > if (const_op != 0 > || (((((op0)->u.fld[0]).rt_rtx)) ? 0 : 0) > || ((enum mode_class) mode_class[((enum machine_mode) ((((op0)->u.fld[0]).rt_rtx))->mode)]) == MODE_CC) > break; > > > if (((enum rtx_code) ((((op0)->u.fld[0]).rt_rtx))->code) == COMPARE) > tem = ((((((op0)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), tem1 = ((((((op0)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx); > else > tem = (((op0)->u.fld[0]).rt_rtx), tem1 = (((op0)->u.fld[1]).rt_rtx); > > > > if (code == NE || code == EQ > || (val_signbit_known_set_p (((enum machine_mode) (op0)->mode), 1) > && (code == LT || code == GE))) > { > enum rtx_code new_code; > if (code == LT || code == NE) > new_code = ((enum rtx_code) (op0)->code); > else > new_code = reversed_comparison_code (op0, ((void *)0)); > > if (new_code != UNKNOWN) > { > code = new_code; > op0 = tem; > op1 = tem1; > continue; > } > } > break; > > case IOR: > > > if (sign_bit_comparison_p && ((enum rtx_code) ((((op0)->u.fld[0]).rt_rtx))->code) == PLUS > && ((((((op0)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx) == (const_int_rtx[64 -1]) > && rtx_equal_p (((((((op0)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), (((op0)->u.fld[1]).rt_rtx))) > { > op0 = (((op0)->u.fld[1]).rt_rtx); > code = (code == GE ? GT : LE); > continue; > } > break; > > case AND: > > > if (const_op == 0 && equality_comparison_p > && ((enum rtx_code) ((((op0)->u.fld[0]).rt_rtx))->code) == ASHIFT > && ((((((op0)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx) == (const_int_rtx[64 +1])) > { > op0 = gen_rtx_fmt_ee_stat (LSHIFTRT, (mode), ((((op0)->u.fld[1]).rt_rtx)), (((((((op0)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx)) ) > ; > op0 = simplify_and_const_int ((rtx) 0, mode, op0, 1); > continue; > } > > > > > if (const_op == 0 && equality_comparison_p > && mode_width <= (8 * 8) > && (((enum rtx_code) ((((op0)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && ((enum rtx_code) ((((op0)->u.fld[0]).rt_rtx))->code) == LSHIFTRT > && (((enum rtx_code) (((((((op0)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT) > && ((((((((op0)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]) >= 0 > && ((((((((op0)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0]) < (8 * 8)) > { > mask = (((((((op0)->u.fld[1]).rt_rtx))->u.hwint[0]) & mode_mask_array[mode]) > << ((((((((op0)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->u.hwint[0])); > if ((~1 & mask) == 0 > && ((((rtx_class[(int) (((enum rtx_code) (((((((op0)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code))]) & (~1)) == (RTX_COMPARE & (~1))) > || ((tem = get_last_value (((((((op0)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))) != 0 > && (((rtx_class[(int) (((enum rtx_code) (tem)->code))]) & (~1)) == (RTX_COMPARE & (~1)))))) > { > op0 = ((((((op0)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > continue; > } > } > > > > > if (equality_comparison_p > && const_op == 0 > && (((enum rtx_code) ((((op0)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && mode_width <= (8 * 8) > && (((((((op0)->u.fld[1]).rt_rtx))->u.hwint[0]) & mode_mask_array[mode]) > == (unsigned long long) 1 << (mode_width - 1))) > { > op0 = (((op0)->u.fld[0]).rt_rtx); > code = (code == EQ ? GE : LT); > continue; > } ># 11738 "../../gcc/combine.c" > if ((equality_comparison_p || unsigned_comparison_p) > && (((enum rtx_code) ((((op0)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (i = exact_log2 ((((unsigned long long) (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0])) > & mode_mask_array[mode]) > + 1)) >= 0 > && const_op >> i == 0 > && (tmode = mode_for_size (i, MODE_INT, 1)) != BLKmode > && (1 > || ((((enum rtx_code) ((((op0)->u.fld[0]).rt_rtx))->code) == REG) > && reg_truncated_to_mode (tmode, (((op0)->u.fld[0]).rt_rtx))))) > { > op0 = rtl_hooks.gen_lowpart (tmode, (((op0)->u.fld[0]).rt_rtx)); > continue; > } > > > > > > if (((enum rtx_code) ((((op0)->u.fld[0]).rt_rtx))->code) == SUBREG) > { > unsigned long long c1; > tmode = ((enum machine_mode) (((((((op0)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->mode); > > > if ((((enum mode_class) mode_class[tmode]) == MODE_INT || ((enum mode_class) mode_class[tmode]) == MODE_PARTIAL_INT) > > > > > > > > && (0 > > || (mode_width > mode_precision[tmode] > && mode_width <= (8 * (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8))) > > || (mode_width <= mode_precision[tmode] > && subreg_lowpart_p ((((op0)->u.fld[0]).rt_rtx)))) > && (((enum rtx_code) ((((op0)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && mode_width <= (8 * 8) > && ((((enum mode_class) mode_class[tmode]) == MODE_INT || ((enum mode_class) mode_class[tmode]) == MODE_PARTIAL_INT) && mode_precision[tmode] <= (8 * 8)) > && ((c1 = (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0])) & ~mask) == 0 > && (c1 & ~mode_mask_array[tmode]) == 0 > && c1 != mask > && c1 != mode_mask_array[tmode]) > { > op0 = simplify_gen_binary (AND, tmode, > ((((((op0)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), > gen_int_mode (c1, tmode)); > op0 = rtl_hooks.gen_lowpart (mode, op0); > continue; > } > } > > > if (const_op == 0 && equality_comparison_p > && (((op0)->u.fld[1]).rt_rtx) == (const_int_rtx[64 +1]) > && ((enum rtx_code) ((((op0)->u.fld[0]).rt_rtx))->code) == NOT) > { > op0 = simplify_and_const_int ((rtx) 0, mode, > ((((((op0)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx), 1); > code = (code == NE ? EQ : NE); > continue; > } > > > > > if (const_op == 0 && equality_comparison_p > && (((op0)->u.fld[1]).rt_rtx) == (const_int_rtx[64 +1]) > && ((enum rtx_code) ((((op0)->u.fld[0]).rt_rtx))->code) == LSHIFTRT) > { > rtx shift_op = ((((((op0)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > rtx shift_count = ((((((op0)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx); > > if (((enum rtx_code) (shift_op)->code) == NOT > || (((enum rtx_code) (shift_op)->code) == XOR > && (((enum rtx_code) ((((shift_op)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((enum rtx_code) (shift_count)->code) == CONST_INT) > && ((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) && mode_precision[mode] <= (8 * 8)) > && (((unsigned long long) (((((shift_op)->u.fld[1]).rt_rtx))->u.hwint[0])) > == (unsigned long long) 1 > << ((shift_count)->u.hwint[0])))) > { > op0 > = gen_rtx_fmt_ee_stat (LSHIFTRT, (mode), ((((shift_op)->u.fld[0]).rt_rtx)), (shift_count) ); > op0 = simplify_and_const_int ((rtx) 0, mode, op0, 1); > code = (code == NE ? EQ : NE); > continue; > } > } > break; > > case ASHIFT: > > > > > > if ((((enum rtx_code) ((((op0)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0]) >= 0 > && (((((((op0)->u.fld[1]).rt_rtx))->u.hwint[0]) + ! equality_comparison_p) > < (8 * 8)) > && (((unsigned long long) const_op > & (((unsigned long long) 1 << (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0])) > - 1)) == 0) > && mode_width <= (8 * 8) > && (nonzero_bits ((((op0)->u.fld[0]).rt_rtx), mode) > & ~(mask >> ((((((op0)->u.fld[1]).rt_rtx))->u.hwint[0]) > + ! equality_comparison_p))) == 0) > { > > > unsigned long long temp = const_op & mode_mask_array[mode]; > > temp >>= (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0]); > op1 = gen_int_mode (temp, mode); > op0 = (((op0)->u.fld[0]).rt_rtx); > continue; > } > > > > if (sign_bit_comparison_p && (((enum rtx_code) ((((op0)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && mode_width <= (8 * 8)) > { > op0 = simplify_and_const_int ((rtx) 0, mode, (((op0)->u.fld[0]).rt_rtx), > ((unsigned long long) 1 > << (mode_width - 1 > - (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0])))); > code = (code == LT ? NE : EQ); > continue; > } > > > > > if (const_op == 0 && equality_comparison_p > && (((enum rtx_code) ((((op0)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && ((unsigned long long) (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0])) == mode_width - 1) > { > op0 = simplify_and_const_int ((rtx) 0, mode, (((op0)->u.fld[0]).rt_rtx), 1); > continue; > } > break; > > case ASHIFTRT: > > > if (equality_comparison_p && const_op == 0 > && (((enum rtx_code) ((((op0)->u.fld[1]).rt_rtx))->code) == CONST_INT)) > { > op0 = simplify_shift_const ((rtx) 0, LSHIFTRT, mode, > (((op0)->u.fld[0]).rt_rtx), > (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0])); > continue; > } > > > > if (! unsigned_comparison_p > && (((enum rtx_code) ((((op0)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && ((enum rtx_code) ((((op0)->u.fld[0]).rt_rtx))->code) == ASHIFT > && (((op0)->u.fld[1]).rt_rtx) == ((((((op0)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx) > && (tmode = mode_for_size (mode_width - (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0]), > MODE_INT, 1)) != BLKmode > && (((unsigned long long) const_op > + (mode_mask_array[tmode] >> 1) + 1) > <= mode_mask_array[tmode])) > { > op0 = rtl_hooks.gen_lowpart (tmode, ((((((op0)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx)); > continue; > } > > > > > if (! unsigned_comparison_p > && (((enum rtx_code) ((((op0)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && ((enum rtx_code) ((((op0)->u.fld[0]).rt_rtx))->code) == PLUS > && (((enum rtx_code) (((((((op0)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx))->code) == CONST_INT) > && ((enum rtx_code) (((((((op0)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->code) == ASHIFT > && (((op0)->u.fld[1]).rt_rtx) == (((((((((op0)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx) > && (tmode = mode_for_size (mode_width - (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0]), > MODE_INT, 1)) != BLKmode > && (((unsigned long long) const_op > + (mode_mask_array[tmode] >> 1) + 1) > <= mode_mask_array[tmode])) > { > rtx inner = (((((((((op0)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > rtx add_const = ((((((op0)->u.fld[0]).rt_rtx))->u.fld[1]).rt_rtx); > rtx new_const = simplify_gen_binary (ASHIFTRT, ((enum machine_mode) (op0)->mode), > add_const, (((op0)->u.fld[1]).rt_rtx)); > > op0 = simplify_gen_binary (PLUS, tmode, > rtl_hooks.gen_lowpart (tmode, inner), > new_const); > continue; > } > > > case LSHIFTRT: > > > > > > > > if ((((enum rtx_code) ((((op0)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0]) > 0 > && (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0]) < (8 * 8) > && mode_width <= (8 * 8) > && (((unsigned long long) const_op > + (((enum rtx_code) (op0)->code) != LSHIFTRT > ? ((mode_mask_array[mode] >> (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0]) >> 1) > + 1) > : 0)) > <= mode_mask_array[mode] >> (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0]))) > { > unsigned long long low_bits > = (nonzero_bits ((((op0)->u.fld[0]).rt_rtx), mode) > & (((unsigned long long) 1 > << (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0])) - 1)); > if (low_bits == 0 || !equality_comparison_p) > { > > > if (((enum rtx_code) (op0)->code) == LSHIFTRT) > code = unsigned_condition (code); > > const_op <<= (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0]); > if (low_bits != 0 > && (code == GT || code == GTU > || code == LE || code == LEU)) > const_op > |= (((long long) 1 << (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0])) - 1); > op1 = gen_rtx_CONST_INT (VOIDmode, (const_op)); > op0 = (((op0)->u.fld[0]).rt_rtx); > continue; > } > } > > > > if (const_op == 0 > && (equality_comparison_p || sign_bit_comparison_p) > && (((enum rtx_code) ((((op0)->u.fld[1]).rt_rtx))->code) == CONST_INT) > && ((unsigned long long) (((((op0)->u.fld[1]).rt_rtx))->u.hwint[0])) == mode_width - 1) > { > op0 = (((op0)->u.fld[0]).rt_rtx); > code = (code == NE || code == GT ? LT : GE); > continue; > } > break; > > default: > break; > } > > break; > } ># 12025 "../../gcc/combine.c" > op0 = make_compound_operation (op0, op1 == (const_int_rtx[64]) ? COMPARE : SET); > op1 = make_compound_operation (op1, SET); > > if (((enum rtx_code) (op0)->code) == SUBREG && subreg_lowpart_p (op0) > && ((enum mode_class) mode_class[((enum machine_mode) (op0)->mode)]) == MODE_INT > && ((enum mode_class) mode_class[((enum machine_mode) ((((op0)->u.fld[0]).rt_rtx))->mode)]) == MODE_INT > && (code == NE || code == EQ)) > { > if (paradoxical_subreg_p (op0)) > { > > > if ((((enum rtx_code) ((((op0)->u.fld[0]).rt_rtx))->code) == REG)) > { > op0 = (((op0)->u.fld[0]).rt_rtx); > op1 = rtl_hooks.gen_lowpart (((enum machine_mode) (op0)->mode), op1); > } > } > else if ((mode_precision[((enum machine_mode) ((((op0)->u.fld[0]).rt_rtx))->mode)] > <= (8 * 8)) > && (nonzero_bits ((((op0)->u.fld[0]).rt_rtx), > ((enum machine_mode) ((((op0)->u.fld[0]).rt_rtx))->mode)) > & ~mode_mask_array[((enum machine_mode) (op0)->mode)]) == 0) > { > tem = rtl_hooks.gen_lowpart (((enum machine_mode) ((((op0)->u.fld[0]).rt_rtx))->mode), op1); > > if ((nonzero_bits (tem, ((enum machine_mode) ((((op0)->u.fld[0]).rt_rtx))->mode)) > & ~mode_mask_array[((enum machine_mode) (op0)->mode)]) == 0) > op0 = (((op0)->u.fld[0]).rt_rtx), op1 = tem; > } > } > > > > > > > > mode = ((enum machine_mode) (op0)->mode); > if (mode != VOIDmode && ((enum mode_class) mode_class[mode]) == MODE_INT > && ((unsigned short) mode_size[mode]) < (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8) > && ! have_insn_for (COMPARE, mode)) > for (tmode = ((enum machine_mode) mode_wider[mode]); > (tmode != VOIDmode && ((((enum mode_class) mode_class[tmode]) == MODE_INT || ((enum mode_class) mode_class[tmode]) == MODE_PARTIAL_INT) && mode_precision[tmode] <= (8 * 8))); > tmode = ((enum machine_mode) mode_wider[tmode])) > if (have_insn_for (COMPARE, tmode)) > { > int zero_extended; > > > > > > if (op1 == (const_int_rtx[64]) && (code == LT || code == GE) > && ((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) && mode_precision[mode] <= (8 * 8))) > { > op0 = simplify_gen_binary (AND, tmode, > rtl_hooks.gen_lowpart (tmode, op0), > gen_rtx_CONST_INT (VOIDmode, ((unsigned long long) 1 << (((unsigned short) (((unsigned short) mode_size[mode]) * 8)) - 1))) > > ); > code = (code == LT) ? NE : EQ; > break; > } > > > > > > zero_extended = ((code == EQ || code == NE > || code == GEU || code == GTU > || code == LEU || code == LTU) > && (nonzero_bits (op0, tmode) > & ~mode_mask_array[mode]) == 0 > && (((((enum rtx_code) (op1)->code) == CONST_INT) > || (nonzero_bits (op1, tmode) > & ~mode_mask_array[mode]) == 0))); > > if (zero_extended > || ((num_sign_bit_copies (op0, tmode) > > (unsigned int) (mode_precision[tmode] > - mode_precision[mode])) > && (num_sign_bit_copies (op1, tmode) > > (unsigned int) (mode_precision[tmode] > - mode_precision[mode])))) > { > > > if (((enum rtx_code) (op0)->code) == AND > && !have_insn_for (AND, mode)) > op0 = simplify_gen_binary (AND, tmode, > rtl_hooks.gen_lowpart (tmode, > (((op0)->u.fld[0]).rt_rtx)), > rtl_hooks.gen_lowpart (tmode, > (((op0)->u.fld[1]).rt_rtx))); > else > { > if (zero_extended) > { > op0 = simplify_gen_unary (ZERO_EXTEND, tmode, op0, mode); > op1 = simplify_gen_unary (ZERO_EXTEND, tmode, op1, mode); > } > else > { > op0 = simplify_gen_unary (SIGN_EXTEND, tmode, op0, mode); > op1 = simplify_gen_unary (SIGN_EXTEND, tmode, op1, mode); > } > break; > } > } > } > > > > > > > > *pop0 = op0; > *pop1 = op1; > > return code; >} > > > >static int >count_rtxs (rtx x) >{ > enum rtx_code code = ((enum rtx_code) (x)->code); > const char *fmt; > int i, j, ret = 1; > > if ((rtx_class[(int) (code)]) == '2' > || (rtx_class[(int) (code)]) == 'c') > { > rtx x0 = (((x)->u.fld[0]).rt_rtx); > rtx x1 = (((x)->u.fld[1]).rt_rtx); > > if (x0 == x1) > return 1 + 2 * count_rtxs (x0); > > if (((rtx_class[(int) (((enum rtx_code) (x1)->code))]) == '2' > || (rtx_class[(int) (((enum rtx_code) (x1)->code))]) == 'c') > && (x0 == (((x1)->u.fld[0]).rt_rtx) || x0 == (((x1)->u.fld[1]).rt_rtx))) > return 2 + 2 * count_rtxs (x0) > + count_rtxs (x == (((x1)->u.fld[0]).rt_rtx) > ? (((x1)->u.fld[1]).rt_rtx) : (((x1)->u.fld[0]).rt_rtx)); > > if (((rtx_class[(int) (((enum rtx_code) (x0)->code))]) == '2' > || (rtx_class[(int) (((enum rtx_code) (x0)->code))]) == 'c') > && (x1 == (((x0)->u.fld[0]).rt_rtx) || x1 == (((x0)->u.fld[1]).rt_rtx))) > return 2 + 2 * count_rtxs (x1) > + count_rtxs (x == (((x0)->u.fld[0]).rt_rtx) > ? (((x0)->u.fld[1]).rt_rtx) : (((x0)->u.fld[0]).rt_rtx)); > } > > fmt = (rtx_format[(int) (code)]); > for (i = (rtx_length[(int) (code)]) - 1; i >= 0; i--) > if (fmt[i] == 'e') > ret += count_rtxs ((((x)->u.fld[i]).rt_rtx)); > else if (fmt[i] == 'E') > for (j = 0; j < (((((x)->u.fld[i]).rt_rtvec))->num_elem); j++) > ret += count_rtxs ((((((x)->u.fld[i]).rt_rtvec))->elem[j])); > > return ret; >} > > > > > >static void >update_table_tick (rtx x) >{ > enum rtx_code code = ((enum rtx_code) (x)->code); > const char *fmt = (rtx_format[(int) (code)]); > int i, j; > > if (code == REG) > { > unsigned int regno = (rhs_regno(x)); > unsigned int endregno = (((((rhs_regno(x))) < 114)) ? end_hard_regno (((enum machine_mode) (x)->mode), (rhs_regno(x))) : (rhs_regno(x)) + 1); > unsigned int r; > > for (r = regno; r < endregno; r++) > { > reg_stat_type *rsp = (VEC_reg_stat_type_base_index(((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),r )); > rsp->last_set_table_tick = label_tick; > } > > return; > } > > for (i = (rtx_length[(int) (code)]) - 1; i >= 0; i--) > if (fmt[i] == 'e') > { > > > > if (i == 0 && (((rtx_class[(int) (((enum rtx_code) (x)->code))]) & (~1)) == (RTX_COMM_ARITH & (~1)))) > { > > > rtx x0 = (((x)->u.fld[0]).rt_rtx); > rtx x1 = (((x)->u.fld[1]).rt_rtx); > > > > if (x0 == x1) > break; > > > > > if ((((rtx_class[(int) (((enum rtx_code) (x1)->code))]) & (~1)) == (RTX_COMM_ARITH & (~1))) > && (x0 == (((x1)->u.fld[0]).rt_rtx) || x0 == (((x1)->u.fld[1]).rt_rtx))) > break; > > > > if ((((rtx_class[(int) (((enum rtx_code) (x0)->code))]) & (~1)) == (RTX_COMM_ARITH & (~1))) > && (x1 == (((x0)->u.fld[0]).rt_rtx) || x1 == (((x0)->u.fld[1]).rt_rtx))) > { > update_table_tick ((((x0)->u.fld[x1 == (((x0)->u.fld[0]).rt_rtx) ? 1 : 0]).rt_rtx)); > break; > } > } > > update_table_tick ((((x)->u.fld[i]).rt_rtx)); > } > else if (fmt[i] == 'E') > for (j = 0; j < (((((x)->u.fld[i]).rt_rtvec))->num_elem); j++) > update_table_tick ((((((x)->u.fld[i]).rt_rtvec))->elem[j])); >} > > > > > > > >static void >record_value_for_reg (rtx reg, rtx insn, rtx value) >{ > unsigned int regno = (rhs_regno(reg)); > unsigned int endregno = (((((rhs_regno(reg))) < 114)) ? end_hard_regno (((enum machine_mode) (reg)->mode), (rhs_regno(reg))) : (rhs_regno(reg)) + 1); > unsigned int i; > reg_stat_type *rsp; > > > > if (value && insn && reg_overlap_mentioned_p (reg, value)) > { > rtx tem; > > > > subst_low_luid = ((((df->insns[((((insn)->u.fld[0]).rt_int))]))->luid)); > tem = get_last_value (reg); > > > > > > if (tem) > { > if ((((rtx_class[(int) (((enum rtx_code) (tem)->code))]) & (~1)) == (RTX_COMM_ARITH & (~1))) > && ((enum rtx_code) ((((tem)->u.fld[0]).rt_rtx))->code) == CLOBBER > && ((enum rtx_code) ((((tem)->u.fld[1]).rt_rtx))->code) == CLOBBER) > tem = (((tem)->u.fld[0]).rt_rtx); > else if (count_occurrences (value, reg, 1) >= 2) > { > > > if (count_rtxs (tem) > ((int) global_options.x_param_values[(int) PARAM_MAX_LAST_VALUE_RTL])) > tem = gen_rtx_fmt_e_stat (CLOBBER, (((enum machine_mode) (tem)->mode)), ((const_int_rtx[64])) ); > } > > value = replace_rtx (copy_rtx (value), reg, tem); > } > } > > > > > > for (i = regno; i < endregno; i++) > { > rsp = (VEC_reg_stat_type_base_index(((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),i )); > > if (insn) > rsp->last_set = insn; > > rsp->last_set_value = 0; > rsp->last_set_mode = VOIDmode; > rsp->last_set_nonzero_bits = 0; > rsp->last_set_sign_bit_copies = 0; > rsp->last_death = 0; > rsp->truncated_to_mode = VOIDmode; > } > > > if (value) > update_table_tick (value); ># 12338 "../../gcc/combine.c" > for (i = regno; i < endregno; i++) > { > rsp = (VEC_reg_stat_type_base_index(((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),i )); > rsp->last_set_label = label_tick; > if (!insn > || (value && rsp->last_set_table_tick >= label_tick_ebb_start)) > rsp->last_set_invalid = 1; > else > rsp->last_set_invalid = 0; > } > > > > > rsp = (VEC_reg_stat_type_base_index(((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),regno )); > if (value && !get_last_value_validate (&value, insn, label_tick, 0)) > { > value = copy_rtx (value); > if (!get_last_value_validate (&value, insn, label_tick, 1)) > value = 0; > } > > > > > rsp->last_set_value = value; > > if (value) > { > enum machine_mode mode = ((enum machine_mode) (reg)->mode); > subst_low_luid = ((((df->insns[((((insn)->u.fld[0]).rt_int))]))->luid)); > rsp->last_set_mode = mode; > if (((enum mode_class) mode_class[mode]) == MODE_INT > && ((((enum mode_class) mode_class[mode]) == MODE_INT || ((enum mode_class) mode_class[mode]) == MODE_PARTIAL_INT) && mode_precision[mode] <= (8 * 8))) > mode = nonzero_bits_mode; > rsp->last_set_nonzero_bits = nonzero_bits (value, mode); > rsp->last_set_sign_bit_copies > = num_sign_bit_copies (value, ((enum machine_mode) (reg)->mode)); > } >} > > > > > >static void >record_dead_and_set_regs_1 (rtx dest, const_rtx setter, void *data) >{ > rtx record_dead_insn = (rtx) data; > > if (((enum rtx_code) (dest)->code) == SUBREG) > dest = (((dest)->u.fld[0]).rt_rtx); > > if (!record_dead_insn) > { > if ((((enum rtx_code) (dest)->code) == REG)) > record_value_for_reg (dest, (rtx) 0, (rtx) 0); > return; > } > > if ((((enum rtx_code) (dest)->code) == REG)) > { > > > > if (((enum rtx_code) (setter)->code) == SET && dest == (((setter)->u.fld[0]).rt_rtx)) > record_value_for_reg (dest, record_dead_insn, (((setter)->u.fld[1]).rt_rtx)); > else if (((enum rtx_code) (setter)->code) == SET > && ((enum rtx_code) ((((setter)->u.fld[0]).rt_rtx))->code) == SUBREG > && ((((((setter)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx) == dest > && mode_precision[((enum machine_mode) (dest)->mode)] <= (8 * (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)) > && subreg_lowpart_p ((((setter)->u.fld[0]).rt_rtx))) > record_value_for_reg (dest, record_dead_insn, > rtl_hooks.gen_lowpart (((enum machine_mode) (dest)->mode), > (((setter)->u.fld[1]).rt_rtx))); > else > record_value_for_reg (dest, record_dead_insn, (rtx) 0); > } > else if ((((enum rtx_code) (dest)->code) == MEM) > > && ! push_operand (dest, ((enum machine_mode) (dest)->mode))) > mem_last_set = ((((df->insns[((((record_dead_insn)->u.fld[0]).rt_int))]))->luid)); >} ># 12432 "../../gcc/combine.c" >static void >record_dead_and_set_regs (rtx insn) >{ > rtx link; > unsigned int i; > > for (link = (((insn)->u.fld[7]).rt_rtx); link; link = (((link)->u.fld[1]).rt_rtx)) > { > if (((enum reg_note) ((enum machine_mode) (link)->mode)) == REG_DEAD > && (((enum rtx_code) ((((link)->u.fld[0]).rt_rtx))->code) == REG)) > { > unsigned int regno = (rhs_regno((((link)->u.fld[0]).rt_rtx))); > unsigned int endregno = (((((rhs_regno((((link)->u.fld[0]).rt_rtx)))) < 114)) ? end_hard_regno (((enum machine_mode) ((((link)->u.fld[0]).rt_rtx))->mode), (rhs_regno((((link)->u.fld[0]).rt_rtx)))) : (rhs_regno((((link)->u.fld[0]).rt_rtx))) + 1); > > for (i = regno; i < endregno; i++) > { > reg_stat_type *rsp; > > rsp = (VEC_reg_stat_type_base_index(((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),i )); > rsp->last_death = insn; > } > } > else if (((enum reg_note) ((enum machine_mode) (link)->mode)) == REG_INC) > record_value_for_reg ((((link)->u.fld[0]).rt_rtx), insn, (rtx) 0); > } > > if ((((enum rtx_code) (insn)->code) == CALL_INSN)) > { > for (i = 0; i < 114; i++) > if ((!!((((&default_target_hard_regs)->x_regs_invalidated_by_call))[(i) / ((unsigned) (8 * 4))] & (((HARD_REG_ELT_TYPE) (1)) << ((i) % ((unsigned) (8 * 4))))))) > { > reg_stat_type *rsp; > > rsp = (VEC_reg_stat_type_base_index(((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),i )); > rsp->last_set_invalid = 1; > rsp->last_set = insn; > rsp->last_set_value = 0; > rsp->last_set_mode = VOIDmode; > rsp->last_set_nonzero_bits = 0; > rsp->last_set_sign_bit_copies = 0; > rsp->last_death = 0; > rsp->truncated_to_mode = VOIDmode; > } > > last_call_luid = mem_last_set = ((((df->insns[((((insn)->u.fld[0]).rt_int))]))->luid)); > > > > > > note_stores ((((insn)->u.fld[4]).rt_rtx), record_dead_and_set_regs_1, (rtx) 0); > } > else > note_stores ((((insn)->u.fld[4]).rt_rtx), record_dead_and_set_regs_1, insn); >} ># 12497 "../../gcc/combine.c" >static void >record_promoted_value (rtx insn, rtx subreg) >{ > struct insn_link *links; > rtx set; > unsigned int regno = (rhs_regno((((subreg)->u.fld[0]).rt_rtx))); > enum machine_mode mode = ((enum machine_mode) (subreg)->mode); > > if (mode_precision[mode] > (8 * 8)) > return; > > for (links = (uid_log_links[(((insn)->u.fld[0]).rt_int)]); links;) > { > reg_stat_type *rsp; > > insn = links->insn; > set = (((((enum rtx_code) (insn)->code) == INSN) || (((enum rtx_code) (insn)->code) == DEBUG_INSN) || (((enum rtx_code) (insn)->code) == JUMP_INSN) || (((enum rtx_code) (insn)->code) == CALL_INSN)) ? (((enum rtx_code) ((((insn)->u.fld[4]).rt_rtx))->code) == SET ? (((insn)->u.fld[4]).rt_rtx) : single_set_2 (insn, (((insn)->u.fld[4]).rt_rtx))) : (rtx) 0); > > if (! set || !(((enum rtx_code) ((((set)->u.fld[0]).rt_rtx))->code) == REG) > || (rhs_regno((((set)->u.fld[0]).rt_rtx))) != regno > || ((enum machine_mode) ((((set)->u.fld[0]).rt_rtx))->mode) != ((enum machine_mode) ((((subreg)->u.fld[0]).rt_rtx))->mode)) > { > links = links->next; > continue; > } > > rsp = (VEC_reg_stat_type_base_index(((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),regno )); > if (rsp->last_set == insn) > { > if (((((subreg))->volatil) ? -1 : (int) (subreg)->unchanging) > 0) > rsp->last_set_nonzero_bits &= mode_mask_array[mode]; > } > > if ((((enum rtx_code) ((((set)->u.fld[1]).rt_rtx))->code) == REG)) > { > regno = (rhs_regno((((set)->u.fld[1]).rt_rtx))); > links = (uid_log_links[(((insn)->u.fld[0]).rt_int)]); > } > else > break; > } >} > > > > > > >static unsigned char >reg_truncated_to_mode (enum machine_mode mode, const_rtx x) >{ > reg_stat_type *rsp = (VEC_reg_stat_type_base_index(((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),(rhs_regno(x)) )); > enum machine_mode truncated = rsp->truncated_to_mode; > > if (truncated == 0 > || rsp->truncation_label < label_tick_ebb_start) > return 0; > if (((unsigned short) mode_size[truncated]) <= ((unsigned short) mode_size[mode])) > return 1; > if (1) > return 1; > return 0; >} > > > > > > >static int >record_truncated_value (rtx *p, void *data __attribute__ ((__unused__))) >{ > rtx x = *p; > enum machine_mode truncated_mode; > reg_stat_type *rsp; > > if (((enum rtx_code) (x)->code) == SUBREG && (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == REG)) > { > enum machine_mode original_mode = ((enum machine_mode) ((((x)->u.fld[0]).rt_rtx))->mode); > truncated_mode = ((enum machine_mode) (x)->mode); > > if (((unsigned short) mode_size[original_mode]) <= ((unsigned short) mode_size[truncated_mode])) > return -1; > > if (1) > return -1; > > x = (((x)->u.fld[0]).rt_rtx); > } > > > else if ((((enum rtx_code) (x)->code) == REG) && (rhs_regno(x)) < 114) > truncated_mode = ((enum machine_mode) (x)->mode); > else > return 0; > > rsp = (VEC_reg_stat_type_base_index(((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),(rhs_regno(x)) )); > if (rsp->truncated_to_mode == 0 > || rsp->truncation_label < label_tick_ebb_start > || (((unsigned short) mode_size[truncated_mode]) > < ((unsigned short) mode_size[rsp->truncated_to_mode]))) > { > rsp->truncated_to_mode = truncated_mode; > rsp->truncation_label = label_tick; > } > > return -1; >} > > > > > >static void >record_truncated_values (rtx *x, void *data __attribute__ ((__unused__))) >{ > for_each_rtx (x, record_truncated_value, ((void *)0)); >} > > > > >static void >check_promoted_subreg (rtx insn, rtx x) >{ > if (((enum rtx_code) (x)->code) == SUBREG > && (((x))->in_struct) > && (((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == REG)) > record_promoted_value (insn, x); > else > { > const char *format = (rtx_format[(int) (((enum rtx_code) (x)->code))]); > int i, j; > > for (i = 0; i < (rtx_length[(int) (((enum rtx_code) (x)->code))]); i++) > switch (format[i]) > { > case 'e': > check_promoted_subreg (insn, (((x)->u.fld[i]).rt_rtx)); > break; > case 'V': > case 'E': > if ((((x)->u.fld[i]).rt_rtvec) != 0) > for (j = 0; j < (((((x)->u.fld[i]).rt_rtvec))->num_elem); j++) > check_promoted_subreg (insn, (((((x)->u.fld[i]).rt_rtvec))->elem[j])); > break; > } > } >} ># 12656 "../../gcc/combine.c" >static int >get_last_value_validate (rtx *loc, rtx insn, int tick, int replace) >{ > rtx x = *loc; > const char *fmt = (rtx_format[(int) (((enum rtx_code) (x)->code))]); > int len = (rtx_length[(int) (((enum rtx_code) (x)->code))]); > int i, j; > > if ((((enum rtx_code) (x)->code) == REG)) > { > unsigned int regno = (rhs_regno(x)); > unsigned int endregno = (((((rhs_regno(x))) < 114)) ? end_hard_regno (((enum machine_mode) (x)->mode), (rhs_regno(x))) : (rhs_regno(x)) + 1); > unsigned int j; > > for (j = regno; j < endregno; j++) > { > reg_stat_type *rsp = (VEC_reg_stat_type_base_index(((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),j )); > if (rsp->last_set_invalid > > > || (! (regno >= 114 > && REG_N_SETS (regno) == 1 > && (!bitmap_bit_p ((&(df_lr_get_bb_info((((cfun + 0)->cfg->x_entry_block_ptr)->next_bb)->index))->in), regno) > )) > && rsp->last_set_label > tick)) > { > if (replace) > *loc = gen_rtx_fmt_e_stat (CLOBBER, (((enum machine_mode) (x)->mode)), ((const_int_rtx[64])) ); > return replace; > } > } > > return 1; > } > > > > > else if ((((enum rtx_code) (x)->code) == MEM) && !(((x))->unchanging) > && (tick != label_tick || ((((df->insns[((((insn)->u.fld[0]).rt_int))]))->luid)) <= mem_last_set)) > { > if (replace) > *loc = gen_rtx_fmt_e_stat (CLOBBER, (((enum machine_mode) (x)->mode)), ((const_int_rtx[64])) ); > return replace; > } > > for (i = 0; i < len; i++) > { > if (fmt[i] == 'e') > { > > > > if (i == 1 && (((rtx_class[(int) (((enum rtx_code) (x)->code))]) & (~1)) == (RTX_COMM_ARITH & (~1)))) > { > > > rtx x0 = (((x)->u.fld[0]).rt_rtx); > rtx x1 = (((x)->u.fld[1]).rt_rtx); > > > if (x0 == x1) > return 1; > > > > > if ((((rtx_class[(int) (((enum rtx_code) (x0)->code))]) & (~1)) == (RTX_COMM_ARITH & (~1))) > && (x1 == (((x0)->u.fld[0]).rt_rtx) || x1 == (((x0)->u.fld[1]).rt_rtx))) > return 1; > > > > if ((((rtx_class[(int) (((enum rtx_code) (x1)->code))]) & (~1)) == (RTX_COMM_ARITH & (~1))) > && (x0 == (((x1)->u.fld[0]).rt_rtx) || x0 == (((x1)->u.fld[1]).rt_rtx))) > return > get_last_value_validate (&(((x1)->u.fld[x0 == (((x1)->u.fld[0]).rt_rtx) ? 1 : 0]).rt_rtx) > , > insn, tick, replace); > } > > if (get_last_value_validate (&(((x)->u.fld[i]).rt_rtx), insn, tick, > replace) == 0) > return 0; > } > else if (fmt[i] == 'E') > for (j = 0; j < (((((x)->u.fld[i]).rt_rtvec))->num_elem); j++) > if (get_last_value_validate (&(((((x)->u.fld[i]).rt_rtvec))->elem[j]), > insn, tick, replace) == 0) > return 0; > } > > > return 1; >} > > > > > >static rtx >get_last_value (const_rtx x) >{ > unsigned int regno; > rtx value; > reg_stat_type *rsp; > > > > > if (((enum rtx_code) (x)->code) == SUBREG > && subreg_lowpart_p (x) > && !paradoxical_subreg_p (x) > && (value = get_last_value ((((x)->u.fld[0]).rt_rtx))) != 0) > return rtl_hooks.gen_lowpart (((enum machine_mode) (x)->mode), value); > > if (!(((enum rtx_code) (x)->code) == REG)) > return 0; > > regno = (rhs_regno(x)); > rsp = (VEC_reg_stat_type_base_index(((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),regno )); > value = rsp->last_set_value; ># 12789 "../../gcc/combine.c" > if (value == 0 > || (rsp->last_set_label < label_tick_ebb_start > && (regno < 114 > || REG_N_SETS (regno) != 1 > || bitmap_bit_p ((&(df_lr_get_bb_info((((cfun + 0)->cfg->x_entry_block_ptr)->next_bb)->index))->in), regno) > ))) > return 0; > > > > if (rsp->last_set_label == label_tick > && ((((df->insns[((((rsp->last_set)->u.fld[0]).rt_int))]))->luid)) >= subst_low_luid) > return 0; > > > if (get_last_value_validate (&value, rsp->last_set, rsp->last_set_label, 0)) > return value; > > > > > value = copy_rtx (value); > if (get_last_value_validate (&value, rsp->last_set, rsp->last_set_label, 1)) > return value; > > return 0; >} > > > > >static int >use_crosses_set_p (const_rtx x, int from_luid) >{ > const char *fmt; > int i; > enum rtx_code code = ((enum rtx_code) (x)->code); > > if (code == REG) > { > unsigned int regno = (rhs_regno(x)); > unsigned endreg = (((((rhs_regno(x))) < 114)) ? end_hard_regno (((enum machine_mode) (x)->mode), (rhs_regno(x))) : (rhs_regno(x)) + 1); > > > > > > > > for (; regno < endreg; regno++) > { > reg_stat_type *rsp = (VEC_reg_stat_type_base_index(((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),regno )); > if (rsp->last_set > && rsp->last_set_label == label_tick > && ((((df->insns[((((rsp->last_set)->u.fld[0]).rt_int))]))->luid)) > from_luid) > return 1; > } > return 0; > } > > if (code == MEM && mem_last_set > from_luid) > return 1; > > fmt = (rtx_format[(int) (code)]); > > for (i = (rtx_length[(int) (code)]) - 1; i >= 0; i--) > { > if (fmt[i] == 'E') > { > int j; > for (j = (((((x)->u.fld[i]).rt_rtvec))->num_elem) - 1; j >= 0; j--) > if (use_crosses_set_p ((((((x)->u.fld[i]).rt_rtvec))->elem[j]), from_luid)) > return 1; > } > else if (fmt[i] == 'e' > && use_crosses_set_p ((((x)->u.fld[i]).rt_rtx), from_luid)) > return 1; > } > return 0; >} > > > > >static unsigned int reg_dead_regno, reg_dead_endregno; >static int reg_dead_flag; > > > > > > >static void >reg_dead_at_p_1 (rtx dest, const_rtx x, void *data __attribute__ ((__unused__))) >{ > unsigned int regno, endregno; > > if (!(((enum rtx_code) (dest)->code) == REG)) > return; > > regno = (rhs_regno(dest)); > endregno = (((((rhs_regno(dest))) < 114)) ? end_hard_regno (((enum machine_mode) (dest)->mode), (rhs_regno(dest))) : (rhs_regno(dest)) + 1); > if (reg_dead_endregno > regno && reg_dead_regno < endregno) > reg_dead_flag = (((enum rtx_code) (x)->code) == CLOBBER) ? 1 : -1; >} ># 12903 "../../gcc/combine.c" >static int >reg_dead_at_p (rtx reg, rtx insn) >{ > basic_block block; > unsigned int i; > > > reg_dead_regno = (rhs_regno(reg)); > reg_dead_endregno = (((((rhs_regno(reg))) < 114)) ? end_hard_regno (((enum machine_mode) (reg)->mode), (rhs_regno(reg))) : (rhs_regno(reg)) + 1); > > reg_dead_flag = 0; > > > > > if (reg_dead_regno < 114) > { > for (i = reg_dead_regno; i < reg_dead_endregno; i++) > if (!((&default_target_hard_regs)->x_fixed_regs)[i] && (!!((newpat_used_regs)[(i) / ((unsigned) (8 * 4))] & (((HARD_REG_ELT_TYPE) (1)) << ((i) % ((unsigned) (8 * 4))))))) > return 0; > } > > > > block = (((insn)->u.fld[3]).rt_bb); > for (;;) > { > if (((((enum rtx_code) (insn)->code) == INSN) || (((enum rtx_code) (insn)->code) == DEBUG_INSN) || (((enum rtx_code) (insn)->code) == JUMP_INSN) || (((enum rtx_code) (insn)->code) == CALL_INSN))) > { > note_stores ((((insn)->u.fld[4]).rt_rtx), reg_dead_at_p_1, ((void *)0)); > if (reg_dead_flag) > return reg_dead_flag == 1 ? 1 : 0; > > if (find_regno_note (insn, REG_DEAD, reg_dead_regno)) > return 1; > } > > if (insn == (block)->il.rtl->head_) > break; > > insn = (((insn)->u.fld[1]).rt_rtx); > } > > > for (i = reg_dead_regno; i < reg_dead_endregno; i++) > if (bitmap_bit_p (df_get_live_in (block), i)) > return 0; > > return 1; >} > > > >static void >mark_used_regs_combine (rtx x) >{ > enum rtx_code code = ((enum rtx_code) (x)->code); > unsigned int regno; > int i; > > switch (code) > { > case LABEL_REF: > case SYMBOL_REF: > case CONST_INT: > case CONST: > case CONST_DOUBLE: > case CONST_VECTOR: > case PC: > case ADDR_VEC: > case ADDR_DIFF_VEC: > case ASM_INPUT: > > > > > > return; > > case CLOBBER: > > > if ((((enum rtx_code) ((((x)->u.fld[0]).rt_rtx))->code) == MEM)) > mark_used_regs_combine (((((((x)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx)); > return; > > case REG: > regno = (rhs_regno(x)); > > > if (regno < 114) > { > > if (regno == 1 > > || regno == 31 > > > || (regno == 67 && ((&default_target_hard_regs)->x_fixed_regs)[regno]) > > || regno == 113) > return; > > add_to_hard_reg_set (&newpat_used_regs, ((enum machine_mode) (x)->mode), regno); > } > return; > > case SET: > { > > > rtx testreg = (((x)->u.fld[0]).rt_rtx); > > while (((enum rtx_code) (testreg)->code) == SUBREG > || ((enum rtx_code) (testreg)->code) == ZERO_EXTRACT > || ((enum rtx_code) (testreg)->code) == STRICT_LOW_PART) > testreg = (((testreg)->u.fld[0]).rt_rtx); > > if ((((enum rtx_code) (testreg)->code) == MEM)) > mark_used_regs_combine ((((testreg)->u.fld[0]).rt_rtx)); > > mark_used_regs_combine ((((x)->u.fld[1]).rt_rtx)); > } > return; > > default: > break; > } > > > > { > const char *fmt = (rtx_format[(int) (code)]); > > for (i = (rtx_length[(int) (code)]) - 1; i >= 0; i--) > { > if (fmt[i] == 'e') > mark_used_regs_combine ((((x)->u.fld[i]).rt_rtx)); > else if (fmt[i] == 'E') > { > int j; > > for (j = 0; j < (((((x)->u.fld[i]).rt_rtvec))->num_elem); j++) > mark_used_regs_combine ((((((x)->u.fld[i]).rt_rtvec))->elem[j])); > } > } > } >} > > > > > >rtx >remove_death (unsigned int regno, rtx insn) >{ > rtx note = find_regno_note (insn, REG_DEAD, regno); > > if (note) > remove_note (insn, note); > > return note; >} ># 13077 "../../gcc/combine.c" >static void >move_deaths (rtx x, rtx maybe_kill_insn, int from_luid, rtx to_insn, > rtx *pnotes) >{ > const char *fmt; > int len, i; > enum rtx_code code = ((enum rtx_code) (x)->code); > > if (code == REG) > { > unsigned int regno = (rhs_regno(x)); > rtx where_dead = (VEC_reg_stat_type_base_index(((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),regno ))->last_death; > > > if (maybe_kill_insn && reg_set_p (x, maybe_kill_insn) > && ! reg_referenced_p (x, maybe_kill_insn)) > return; > > if (where_dead > && (((where_dead)->u.fld[3]).rt_bb) == (((to_insn)->u.fld[3]).rt_bb) > && ((((df->insns[((((where_dead)->u.fld[0]).rt_int))]))->luid)) >= from_luid > && ((((df->insns[((((where_dead)->u.fld[0]).rt_int))]))->luid)) < ((((df->insns[((((to_insn)->u.fld[0]).rt_int))]))->luid))) > { > rtx note = remove_death (regno, where_dead); ># 13111 "../../gcc/combine.c" > if (note != 0 && regno < 114 > && (((unsigned short) mode_size[((enum machine_mode) ((((note)->u.fld[0]).rt_rtx))->mode)]) > > ((unsigned short) mode_size[((enum machine_mode) (x)->mode)]))) > { > unsigned int deadregno = (rhs_regno((((note)->u.fld[0]).rt_rtx))); > unsigned int deadend = end_hard_regno (((enum machine_mode) ((((note)->u.fld[0]).rt_rtx))->mode), (rhs_regno((((note)->u.fld[0]).rt_rtx)))); > unsigned int ourend = end_hard_regno (((enum machine_mode) (x)->mode), (rhs_regno(x))); > unsigned int i; > > for (i = deadregno; i < deadend; i++) > if (i < regno || i >= ourend) > add_reg_note (where_dead, REG_DEAD, regno_reg_rtx[i]); > } > > > > > > > else if ((note == 0 > || (note != 0 > && (((unsigned short) mode_size[((enum machine_mode) ((((note)->u.fld[0]).rt_rtx))->mode)]) > < ((unsigned short) mode_size[((enum machine_mode) (x)->mode)])))) > && regno < 114 > && ((&default_target_regs)->x_hard_regno_nregs)[regno][((enum machine_mode) (x)->mode)] > 1) > { > unsigned int ourend = end_hard_regno (((enum machine_mode) (x)->mode), (rhs_regno(x))); > unsigned int i, offset; > rtx oldnotes = 0; > > if (note) > offset = ((&default_target_regs)->x_hard_regno_nregs)[regno][((enum machine_mode) ((((note)->u.fld[0]).rt_rtx))->mode)]; > else > offset = 1; > > for (i = regno + offset; i < ourend; i++) > move_deaths (regno_reg_rtx[i], > maybe_kill_insn, from_luid, to_insn, &oldnotes); > } > > if (note != 0 && ((enum machine_mode) ((((note)->u.fld[0]).rt_rtx))->mode) == ((enum machine_mode) (x)->mode)) > { > (((note)->u.fld[1]).rt_rtx) = *pnotes; > *pnotes = note; > } > else > *pnotes = alloc_reg_note (REG_DEAD, x, *pnotes); > } > > return; > } > > else if (((enum rtx_code) (x)->code) == SET) > { > rtx dest = (((x)->u.fld[0]).rt_rtx); > > move_deaths ((((x)->u.fld[1]).rt_rtx), maybe_kill_insn, from_luid, to_insn, pnotes); > > > > > > > > if (((enum rtx_code) (dest)->code) == ZERO_EXTRACT > || ((enum rtx_code) (dest)->code) == STRICT_LOW_PART > || (((enum rtx_code) (dest)->code) == SUBREG > && (((((unsigned short) mode_size[((enum machine_mode) (dest)->mode)]) > + (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8) - 1) / (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8)) > == ((((unsigned short) mode_size[((enum machine_mode) ((((dest)->u.fld[0]).rt_rtx))->mode)]) > + (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8) - 1) / (! ((global_options.x_target_flags & (1 << 23)) != 0) ? 4 : 8))))) > { > move_deaths (dest, maybe_kill_insn, from_luid, to_insn, pnotes); > return; > } > > > > if (((enum rtx_code) (dest)->code) == SUBREG) > dest = (((dest)->u.fld[0]).rt_rtx); > > > > > > if ((((enum rtx_code) (dest)->code) == MEM)) > move_deaths ((((dest)->u.fld[0]).rt_rtx), maybe_kill_insn, from_luid, > to_insn, pnotes); > return; > } > > else if (((enum rtx_code) (x)->code) == CLOBBER) > return; > > len = (rtx_length[(int) (code)]); > fmt = (rtx_format[(int) (code)]); > > for (i = 0; i < len; i++) > { > if (fmt[i] == 'E') > { > int j; > for (j = (((((x)->u.fld[i]).rt_rtvec))->num_elem) - 1; j >= 0; j--) > move_deaths ((((((x)->u.fld[i]).rt_rtvec))->elem[j]), maybe_kill_insn, from_luid, > to_insn, pnotes); > } > else if (fmt[i] == 'e') > move_deaths ((((x)->u.fld[i]).rt_rtx), maybe_kill_insn, from_luid, to_insn, pnotes); > } >} > > > > >static int >reg_bitfield_target_p (rtx x, rtx body) >{ > int i; > > if (((enum rtx_code) (body)->code) == SET) > { > rtx dest = (((body)->u.fld[0]).rt_rtx); > rtx target; > unsigned int regno, tregno, endregno, endtregno; > > if (((enum rtx_code) (dest)->code) == ZERO_EXTRACT) > target = (((dest)->u.fld[0]).rt_rtx); > else if (((enum rtx_code) (dest)->code) == STRICT_LOW_PART) > target = ((((((dest)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx); > else > return 0; > > if (((enum rtx_code) (target)->code) == SUBREG) > target = (((target)->u.fld[0]).rt_rtx); > > if (!(((enum rtx_code) (target)->code) == REG)) > return 0; > > tregno = (rhs_regno(target)), regno = (rhs_regno(x)); > if (tregno >= 114 || regno >= 114) > return target == x; > > endtregno = end_hard_regno (((enum machine_mode) (target)->mode), tregno); > endregno = end_hard_regno (((enum machine_mode) (x)->mode), regno); > > return endregno > tregno && regno < endtregno; > } > > else if (((enum rtx_code) (body)->code) == PARALLEL) > for (i = (((((body)->u.fld[0]).rt_rtvec))->num_elem) - 1; i >= 0; i--) > if (reg_bitfield_target_p (x, (((((body)->u.fld[0]).rt_rtvec))->elem[i]))) > return 1; > > return 0; >} ># 13278 "../../gcc/combine.c" >static void >distribute_notes (rtx notes, rtx from_insn, rtx i3, rtx i2, rtx elim_i2, > rtx elim_i1, rtx elim_i0) >{ > rtx note, next_note; > rtx tem; > > for (note = notes; note; note = next_note) > { > rtx place = 0, place2 = 0; > > next_note = (((note)->u.fld[1]).rt_rtx); > switch (((enum reg_note) ((enum machine_mode) (note)->mode))) > { > case REG_BR_PROB: > case REG_BR_PRED: > > > > place = i3; > break; > > case REG_NON_LOCAL_GOTO: > if ((((enum rtx_code) (i3)->code) == JUMP_INSN)) > place = i3; > else > { > ((void)(!(i2 && (((enum rtx_code) (i2)->code) == JUMP_INSN)) ? fancy_abort ("../../gcc/combine.c", 13305, __FUNCTION__), 0 : 0)); > place = i2; > } > break; > > case REG_EH_REGION: > > if ((((enum rtx_code) (i3)->code) == CALL_INSN)) > place = i3; > else if (i2 && (((enum rtx_code) (i2)->code) == CALL_INSN)) > place = i2; > else > { > ((void)(!((cfun + 0)->can_throw_non_call_exceptions) ? fancy_abort ("../../gcc/combine.c", 13318, __FUNCTION__), 0 : 0)); > if (may_trap_p (i3)) > place = i3; > else if (i2 && may_trap_p (i2)) > place = i2; > > > > } > break; > > case REG_ARGS_SIZE: > > > if (!noop_move_p (i3)) > { > int old_size, args_size = (((((note)->u.fld[0]).rt_rtx))->u.hwint[0]); > > > if ((((enum rtx_code) (i3)->code) == CALL_INSN)) > { > rtx *np; > for (np = &next_note; *np; np = &(((*np)->u.fld[1]).rt_rtx)) > if (((enum reg_note) ((enum machine_mode) (*np)->mode)) == REG_NORETURN) > { > rtx n = *np; > *np = (((n)->u.fld[1]).rt_rtx); > (((n)->u.fld[1]).rt_rtx) = (((i3)->u.fld[7]).rt_rtx); > (((i3)->u.fld[7]).rt_rtx) = n; > break; > } > } > old_size = fixup_args_size_notes ((((i3)->u.fld[1]).rt_rtx), i3, args_size); > > > ((void)(!(old_size != args_size || ((((enum rtx_code) (i3)->code) == CALL_INSN) && !1 && find_reg_note (i3, REG_NORETURN, (rtx) 0))) ? fancy_abort ( > > > "../../gcc/combine.c" ># 13353 "../../gcc/combine.c" > , > > > 13356 ># 13353 "../../gcc/combine.c" > , __FUNCTION__), 0 : 0)) > > > ; > } > break; > > case REG_NORETURN: > case REG_SETJMP: > case REG_TM: > > > if ((((enum rtx_code) (i3)->code) == CALL_INSN)) > place = i3; > else > { > ((void)(!(i2 && (((enum rtx_code) (i2)->code) == CALL_INSN)) ? fancy_abort ("../../gcc/combine.c", 13369, __FUNCTION__), 0 : 0)); > place = i2; > } > break; > > case REG_UNUSED: ># 13392 "../../gcc/combine.c" > if (reg_set_p ((((note)->u.fld[0]).rt_rtx), (((i3)->u.fld[4]).rt_rtx))) > { > if (from_insn != i3) > break; > > if (! ((((enum rtx_code) ((((note)->u.fld[0]).rt_rtx))->code) == REG) > ? find_regno_note (i3, REG_UNUSED, (rhs_regno((((note)->u.fld[0]).rt_rtx)))) > : find_reg_note (i3, REG_UNUSED, (((note)->u.fld[0]).rt_rtx)))) > place = i3; > } > > > > else if (reg_referenced_p ((((note)->u.fld[0]).rt_rtx), (((i3)->u.fld[4]).rt_rtx)) > && ! ((((enum rtx_code) ((((note)->u.fld[0]).rt_rtx))->code) == REG) > ? find_regno_note (i3, REG_DEAD, > (rhs_regno((((note)->u.fld[0]).rt_rtx)))) > : find_reg_note (i3, REG_DEAD, (((note)->u.fld[0]).rt_rtx)))) > { > ((note)->mode = ((enum machine_mode) (REG_DEAD))); > place = i3; > } > break; > > case REG_EQUAL: > case REG_EQUIV: > case REG_NOALIAS: ># 13430 "../../gcc/combine.c" > if (from_insn == i3 > && ((((note)->u.fld[0]).rt_rtx) == 0 || ((rtx_class[(int) (((enum rtx_code) ((((note)->u.fld[0]).rt_rtx))->code))]) == RTX_CONST_OBJ))) > place = i3; > break; > > case REG_INC: > > > if (reg_mentioned_p ((((note)->u.fld[0]).rt_rtx), (((i3)->u.fld[4]).rt_rtx))) > place = i3; > > if (i2 && reg_mentioned_p ((((note)->u.fld[0]).rt_rtx), (((i2)->u.fld[4]).rt_rtx))) > { > if (place) > place2 = i2; > else > place = i2; > } > break; > > case REG_LABEL_TARGET: > case REG_LABEL_OPERAND: > > > > > if (reg_mentioned_p ((((note)->u.fld[0]).rt_rtx), (((i3)->u.fld[4]).rt_rtx)) > || ((tem = find_reg_note (i3, REG_EQUAL, (rtx) 0)) > && ((enum rtx_code) ((((tem)->u.fld[0]).rt_rtx))->code) == LABEL_REF > && ((((((tem)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx) == (((note)->u.fld[0]).rt_rtx))) > place = i3; > > if (i2 > && (reg_mentioned_p ((((note)->u.fld[0]).rt_rtx), (((i2)->u.fld[4]).rt_rtx)) > || ((tem = find_reg_note (i2, REG_EQUAL, (rtx) 0)) > && ((enum rtx_code) ((((tem)->u.fld[0]).rt_rtx))->code) == LABEL_REF > && ((((((tem)->u.fld[0]).rt_rtx))->u.fld[0]).rt_rtx) == (((note)->u.fld[0]).rt_rtx)))) > { > if (place) > place2 = i2; > else > place = i2; > } > > > > > if (place && (((enum rtx_code) (place)->code) == JUMP_INSN) > && ((enum reg_note) ((enum machine_mode) (note)->mode)) == REG_LABEL_TARGET > && ((((place)->u.fld[8]).rt_rtx) == ((void *)0) > || (((place)->u.fld[8]).rt_rtx) == (((note)->u.fld[0]).rt_rtx))) > { > rtx label = (((place)->u.fld[8]).rt_rtx); > > if (!label) > (((place)->u.fld[8]).rt_rtx) = (((note)->u.fld[0]).rt_rtx); > else if ((((enum rtx_code) (label)->code) == CODE_LABEL)) > (((label)->u.fld[5]).rt_int)--; > } > > if (place2 && (((enum rtx_code) (place2)->code) == JUMP_INSN) > && ((enum reg_note) ((enum machine_mode) (note)->mode)) == REG_LABEL_TARGET > && ((((place2)->u.fld[8]).rt_rtx) == ((void *)0) > || (((place2)->u.fld[8]).rt_rtx) == (((note)->u.fld[0]).rt_rtx))) > { > rtx label = (((place2)->u.fld[8]).rt_rtx); > > if (!label) > (((place2)->u.fld[8]).rt_rtx) = (((note)->u.fld[0]).rt_rtx); > else if ((((enum rtx_code) (label)->code) == CODE_LABEL)) > (((label)->u.fld[5]).rt_int)--; > place2 = 0; > } > break; > > case REG_NONNEG: > > > > > break; > > case REG_DEAD: ># 13535 "../../gcc/combine.c" > if (from_insn > && from_insn == i2mod > && !reg_overlap_mentioned_p ((((note)->u.fld[0]).rt_rtx), i2mod_new_rhs)) > tem = from_insn; > else > { > if (from_insn > && (((enum rtx_code) (from_insn)->code) == CALL_INSN) > && find_reg_fusage (from_insn, USE, (((note)->u.fld[0]).rt_rtx))) > place = from_insn; > else if (reg_referenced_p ((((note)->u.fld[0]).rt_rtx), (((i3)->u.fld[4]).rt_rtx))) > place = i3; > else if (i2 != 0 && next_nonnote_nondebug_insn (i2) == i3 > && reg_referenced_p ((((note)->u.fld[0]).rt_rtx), (((i2)->u.fld[4]).rt_rtx))) > place = i2; > else if ((rtx_equal_p ((((note)->u.fld[0]).rt_rtx), elim_i2) > && !(i2mod > && reg_overlap_mentioned_p ((((note)->u.fld[0]).rt_rtx), > i2mod_old_rhs))) > || rtx_equal_p ((((note)->u.fld[0]).rt_rtx), elim_i1) > || rtx_equal_p ((((note)->u.fld[0]).rt_rtx), elim_i0)) > break; > tem = i3; > } > > if (place == 0) > { > basic_block bb = this_basic_block; > > for (tem = (((tem)->u.fld[1]).rt_rtx); place == 0; tem = (((tem)->u.fld[1]).rt_rtx)) > { > if (!(((((enum rtx_code) (tem)->code) == INSN) || (((enum rtx_code) (tem)->code) == DEBUG_INSN) || (((enum rtx_code) (tem)->code) == JUMP_INSN) || (((enum rtx_code) (tem)->code) == CALL_INSN)) && !(((enum rtx_code) (tem)->code) == DEBUG_INSN))) > { > if (tem == (bb)->il.rtl->head_) > break; > continue; > } > > > > > > if (((rhs_regno((((note)->u.fld[0]).rt_rtx))) >= 114 > || !global_regs[(rhs_regno((((note)->u.fld[0]).rt_rtx)))]) > && reg_set_p ((((note)->u.fld[0]).rt_rtx), (((tem)->u.fld[4]).rt_rtx))) > { > rtx set = (((((enum rtx_code) (tem)->code) == INSN) || (((enum rtx_code) (tem)->code) == DEBUG_INSN) || (((enum rtx_code) (tem)->code) == JUMP_INSN) || (((enum rtx_code) (tem)->code) == CALL_INSN)) ? (((enum rtx_code) ((((tem)->u.fld[4]).rt_rtx))->code) == SET ? (((tem)->u.fld[4]).rt_rtx) : single_set_2 (tem, (((tem)->u.fld[4]).rt_rtx))) : (rtx) 0); > rtx inner_dest = 0; > > > > > if (set != 0) > for (inner_dest = (((set)->u.fld[0]).rt_rtx); > (((enum rtx_code) (inner_dest)->code) == STRICT_LOW_PART > || ((enum rtx_code) (inner_dest)->code) == SUBREG > || ((enum rtx_code) (inner_dest)->code) == ZERO_EXTRACT); > inner_dest = (((inner_dest)->u.fld[0]).rt_rtx)) > ; ># 13603 "../../gcc/combine.c" > if (set != 0 && ! side_effects_p ((((set)->u.fld[1]).rt_rtx)) > && rtx_equal_p ((((note)->u.fld[0]).rt_rtx), inner_dest) > > > > > > ) > { > > > > > rtx old_notes = (((tem)->u.fld[7]).rt_rtx); > > (((tem)->u.fld[4]).rt_rtx) = (((&default_target_rtl)->x_global_rtl)[GR_PC]); > (((tem)->u.fld[7]).rt_rtx) = ((void *)0); > > distribute_notes (old_notes, tem, tem, (rtx) 0, > (rtx) 0, (rtx) 0, (rtx) 0); > distribute_links ((uid_log_links[(((tem)->u.fld[0]).rt_int)])); > > set_insn_deleted (tem);; > if (tem == i2) > i2 = (rtx) 0; ># 13647 "../../gcc/combine.c" > } > else > { > ((note)->mode = ((enum machine_mode) (REG_UNUSED))); > > > > > > > > if (! find_regno_note (tem, REG_UNUSED, > (rhs_regno((((note)->u.fld[0]).rt_rtx))))) > place = tem; > break; > } > } > else if (reg_referenced_p ((((note)->u.fld[0]).rt_rtx), (((tem)->u.fld[4]).rt_rtx)) > || ((((enum rtx_code) (tem)->code) == CALL_INSN) > && find_reg_fusage (tem, USE, (((note)->u.fld[0]).rt_rtx)))) > { > place = tem; > > > > > > > > if (i2 && ((((df->insns[((((place)->u.fld[0]).rt_int))]))->luid)) > ((((df->insns[((((i2)->u.fld[0]).rt_int))]))->luid)) > && from_insn > && ((((df->insns[((((from_insn)->u.fld[0]).rt_int))]))->luid)) > ((((df->insns[((((i2)->u.fld[0]).rt_int))]))->luid)) > && reg_referenced_p ((((note)->u.fld[0]).rt_rtx), (((i2)->u.fld[4]).rt_rtx))) > { > struct insn_link *links = (uid_log_links[(((place)->u.fld[0]).rt_int)]); > (uid_log_links[(((place)->u.fld[0]).rt_int)]) = ((void *)0); > distribute_links (links); > } > break; > } > > if (tem == (bb)->il.rtl->head_) > break; > } > > } > > > > > > > > if (place && ((enum reg_note) ((enum machine_mode) (note)->mode)) == REG_DEAD) > { > unsigned int regno = (rhs_regno((((note)->u.fld[0]).rt_rtx))); > reg_stat_type *rsp = (VEC_reg_stat_type_base_index(((__builtin_offsetof (__typeof (*reg_stat), base) == 0 || (reg_stat)) ? &(reg_stat)->base : 0),regno )); > > if (dead_or_set_p (place, (((note)->u.fld[0]).rt_rtx)) > || reg_bitfield_target_p ((((note)->u.fld[0]).rt_rtx), (((place)->u.fld[4]).rt_rtx))) > { > > > > if (rsp->last_death != place) > rsp->last_death = 0; > place = 0; > } > else > rsp->last_death = place; ># 13727 "../../gcc/combine.c" > if (place && regno < 114 > && ((&default_target_regs)->x_hard_regno_nregs)[regno][((enum machine_mode) ((((note)->u.fld[0]).rt_rtx))->mode)] > 1) > { > unsigned int endregno = end_hard_regno (((enum machine_mode) ((((note)->u.fld[0]).rt_rtx))->mode), (rhs_regno((((note)->u.fld[0]).rt_rtx)))); > int all_used = 1; > unsigned int i; > > for (i = regno; i < endregno; i++) > if ((! refers_to_regno_p (i, i + 1, (((place)->u.fld[4]).rt_rtx), 0) > && ! find_regno_fusage (place, USE, i)) > || dead_or_set_regno_p (place, i)) > all_used = 0; > > if (! all_used) > { > > > > for (i = regno; i < endregno; > i += ((&default_target_regs)->x_hard_regno_nregs)[i][((&default_target_regs)->x_reg_raw_mode)[i]]) > { > rtx piece = regno_reg_rtx[i]; > basic_block bb = this_basic_block; > > if (! dead_or_set_p (place, piece) > && ! reg_bitfield_target_p (piece, > (((place)->u.fld[4]).rt_rtx))) > { > rtx new_note = alloc_reg_note (REG_DEAD, piece, > (rtx) 0); > > distribute_notes (new_note, place, place, > (rtx) 0, (rtx) 0, (rtx) 0, > (rtx) 0); > } > else if (! refers_to_regno_p (i, i + 1, > (((place)->u.fld[4]).rt_rtx), 0) > && ! find_regno_fusage (place, USE, i)) > for (tem = (((place)->u.fld[1]).rt_rtx); ; > tem = (((tem)->u.fld[1]).rt_rtx)) > { > if (!(((((enum rtx_code) (tem)->code) == INSN) || (((enum rtx_code) (tem)->code) == DEBUG_INSN) || (((enum rtx_code) (tem)->code) == JUMP_INSN) || (((enum rtx_code) (tem)->code) == CALL_INSN)) && !(((enum rtx_code) (tem)->code) == DEBUG_INSN))) > { > if (tem == (bb)->il.rtl->head_) > break; > continue; > } > if (dead_or_set_p (tem, piece) > || reg_bitfield_target_p (piece, > (((tem)->u.fld[4]).rt_rtx))) > { > add_reg_note (tem, REG_UNUSED, piece); > break; > } > } > > } > > place = 0; > } > } > } > break; > > default: > > > (fancy_abort ("../../gcc/combine.c", 13794, __FUNCTION__)); > } > > if (place) > { > (((note)->u.fld[1]).rt_rtx) = (((place)->u.fld[7]).rt_rtx); > (((place)->u.fld[7]).rt_rtx) = note; > } > > if (place2) > add_reg_note (place2, ((enum reg_note) ((enum machine_mode) (note)->mode)), (((note)->u.fld[0]).rt_rtx)); > } >} > > > > > >static void >distribute_links (struct insn_link *links) >{ > struct insn_link *link, *next_link; > > for (link = links; link; link = next_link) > { > rtx place = 0; > rtx insn; > rtx set, reg; > > next_link = link->next; ># 13836 "../../gcc/combine.c" > if ((((enum rtx_code) (link->insn)->code) == NOTE) > || (set = (((((enum rtx_code) (link->insn)->code) == INSN) || (((enum rtx_code) (link->insn)->code) == DEBUG_INSN) || (((enum rtx_code) (link->insn)->code) == JUMP_INSN) || (((enum rtx_code) (link->insn)->code) == CALL_INSN)) ? (((enum rtx_code) ((((link->insn)->u.fld[4]).rt_rtx))->code) == SET ? (((link->insn)->u.fld[4]).rt_rtx) : single_set_2 (link->insn, (((link->insn)->u.fld[4]).rt_rtx))) : (rtx) 0)) == 0) > continue; > > reg = (((set)->u.fld[0]).rt_rtx); > while (((enum rtx_code) (reg)->code) == SUBREG || ((enum rtx_code) (reg)->code) == ZERO_EXTRACT > || ((enum rtx_code) (reg)->code) == STRICT_LOW_PART) > reg = (((reg)->u.fld[0]).rt_rtx); ># 13854 "../../gcc/combine.c" > for (insn = (((link->insn)->u.fld[2]).rt_rtx); > (insn && (this_basic_block->next_bb == ((cfun + 0)->cfg->x_exit_block_ptr) > || (this_basic_block->next_bb)->il.rtl->head_ != insn)); > insn = (((insn)->u.fld[2]).rt_rtx)) > if ((((enum rtx_code) (insn)->code) == DEBUG_INSN)) > continue; > else if (((((enum rtx_code) (insn)->code) == INSN) || (((enum rtx_code) (insn)->code) == DEBUG_INSN) || (((enum rtx_code) (insn)->code) == JUMP_INSN) || (((enum rtx_code) (insn)->code) == CALL_INSN)) && reg_overlap_mentioned_p (reg, (((insn)->u.fld[4]).rt_rtx))) > { > if (reg_referenced_p (reg, (((insn)->u.fld[4]).rt_rtx))) > place = insn; > break; > } > else if ((((enum rtx_code) (insn)->code) == CALL_INSN) > && find_reg_fusage (insn, USE, reg)) > { > place = insn; > break; > } > else if (((((enum rtx_code) (insn)->code) == INSN) || (((enum rtx_code) (insn)->code) == DEBUG_INSN) || (((enum rtx_code) (insn)->code) == JUMP_INSN) || (((enum rtx_code) (insn)->code) == CALL_INSN)) && reg_set_p (reg, insn)) > break; > > > > > if (place) > { > struct insn_link *link2; > > for ((link2) = (uid_log_links[(((place)->u.fld[0]).rt_int)]); (link2); (link2) = (link2)->next) > if (link2->insn == link->insn) > break; > > if (link2 == ((void *)0)) > { > link->next = (uid_log_links[(((place)->u.fld[0]).rt_int)]); > (uid_log_links[(((place)->u.fld[0]).rt_int)]) = link; > > > > if (added_links_insn == 0 > || ((((df->insns[((((added_links_insn)->u.fld[0]).rt_int))]))->luid)) > ((((df->insns[((((place)->u.fld[0]).rt_int))]))->luid))) > added_links_insn = place; > } > } > } >} > > > > > > >static int >unmentioned_reg_p_1 (rtx *loc, void *expr) >{ > rtx x = *loc; > > if (x != (rtx) 0 > && ((((enum rtx_code) (x)->code) == REG) || (((enum rtx_code) (x)->code) == MEM)) > && ! reg_mentioned_p (x, (rtx) expr)) > return 1; > return 0; >} > > > > > >static unsigned char >unmentioned_reg_p (rtx equiv, rtx expr) >{ > return for_each_rtx (&equiv, unmentioned_reg_p_1, expr); >} > >void >dump_combine_stats (FILE *file) >{ > fprintf > (file, > ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n;; %d successes.\n\n", > combine_attempts, combine_merges, combine_extras, combine_successes); >} > >void >dump_combine_total_stats (FILE *file) >{ > fprintf > (file, > "\n;; Combiner totals: %d attempts, %d substitutions (%d requiring new space),\n;; %d successes.\n", > total_attempts, total_merges, total_extras, total_successes); >} > >static unsigned char >gate_handle_combine (void) >{ > return (global_options.x_optimize > 0); >} > > >static unsigned int >rest_of_handle_combine (void) >{ > int rebuild_jump_labels_after_combine; > > df_set_flags (DF_LR_RUN_DCE + DF_DEFER_INSN_RESCAN); > df_note_add_problem (); > df_analyze (); > > regstat_init_n_sets_and_refs (); > > rebuild_jump_labels_after_combine > = combine_instructions (get_insns (), max_reg_num ()); > > > > > if (rebuild_jump_labels_after_combine) > { > timevar_push (TV_JUMP); > rebuild_jump_labels (get_insns ()); > cleanup_cfg (0); > timevar_pop (TV_JUMP); > } > > regstat_free_n_sets_and_refs (); > return 0; >} > >struct rtl_opt_pass pass_combine = >{ > { > RTL_PASS, > "combine", > gate_handle_combine, > rest_of_handle_combine, > ((void *)0), > ((void *)0), > 0, > TV_COMBINE, > (1 << 9), > 0, > 0, > 0, > (1 << 17) | (1 << 10) | > (1 << 1), > } >};
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 837630
: 596395