aboutsummaryrefslogtreecommitdiffstats
path: root/ia32/TargetPrinter.ml
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2015-10-13 14:57:31 +0200
committerBernhard Schommer <bernhardschommer@gmail.com>2015-10-13 14:57:31 +0200
commit16315711d815580afa77f93424cc49c7362ab5b8 (patch)
tree09c5d771858c83a606f26dbfcf7b266822778135 /ia32/TargetPrinter.ml
parentdaed22eb5afdc86267c8f90b55008267c9383fca (diff)
downloadcompcert-16315711d815580afa77f93424cc49c7362ab5b8.tar.gz
compcert-16315711d815580afa77f93424cc49c7362ab5b8.zip
Implement the usage of the debug_str section for the gcc backend.
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.
Diffstat (limited to 'ia32/TargetPrinter.ml')
-rw-r--r--ia32/TargetPrinter.ml7
1 files changed, 5 insertions, 2 deletions
diff --git a/ia32/TargetPrinter.ml b/ia32/TargetPrinter.ml
index 95de40ca..32e55ec1 100644
--- a/ia32/TargetPrinter.ml
+++ b/ia32/TargetPrinter.ml
@@ -105,8 +105,9 @@ module Cygwin_System : SYSTEM =
| Section_debug_info _ -> ".section .debug_info,\"dr\""
| Section_debug_loc -> ".section .debug_loc,\"dr\""
| Section_debug_line _ -> ".section .debug_line,\"dr\""
- | Section_debug_abbrev -> ".section .debug_abbrev,\"dr\"" (* Dummy value *)
-
+ | Section_debug_abbrev -> ".section .debug_abbrev,\"dr\""
+ | Section_debug_str-> assert false (* Should not be used *)
+
let stack_alignment = 8 (* minimum is 4, 8 is better for perfs *)
let print_align oc n =
@@ -157,6 +158,7 @@ module ELF_System : SYSTEM =
| Section_debug_loc -> ".section .debug_loc,\"\",@progbits"
| Section_debug_line _ -> ".section .debug_line,\"\",@progbits"
| Section_debug_abbrev -> ".section .debug_abbrev,\"\",@progbits"
+ | Section_debug_str -> ".section .debug_str,\"MS\",@progbits,1"
let stack_alignment = 8 (* minimum is 4, 8 is better for perfs *)
@@ -210,6 +212,7 @@ module MacOS_System : SYSTEM =
| Section_debug_info _ -> ".section __DWARF,__debug_info,regular,debug"
| Section_debug_loc -> ".section __DWARF,__debug_loc,regular,debug"
| Section_debug_line _ -> ".section __DWARF,__debug_line,regular,debug"
+ | Section_debug_str -> ".section __DWARF,__debug_str,regular,debug"
| Section_debug_abbrev -> ".section __DWARF,__debug_abbrev,regular,debug" (* Dummy value *)