编译器 研究学习
星空探索
linux
展开
-
gcc do_rewrite
do_rewrite:/* Driver for profile rewrite sub-command. */static intdo_rewrite (int argc, char **argv){ int opt; int ret; const char *output_dir = 0;#ifdef HAVE_LONG_LONG long long n原创 2017-03-23 08:24:07 · 190 阅读 · 0 评论 -
GCC gcc_debug_hooks
gcc_debug_hooks:extern const struct gcc_debug_hooks *debug_hooks;/* This structure contains hooks for the debug information output functions, accessed through the global instance debug_hooks s原创 2017-03-20 08:50:04 · 392 阅读 · 0 评论 -
GCC C语言处理hooks实现
enum c_language_kind c_language = clk_c;/* Lang hooks common to C and ObjC are declared in c-objc-common.h; consequently, there should be very few hooks below. */#undef LANG_HOOKS_NAME#define L原创 2017-03-20 08:50:17 · 551 阅读 · 0 评论 -
GCC C语言处理主要函数之c_register_pragma
c_register_pragma:/* Register a C pragma handler, using a space and a name. It disallows pragma expansion (if you want it, use c_register_pragma_with_expansion instead). */voidc_register_p原创 2017-03-20 08:50:37 · 557 阅读 · 0 评论 -
GCC主要数据结构之c_typespec_keyword
/* A type specifier keyword "void", "_Bool", "char", "int", "float", "double", "_Decimal32", "_Decimal64", "_Decimal128", "_Fract", "_Accum", or none of these. */enum c_typespec_keyword {原创 2017-03-20 08:52:12 · 438 阅读 · 0 评论 -
GCC主要数据结构之tree_base
/*--------------------------------------------------------------------------- Main data structures---------------------------------------------------------------------原创 2017-03-20 08:51:59 · 971 阅读 · 0 评论 -
GCC主要数据结构之cpp_token
libcpp/include/cpplib.h/* A preprocessing token. This has been carefully packed and should occupy 16 bytes on 32-bit hosts and 24 bytes on 64-bit hosts. */struct GTY(()) cpp_token { sourc原创 2017-03-20 08:51:31 · 603 阅读 · 0 评论 -
GCC主要数据结构之cpp_buffer
/* Represents the contents of a file cpplib has read in. */struct cpp_buffer{ const unsigned char *cur; /* Current location. */ const unsigned char *line_base; /* Start of current原创 2017-03-20 08:51:02 · 435 阅读 · 0 评论 -
GCC主要数据结构之c_token
/* A single C token after string literal concatenation and conversion of preprocessing tokens to tokens. */struct GTY (()) c_token { /* The kind of token. */ ENUM_BITFIELD (cpp_ttype) ty原创 2017-03-20 08:50:50 · 616 阅读 · 0 评论 -
GCC主要数据结构之compiler
/* Record the mapping from file suffixes for compilation specs. */struct compiler{ const char *suffix; /* Use this compiler for input files whose names end in this suffix. */原创 2017-03-20 08:47:51 · 343 阅读 · 0 评论 -
GCC主要数据结构之spec_list
/* Structure to keep track of the specs that have been defined so far. These are accessed using %(specname) in a compiler or link spec. */struct spec_list{ /* The following 2 fie原创 2017-03-20 08:47:12 · 806 阅读 · 0 评论 -
GCC主要数据结构之infile
/* Language is one of three things: 1) The name of a real programming language. 2) NULL, indicating that no one has figured out what it is yet. 3) '*', indicating that the file sho原创 2017-03-20 08:46:45 · 284 阅读 · 0 评论 -
GCC C语言处理主要函数之init_pragma
/* Set up front-end pragmas. */voidinit_pragma (void){ if (flag_openacc) { const int n_oacc_pragmas = sizeof (oacc_pragmas) / sizeof (*oacc_pragmas); int i; for (原创 2017-03-19 11:12:00 · 1176 阅读 · 0 评论 -
GCC主要数据结构之c_declspec_word
/* This enum lists all the possible declarator specifiers, storage class or attribute that a user can write. There is at least one enumerator per possible declarator specifier in the struct原创 2017-03-19 11:11:43 · 337 阅读 · 0 评论 -
GCC主要数据结构之tree_node
/* Define the overall contents of a tree node. It may be any of the structures declared above for various types of node. */union GTY ((ptr_alias (union lang_tree_node), desc ("tree_no原创 2017-03-19 11:11:29 · 952 阅读 · 0 评论 -
GCC主要数据结构之record_layout_info_s
/* These functions allow a front-end to perform a manual layout of a RECORD_TYPE. (For instance, if the placement of subsequent fields depends on the placement of fields so far.) Begin by ca原创 2017-03-19 11:11:14 · 546 阅读 · 0 评论 -
GCC C语言处理主要函数之dbxout_init
/* At the beginning of compilation, start writing the symbol table. Initialize `typevec' and output the standard data types of C. */static voiddbxout_init (const char *input_file_name){ ch原创 2017-03-20 08:53:52 · 287 阅读 · 0 评论 -
GCC主要数据结构之gcov_root
GCC:libgcov.h /* Root of a program/shared-object state */struct gcov_root{ struct gcov_info *list; unsigned dumped : 1; /* counts have been dumped. */ unsigned run_counted : 1; /* r原创 2017-03-20 08:54:05 · 365 阅读 · 0 评论 -
GCC 初始化前端环境general_init
/* Initialization of the front end environment, before command line options are parsed. Signal handlers, internationalization etc. ARGV0 is main's argv[0]. */static void general_init (cons原创 2017-03-23 08:23:15 · 430 阅读 · 0 评论 -
gcc class driver
/* The top-level "main" within the driver would be ~1000 lines long. This class breaks it up into smaller functions and contains some state shared by them. */class driver{ public: driv原创 2017-03-23 08:22:29 · 270 阅读 · 0 评论 -
gcc symbol_table
static htab_t symbol_table; /* Symbol table global context. */symbol_table *symtab;general_init() symtab = new (ggc_cleared_alloc ()) symbol_table (); /* Hash tables are of the following type原创 2017-03-23 08:22:16 · 885 阅读 · 0 评论 -
gcc namespace gcc
namespace gcc {class pass_manager;class dump_manager;/* GCC's internal state can be divided into zero or more "parallel universe" of state; an instance of this class is one such context of s原创 2017-03-23 08:21:41 · 438 阅读 · 0 评论 -
GCC主要数据结构之diagnostic_context
GCC:gcc/diagnostic.h /* Forward declarations. */typedef void (*diagnostic_starter_fn) (diagnostic_context *, diagnostic_info *);typedef void (*diagnostic_start_span_fn) (diagnostic原创 2017-03-21 08:18:10 · 456 阅读 · 0 评论 -
gcc do_overlap
do_overlap:/* Driver for profile overlap sub-command. */static intdo_overlap (int argc, char **argv){ int opt; int ret; optind = 0; while ((opt = getopt_long (argc, argv, "vfFoht:",原创 2017-03-21 08:28:37 · 217 阅读 · 0 评论 -
GCC主要数据结构之GTY
GCC:gcc/gimple.h/* Data structure definitions for GIMPLE tuples. NOTE: word markers are for 64 bit hosts. */struct GTY((desc ("gimple_statement_structure (&%h)"), tag ("GSS_BASE"), cha原创 2017-03-21 08:28:20 · 1269 阅读 · 0 评论 -
GCC 重要数据之 lang_hooks
每个前端处理都有这样一个对象,比如C,C++,java等。/* Each front end provides its own. */extern struct lang_hooks lang_hooks;/* Language-specific hooks. See langhooks-def.h for defaults. */struct lang_hooks{原创 2017-03-21 08:27:57 · 436 阅读 · 0 评论 -
GCC主要数据结构之pretty_printer
GCC:gcc/pretty-printer.h/* The data structure that contains the bare minimum required to do proper pretty-printing. Clients may derived from this structure and add additional fields they原创 2017-03-21 08:17:40 · 495 阅读 · 0 评论 -
gcc do_merge
do_merge/* Driver for profile merge sub-command. */static intdo_merge (int argc, char **argv){ int opt; const char *output_dir = 0; int w1 = 1, w2 = 1; optind = 0; while ((opt =原创 2017-03-21 08:17:17 · 210 阅读 · 0 评论 -
lk_primary_cpu_init_level
lk/include/lk/init.h:lk_primary_cpu_init_level static inline void lk_primary_cpu_init_level(uint start_level, uint stop_level){ lk_init_level(LK_INIT_FLAG_PRIMARY_CPU, start_level, stop_l原创 2017-03-20 08:55:18 · 495 阅读 · 0 评论 -
gcc main函数
GCC:gcc/main.c #include "config.h"#include "system.h"#include "coretypes.h"#include "tm.h"#include "diagnostic-core.h"#include "toplev.h"int main (int argc, char **argv);/* We define mai原创 2017-03-20 08:54:58 · 1639 阅读 · 0 评论 -
GCC toplev 定义
gcc/toplev.htoplev:/* Invoking the compiler. */class toplev{public: toplev (timer *external_timer, bool init_signals); ~toplev (); int main (int argc, char **argv); void final原创 2017-03-20 08:54:41 · 430 阅读 · 0 评论 -
gcc -v以及-h处理
GCC:gcc/gcov-tool.c/* Process args, return index to first non-arg. */static intprocess_args (int argc, char **argv){ int opt; while ((opt = getopt_long (argc, argv, "+hv", options, NULL)) !原创 2017-03-20 08:54:31 · 3473 阅读 · 0 评论 -
GCC主要数据结构之struct gcov_info
GCC:libgcc/libgcov.htypedef unsigned gcov_unsigned_t;typedef unsigned gcov_position_t; /* Type of function used to merge counters. */typedef void (*gcov_merge_fn) (gcov_type *, gcov_unsigne原创 2017-03-20 08:54:15 · 484 阅读 · 0 评论 -
GCC主要数据结构之cxx_dialect
/* The supported C++ dialects. */enum cxx_dialect { cxx_unset, /* C++98 with TC1 */ cxx98, cxx03 = cxx98, /* C++11 */ cxx0x, cxx11 = cxx0x, /* C++14 */ cxx14, /* C++1z原创 2017-03-19 11:10:56 · 439 阅读 · 0 评论 -
GCC主要数据结构之stmt_tree_s
/* Information about a statement tree. */struct GTY(()) stmt_tree_s { /* A stack of statement lists being collected. */ vec *x_cur_stmt_list; /* In C++, Nonzero if we should treat statements原创 2017-03-19 11:10:41 · 323 阅读 · 0 评论 -
GCC主要数据结构之cpp_callbacks
/* Call backs to cpplib client. */struct cpp_callbacks{ /* Called when a new line of preprocessed output is started. */ void (*line_change) (cpp_reader *, const cpp_token *, int); /* Call原创 2017-03-19 11:10:25 · 354 阅读 · 0 评论 -
GCC C语言处理主要函数之c_objc_common_init
/* Initialization common to C and Objective-C front ends. */boolc_objc_common_init (void){ c_init_decl_processing (); return c_common_init ();}原创 2017-03-18 12:14:27 · 256 阅读 · 0 评论 -
GCC C语言处理主要函数之c_init_decl_processing
/* Create the predefined scalar types of C, and some nodes representing standard constants (0, 1, (void *) 0). Initialize the global scope. Make definitions for built-in primitive function原创 2017-03-18 12:14:14 · 605 阅读 · 0 评论 -
GCC C语言处理主要函数之c_parse_init
c_parse_init:/* Initialization routine for this file. */voidc_parse_init (void){ /* The only initialization required is of the reserved word identifiers. */ unsigned int i;原创 2017-03-18 12:14:02 · 1223 阅读 · 0 评论 -
GCC主要数据结构之c_declspecs
/* A sequence of declaration specifiers in C. When a new declaration specifier is added, please update the enum c_declspec_word above accordingly. */struct c_declspecs { source_location原创 2017-03-18 12:13:48 · 522 阅读 · 0 评论