| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
of [lex_start_p].
This is required for Menhir to pick up the correct start position of the token.
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | | |
file.
The new option -sdump-suffix allows it to specify another suffix
for the sdump file.
Bug 17326
|
| | |
| | |
| | |
| | |
| | |
| | | |
Since the stacksize is casted to signed int in the alloc frame
function large stacksize lead to assembler containing overflows.
Bug 17473.
|
| |\|
| | |
| | |
| | |
| | | |
Conflicts:
Makefile.extr
|
| | |
| | |
| | |
| | | |
This should save a lot of calls to the shell, menhir, and ocamlfind.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
"table" back-ends when compiling CompCert.
For now, MENHIR_TABLE is set to false, so CompCert is not affected.
Setting MENHIR_TABLE to true builds CompCert using Menhir's table back-end.
This causes a small but repeatable slowdown on "make test", about 2% (roughly 1 second out of 40).
I have tested building ccomp and ccomp.byte.
I have tested with an ocamlfind-installed menhir and with a manually-installed menhir.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
[declaration_specifiers_no_type?].
Inlining these options was not necessary.
This reduces the number of states in the automaton.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
This leads to a smaller automaton.
|
| | |
| | |
| | |
| | |
| | |
| | | |
declarators and FOR loops.
This leads to fewer automaton states, and potentially better error messages.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This leads to a small savings in the number of states (which could
become greater in the future if we decide to parameterize expressions).
If desired, the old automaton could be recovered by marking the binary
operators as %inline.
|
| | |
| | |
| | |
| | | |
This is analogous to the previous commit.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
[struct_or_union_specifier].
The old version was strictly equivalent to using [ioption(other_identifier)].
The new version uses [option(other_identifier)] instead, that is, [other_identifier?].
Technically, this means that [set_id_type i OtherId] is called slightly earlier (at
the opening brace, instead of at the closing brace), but this does not make any
difference, since the re-classification of identifiers affects only the second
parsing phase.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
A TYPEDEF_NAME is already classified as a [TypedefId] by the lexer,
and similarly, a VAR_NAME is already classified as a [VarId].
Thus, the removed calls had no effect.
The remaining calls to [set_id_type] are useful, as they can re-classify a token.
|
| | |
| | |
| | |
| | |
| | |
| | | |
i OtherId].
This causes no change in the automaton.
|
| | |
| | |
| | |
| | | |
I missed this opportunity in the previous commit.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The existing [option(X)] was marked %inline, and has been renamed [ioption(X)].
A new [option(X)], which is not marked %inline, has been introduced.
The grammar now uses [option] everywhere, except where [ioption] is necessary
in order to avoid conflicts.
This reduces the number of states in the automaton. The number of LR(0) cores
drops from 857 to 712.
|
| | | |
|
| | |
| | |
| | |
| | | |
This violates the 80-column width limit, but is really important.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Passing --no-stdlib ensures that there is no dependency on Menhir's
standard library.
Passing -v, which is equivalent to --explain --dump, requests the
generation of pre_parser.automaton, a description of the automaton.
|
| | |
| | |
| | |
| | | |
Bug 17450
|
| | | |
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
arm/TargetPrinter.ml
backend/CMparser.mly
backend/SelectLongproof.v
backend/Selectionproof.v
cfrontend/C2C.ml
checklink/Asm_printers.ml
checklink/Check.ml
checklink/Fuzz.ml
common/AST.v
debug/DebugInformation.ml
debug/DebugInit.ml
debug/DwarfPrinter.ml
debug/DwarfTypes.mli
debug/Dwarfgen.ml
exportclight/ExportClight.ml
ia32/TargetPrinter.ml
powerpc/Asm.v
powerpc/SelectOpproof.v
powerpc/TargetPrinter.ml
|
| | | |
| | | |
| | | |
| | | | |
Bug 16529.
|
| | | |
| | | |
| | | |
| | | | |
Bug 17392
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The gcc produces DW_AT_ranges for non-contiguous address ranges, like
compilation units containing functions which are placed in different
ELF-sections or lexical scopes that are split up. With this commit
CompCert also uses this DWARF v3 feature for gnu backend based targets.
In order to ensure backward compability a flag is added which avoids
this and produces debug info in DWARF v2 format.
Bug 17392.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In contrast to the dcc, the gcc uses address ranges to express
non-contiguous range of addresses. As a first step we set the
start and end addresses for the different address ranges for
the compilation unit by using the start and end addresses of
functions.
Bug 17392.
|
| | | |
| | | |
| | | |
| | | | |
Bug 17392.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Like, for example the clang, CompCert now prints a more detailed
descriptions of the debug information in the assembler file. For
each abbreviation and debug entry the dwarf attributes and their encodings
are added.
Bug 17392.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Instead of pushing strings around use the actual section. However
the string is still used in the Hashtbl.
Bug 17392.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Instead of using a string they now take an optional string, which
should be none if the backend is not the diab backend and the
corresponding section is the text section and Some s with s being
the custom section name else.
Bug 17392.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
GCC prints all string larger than 3 characters in the debug_str
section which reduces the size of the debug information since entries
containing the same string now map to the same string in the
debug_str sections.
Bug 17392.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The dwarf 2 standard allows more attributes for certain debuggint
entries than used by gcc or diab data. Since they are also not
set by compcert they can be removed.
Bug 17392.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
The function exists_type is not really used so we can remove it.
Bug 17392.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Instead of making each filed mutuable we use a reference to a record
of type implem. Now only the default implementation and the default
debug information need to be upated to add a new function.
Bug 17392.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Instead of using a tuple we now use a record with descriptive names
for the different entries.
Bug 17392
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Since the strip functions might be useful in other context and is
more general then the debug information.
Bug 17392.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The atom to global variable debug id mapping is never used so we
do not need to insert global variables into it.
Bug 17392.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Instead of defining two functions for adding the mapping from atom
to debug id we use one function which then sets the corresponding
values.
Bug 17392.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If a label is printed before a list of debug annotations we can use it
for the debug annotations and don't need to add an extra label.
Bug 17392
|
| | | |
| | | |
| | | |
| | | |
| | | | |
The base register for the stack allocated variables should be
r1 and not r2 under powerpc. Bug 17392
|
| | | | |
|
| | |\ \
| | | | |
| | | | | |
Take advantage of PowerPC 64-bit instructions
|
| | | |\ \ |
|