aboutsummaryrefslogtreecommitdiffstats
path: root/ia32/TargetPrinter.ml
Commit message (Collapse)AuthorAgeFilesLines
* Track the locations of local variables using EF_debug annotations.Xavier Leroy2015-08-231-1/+1
| | | | | | | | | | | | | | SimplLocals: - record locations of stack-allocated variables with annotations (of kind 5) at the beginning of the function; - mark every assignment to non-stack-allocated variables with an annotation of kind 2. Debugvar: (new pass!) - perform availability analysis for debug annotations of kind 2 - insert "start of live range" and "end of live range" annotations (kind 3 and 4) to delimit intervals of PCs where the location of a local variable is known.
* Renaming {BA,BR}_longofwords -> {BA,BR}_splitlong.Xavier Leroy2015-08-221-12/+5
| | | | | | | | Use EF_debug instead of EF_annot for line number annotations. Introduce PrintAsmaux.print_debug_info (very incomplete). powerpc/Asmexpand: revise expand_memcpy_small.
* Simplify the handling of extended inline asm, taking advantage of the new, ↵Xavier Leroy2015-08-211-3/+1
| | | | structured builtin arguments and results.
* Merge branch 'master' into 'new-builtins'Xavier Leroy2015-08-211-36/+35
|\
| * Consistent naming of "P" instructions and consistent ordering of argumentsXavier Leroy2015-08-211-36/+35
| | | | | | | | according to Intel convention (instr destination, argument).
* | Refactoring of builtins and annotations in the back-end.Xavier Leroy2015-08-211-8/+5
|/ | | | | | | | | | | | | | | | | | | | | | | | Before, the back-end languages had distinct instructions - Iannot for annotations, taking structured expressions (annot_arg) as arguments, and producing no results' - Ibuiltin for other builtins, using simple pseudoregs/locations/registers as arguments and results. This branch enriches Ibuiltin instructions so that they take structured expressions (builtin_arg and builtin_res) as arguments and results. This way, - Annotations fit the general pattern of builtin functions, so Iannot instructions are removed. - EF_vload_global and EF_vstore_global become useless, as the same optimization can be achieved by EF_vload/vstore taking a structured argument of the "address of global" kind. - Better code can be generated for builtin_memcpy between stack locations, or volatile accesses to stack locations. Finally, this commit also introduces a new kind of external function, EF_debug, which is like EF_annot but produces no observable events. It will be used later to transport debug info through the back-end, without preventing optimizations.
* Merge branch 'asmexpand' of github.com:AbsInt/CompCertBernhard Schommer2015-06-261-286/+73
|
* Revert "Merge branch 'asmexpand' of github.com:AbsInt/CompCert"Bernhard Schommer2015-06-261-73/+286
| | | | | This reverts commit 777566e81b9762d6bdc773a1f63d56a7ac97433c, reversing changes made to daf9ac64fc9611ecf09d70560a6fa1ba80b9c9c1.
* Moved the rest of the ia32 builtins to asmexpand.Bernhard Schommer2015-06-221-287/+28
|
* Started moving functions from TargetPrinter.ml to Asmexpand.ml for ia32.Bernhard Schommer2015-06-181-0/+46
|
* Merged PrintAnnot into PrintAsmaux.Bernhard Schommer2015-05-141-4/+4
|
* Cleanups and updates for extended asm.Xavier Leroy2015-04-211-2/+1
|
* Support for GCC-style extended asm, continued:Xavier Leroy2015-04-211-1/+1
| | | | | | | | - support "r", "m" and "i" constraints - support "%Q" and "%R" modifiers for register pairs - support register clobbers - split off analysis and transformation of asm statements in cparser/ExtendedAsm.ml
* Experiment: support a subset of GCC's extended asm statements.Xavier Leroy2015-04-171-2/+3
|
* Added missing dummy functions.Bernhard Schommer2015-04-161-0/+8
|
* Merge branch 'master' into dwarfBernhard Schommer2015-04-021-1/+1
|\
| * Merge pull request #34 from AbsInt/extended-annotationsXavier Leroy2015-04-011-1/+1
| |\ | | | | | | Extended annotations
| | * Updated the Caml part. Added some more tests in annot1.c.Xavier Leroy2015-03-271-1/+1
| | |
* | | Merge branch 'master' into dwarfBernhard Schommer2015-03-311-4/+15
|\| | | | | | | | | | | | | | | | | Conflicts: Makefile driver/Driver.ml
| * | Missing initialization of current_function_sig.Xavier Leroy2015-03-141-1/+3
| | |
| * | Merge branch 'master' into struct-passingXavier Leroy2015-03-141-4/+15
| | | | | | | | | | | | | | | Conflicts: ia32/PrintAsm.ml
* | | Merge branch 'master' into dwarfBernhard Schommer2015-03-161-1/+3
|\ \ \ | | |/ | |/|
| * | Missing initialization of current_function_sig.Xavier Leroy2015-03-141-1/+3
| |/
* | Started implementing the printing functions for the debug info. Added a ↵Bernhard Schommer2015-03-161-0/+6
| | | | | | | | global target dependend option to activate the printing only for targets wher it works.
* | Started integrating the debug printing in the common backend_printer.Bernhard Schommer2015-03-111-0/+7
|/
* Removed unused sel_target, changed cygwin symbol names and changed the ↵Bernhard Schommer2015-02-191-3/+6
| | | | default function aligment to be target dependent.
* Added an elf prefix to all common elf functions in PrintAsmaux.Bernhard Schommer2015-02-181-10/+13
|
* Changed print_fun/var_info to be functions instead of booleans.Bernhard Schommer2015-02-181-8/+8
|
* Removed some style issues.Bernhard Schommer2015-02-181-9/+9
|
* Changed arm backend to the common backend printer.Bernhard Schommer2015-02-091-1/+1
|
* Changed the ia32 backend to the new Printer.Bernhard Schommer2015-02-061-0/+976