Commit Graph

483 Commits

Author SHA1 Message Date
Jay Kamat
7a3cd2d6bc Add tests for exclusive size 2023-03-10 11:46:30 -08:00
Jay Kamat
542f1a6743 Add experimental support for reporting exclusive sizes into rocksdb 2023-03-10 11:46:30 -08:00
Alastair Robertson
d9b13ff101 Integration tests: Test templates 2023-03-09 11:51:41 +00:00
Alastair Robertson
5dd92b7f7f Integration tests: Test arrays 2023-03-09 11:51:41 +00:00
Alastair Robertson
4eaabbab84 Update drgn to pull in fix for GCC zero-lengh arrays 2023-03-09 11:51:41 +00:00
Alastair Robertson
9dd5c4b4cc Integration Tests: Test typedefs 2023-03-09 11:51:41 +00:00
Alastair Robertson
340a5e6803 Integration Tests: Test enums 2023-03-09 11:51:41 +00:00
Alastair Robertson
18e636d68d Integration tests: Add simple class and simple union tests 2023-03-09 11:51:41 +00:00
Alastair Robertson
de071e2e38 FuncGen: Remove dead code 2023-03-08 14:18:36 +00:00
Alastair Robertson
c9e46bee00 FuncGen: Make functions static where possible
This will make it easier to share between legacy and TypeGraph codegen.
2023-03-08 14:18:36 +00:00
Alastair Robertson
ccc90c3068 Split codegen into separate build targets
To help with the transition to type-graph based CodeGen, we need to
reduce dependencies on legacy CodeGen from other parts of OI.

Pieces of CodeGen referenced by other files, but which only return
drgn data have been moved into a new "drgn_utils" target, allowing
us to remove CodeGen dependencies for these functions.

The new "symbol_service" build target can be used in the future by
other files only needing access to symbol information and not full
CodeGen.
2023-03-08 14:18:20 +00:00
Jake Hillion
53ba312f1e oilgen: change interface to support multiple calls in one cu 2023-03-07 19:48:18 +00:00
Jon Haslam
ac7a1d4aba
reduce race window for breakpoint trap in prologue (#85) 2023-03-04 08:06:19 +00:00
Jake Hillion
be273f6e0d tests: make relative config paths absolute when copying 2023-02-28 15:13:48 -08:00
Jon Haslam
9e1a9ed36a
Replace nop instructions with ud2 (#84) 2023-02-27 16:49:42 -08:00
Jake Hillion
e3ff13fd5e update rocksdb to 7.9.2 2023-02-27 11:26:39 -08:00
Jake Hillion
3a236aa4f2 sorted_vec_set: finish changing to a container adapter 2023-02-24 10:31:59 -08:00
Jake Hillion
b1c43c2b42 update folly and enable ci usage 2023-02-24 10:31:59 -08:00
Jon Haslam
878b9bfebb
add std::conditional test (#79) 2023-02-22 14:37:59 -08:00
Jake Hillion
febcea4928 oilgen: add check for drgn_type_has_name 2023-02-22 12:38:46 -08:00
Jon Haslam
39e19a9c47
Special case conditional_t type name handling (#75) 2023-02-21 13:16:26 -08:00
Alastair Robertson
9fd96ec3a4 integration/primitives.toml: Add char8_t test 2023-02-21 11:59:16 -08:00
Jon Haslam
e458ca99eb
Stop enumerating template params for sorted_vector_set (#74) 2023-02-21 11:24:02 -08:00
Jay Kamat
aa8980275f Update drgn to fix invalid pop from iterator code 2023-02-17 12:33:52 -08:00
Alastair Robertson
72f995600e Move getRootType from OICodeGen to SymbolService
To allow other parts of OI to remove dependencies on OICodeGen in the
future.
2023-02-17 11:53:10 -08:00
arsarwade
2d7692d7c1
Fix/remove some log statements (#67)
Summary:
Remove some more log statements to reduce output

Test Plan:
make test-devel
2023-02-17 11:41:10 -08:00
Alastair Robertson
ab2f58b7fe Bump minimum CMake version to 3.19
We are already using CMP0109 which depends on 3.19. This change just
provides more useful error messages when using older versions.
2023-02-14 17:53:12 +00:00
Jake Hillion
7cf5c6d39a oil: removed unused cache in OILibrary 2023-02-14 11:34:08 +00:00
Jake Hillion
337e386516 remove unused ManifoldCache.h from OICompiler 2023-02-10 15:25:18 +00:00
Jon Haslam
74e07eef0e
Remove type path printing debug code (#65)
* Fix folly::sorted_vector_set and minor codegen comment change

* remove printTypePath debug code
2023-02-10 14:12:41 +00:00
Jake Hillion
31f4382178 ci: bump repeat-until-pass to 4 2023-02-08 17:13:58 +00:00
Jon Haslam
c260586a4e
Fix folly::sorted_vector_set and minor codegen comment change (#63) 2023-02-08 14:34:14 +00:00
Jake Hillion
cb71e69ca5 oilgen: make strong getObjectSize noinline 2023-02-06 15:23:48 +00:00
Jake Hillion
7d000e5d9e oilgen: set object size to 0 before starting 2023-02-06 15:23:48 +00:00
Jake Hillion
72f31639b7 oilgen: add an --exit-code option to fail on noop 2023-02-03 17:26:15 +00:00
Jake Hillion
9cb8fd7a97 add missing virtual destructors 2023-02-03 17:26:04 +00:00
Alastair Robertson
13bbe2e1bb Code coverage: Checkout repo before running
Apparently this is needed for CodeCov.io to work.
2023-02-03 16:52:36 +00:00
Alastair Robertson
397b798235 CI: Add code coverage reporting
Add CODE_COVERAGE option to enable coverage instrumentation in builds.

Add new CI job to upload coverage reports to CodeCov.io.

Reports can be found by navigating the codecov.io UI, or by going to
the URL printed at the end of the "Code Coverage" CI job. More CodeCov
integration could be set up later once we have coverage reporting on the
main branch.
2023-02-03 12:16:56 +00:00
Alastair Robertson
5c5bfd315c OIDebugger: Remove extra "0x" prefix when logging addresses 2023-02-02 16:57:27 +00:00
Alastair Robertson
3468db7b0a CI: Parallelise tests
This reduces the time to run tests from 5-9 minutes down to 3-4 minutes.

`nproc` is returning `1` on the CI node which is processing our
config.yml. In the absense of a better way of getting the number of CPUs
on our executor, just hardcode it.

We actually have 16 cores on our 2xlarge executors, but higher
parallelism in tests appears to cause oid to sometimes fail with SIGILL.
I'm still investigating this problem.
2023-02-02 15:02:39 +00:00
Alastair Robertson
b00958378b CI: Split build and test into separate jobs
This will give us more flexibility later, e.g. allowing different steps
for GCC and Clang (as needed for code coverage), or letting us
parallelise our tests across multiple machines.
2023-02-02 14:21:41 +00:00
Jake Hillion
8956ca5522
oil: switch to using an impl function with no default implementation (#46) 2023-02-02 11:15:11 +00:00
Alastair Robertson
6f786b4348 CI: Output junit result format directly from CTest
Remove the conversion script we were previously using.
2023-02-02 11:00:58 +00:00
Jake Hillion
23026d80ba config: look up paths relative to config file 2023-02-01 14:54:33 +00:00
Jake Hillion
fcaede9e7d oil: make ObjectAddr a const reference 2023-01-31 13:30:58 +00:00
Jake Hillion
ee56decc10 oil: change interface to references 2023-01-31 13:30:58 +00:00
Jake Hillion
499b8c6f74 oil: stub out more of the header in AoT mode 2023-01-31 13:30:58 +00:00
Jay Kamat
01abff9019 Update small vec types to reflect folly update
Folly updated the signature of small vec types here:
c0a4e11b31

I needed to add a new 'using' for policy_size_type, as this is commonly
used with this new template parameter.
2023-01-30 19:01:38 -08:00
Alastair Robertson
9e72ada131 Support dynamic polymorphic inheritance
i.e. classes which contain virtual functions and use a virtual pointer
2023-01-30 13:22:09 +00:00
Alastair Robertson
aef8826a3a Update drgn submodule
Adds support for C++ member functions and virtuality.
2023-01-30 13:22:09 +00:00