search for: __stop___llvm_prf_names

Displaying 5 results from an estimated 5 matches for "__stop___llvm_prf_names".

2017 Oct 26
1
[PATCH for-next 7/9] coverage: introduce support for llvm profiling
...e_kind_last; +}; + +int __llvm_profile_runtime; + +extern struct llvm_profile_data __start___llvm_prf_data; +extern struct llvm_profile_data __stop___llvm_prf_data; +extern uint64_t __start___llvm_prf_cnts; +extern uint64_t __stop___llvm_prf_cnts; +extern char __start___llvm_prf_names; +extern char __stop___llvm_prf_names; + +static void *start_data = &__start___llvm_prf_data; +static void *end_data = &__stop___llvm_prf_data; +static void *start_counters = &__start___llvm_prf_cnts; +static void *end_counters = &__stop___llvm_prf_cnts; +static void *start_names = &__start___llvm_prf_names; +static...
2017 Oct 26
2
[PATCH for-next 0/9] LLVM coverage support for Xen
Hello, The following patch series enables LLVM coverage support for the Xen hypervisor. This first patches are a re-organization of the gcov support, in order to make the support generic for all coverage technologies. This is mostly a name change from gcov -> cov in several places and files, together with the addition of a Kconfig option in order to enable LLVM coverage. Patch 7 introduces
2018 Mar 13
1
Profiling Support for BareMetal Target
...nker magic) In data section i have added: __start___llvm_prf_cnts = .; KEEP(*(__llvm_prf_cnts)) __stop___llvm_prf_cnts = .; __start___llvm_prf_data = .; KEEP(*(__llvm_prf_data)) __stop___llvm_prf_data = .; __start___llvm_prf_names = .; KEEP(*(__llvm_prf_names)) __stop___llvm_prf_names = .; __start___llvm_prf_vnds = .; KEEP(*(__llvm_prf_vnds)) __stop___llvm_prf_vnds = .; 2. Since there are not .ctors or atexit available i called the functions lprofSetupValueProfiler and __llvm_profile_initialize_file from the startup before main and __llvm_profile_write_file during t...
2017 Sep 11
2
Using source-based code coverage on baremetal
...(__llvm_prf_cnts) PROVIDE(__stop___llvm_prf_cnts = .); . = ALIGN(4); PROVIDE(__start___llvm_prf_data = .); *(__llvm_prf_data) PROVIDE(__stop___llvm_prf_data = .); . = ALIGN(4); PROVIDE(__start___llvm_prf_names = .); *(__llvm_prf_names) PROVIDE(__stop___llvm_prf_names = .); . = ALIGN(4); PROVIDE(__start___llvm_prf_vnds = .); *(__llvm_prf_vnds) PROVIDE(__stop___llvm_prf_vnds = .); This removed the need for the '.ctors' model for registering functions (which also reduces the run-time cost) and enabled our target to use the model d...
2017 Sep 06
5
Using source-based code coverage on baremetal
Hi all, I think using code coverage on baremetal has come up once or twice on llvmdev, but I don't think anyone has actually written up how the workflow works, or what issues come up.  This description is based on work done together with my colleague Weiming Zhao. By "baremetal" here, I mean an embedded environment without an operating system.  We specifically used a ARM target