Thierry Treyer
2d3709da65
Fix exclusive_size for F14ValueMap
2023-10-09 10:41:34 -06:00
Thierry Treyer
37b25bb278
Fix exclusive_size for F14NodeSet
2023-10-09 10:41:34 -06:00
Thierry Treyer
7836134343
Fix exclusive_size for F14VectorSet
2023-10-09 10:41:34 -06:00
Thierry Treyer
cc12264847
Fix exclusive_size for F14FastSet
2023-10-09 10:41:34 -06:00
Thierry Treyer
76adc64723
Fix exclusive_size for F14ValueSet
2023-10-09 10:41:34 -06:00
Alastair Robertson
35d45c2b4f
folly::sorted_vector_map: Add key-capture support
2023-09-29 11:21:41 -07:00
Alastair Robertson
5572e294f7
CaptureKeys: Add support for std::map and std::unordered_map
2023-09-28 19:42:49 -07:00
Alastair Robertson
4afa2ff190
CodeGen: Add support for key capture
2023-09-28 19:42:49 -07:00
Alastair Robertson
1f66ef064a
ContainerInfo: Read "extra" codegen field
2023-09-28 19:42:49 -07:00
Jake Hillion
edb7bf5f3f
Implement Container V2 for folly::sorted_vector_set
2023-09-27 19:06:20 -07:00
Jake Hillion
8bad704d9c
Implement Container V2 for fbstring
2023-09-27 18:16:36 -07:00
Jake Hillion
d71307cb43
oil: change std::stack reference to a std::function ( #345 )
...
Summary:
Previously on large types OIL would have problems with corrupting the `std::stack<exporter::inst::Inst>` that is passed to the processors. This change hides the implementation of the stack from the processors by wrapping the call to emplace in a `std::function` written by the non-generated code, which solves the test case I've seen for this crashing. It also allows us to easily change the stack implementation in future - I plan to change it to a `std::stack<T, std::vector<T>>` in a follow up.
Reviewed By: tyroguru
Differential Revision: D49273116
2023-09-14 16:57:45 +01:00
Thierry Treyer
331c47705c
Implement Container V2 for folly::small_vector
2023-09-08 16:34:34 +02:00
Thierry Treyer
465303cb99
Implement new container for F14ValueMap
2023-09-08 16:31:36 +02:00
Thierry Treyer
5d3aeec86d
Implement new container for F14ValueSet
2023-09-08 16:31:36 +02:00
Thierry Treyer
0df6879f66
Implement Container V2 for F14FastSet
2023-09-08 16:31:36 +02:00
Thierry Treyer
a3d14d227f
Implement Container V2 for F14NodeSet
2023-09-08 16:31:36 +02:00
Thierry Treyer
65fecf314a
Implement Container V2 for F14VectorSet
2023-09-08 16:31:36 +02:00
Thierry Treyer
f8a28b41ef
Document lack of byte-accurate reporting for F14Map
2023-09-07 18:47:09 +02:00
Thierry Treyer
b327cf956b
Implement Container V2 for F14FastMap
2023-09-07 18:47:09 +02:00
Thierry Treyer
b8e2770e2c
Implement Container V2 for F14NodeMap
2023-09-07 18:47:09 +02:00
Thierry Treyer
d2a40b4f45
Implement Container V2 for F14VectorMap
2023-09-07 18:47:09 +02:00
Thierry Treyer
a5284549da
Implement Container V2 for std::shared_ptr
2023-08-31 20:07:32 +02:00
Thierry Treyer
344023239b
Add OILv2 tests for std::optional
2023-08-31 20:07:32 +02:00
Jake Hillion
a95d6f2187
add support for std::optional in treebuilder v2
2023-08-31 20:07:32 +02:00
Thierry Treyer
2699b4a665
Implement Container V2 for std::unique_ptr
2023-08-31 20:07:32 +02:00
Thierry Treyer
deb7dcdf1c
Implement Container V2 for std::unordered_multiset
2023-08-30 18:45:00 +02:00
Thierry Treyer
54e01cfe27
Implement Container V2 for std::unordered_multimap
2023-08-30 18:45:00 +02:00
Thierry Treyer
7bdf72ec58
Implement Container V2 for std::unordered_map
2023-08-30 18:45:00 +02:00
Thierry Treyer
c1f322dc42
Implement Container V2 for std::unordered_set
2023-08-30 18:45:00 +02:00
Jake Hillion
6b90401f51
tbv2: add make_field helper
2023-08-29 17:41:10 +01:00
Jake Hillion
d009f02ecb
name contained types properly in treebuilder v2
...
Types within containers were previously named TODO. This sorts it out so
they're named as their most resolved type. The current implementation
skips Typedef names.
2023-08-25 16:25:14 +01:00
Thierry Treyer
1459433a50
Implement Container V2 for std::multiset
2023-08-25 16:07:10 +02:00
Thierry Treyer
f9b4d65cd8
Implement Container V2 for std::multimap
2023-08-25 16:07:10 +02:00
Thierry Treyer
5117482596
Update std::set container with static element_size
2023-08-25 15:13:55 +02:00
Thierry Treyer
19222a4fe2
Implement Container V2 for std::map
2023-08-25 15:13:55 +02:00
Thierry Treyer
b8cb81e366
std::set implementation for Container V2
2023-08-24 13:57:27 +02:00
Jake Hillion
5071519e45
oil v2
2023-08-23 15:59:53 +01:00
Thierry Treyer
e60d06a321
Fix JIT CodeGen for Try<>
2023-08-21 19:16:13 +02:00
Thierry Treyer
ca0c71fa40
Workaround for #289 missing symbol ( #290 )
2023-08-17 13:53:14 +01:00
Alastair Robertson
99462b2132
Types: Fix folly::small_vector and folly::sorted_vector_map
...
folly::sorted_vector_map's results are not completely accurate, but at
least CodeGen v2 matches CodeGen v1 for it now.
2023-07-26 10:07:30 +01:00
Aditya Sarwade
1334e08d05
Specify namespace for IOBuf in IOBufQueue function
...
Things can fail if there are only IOBufQueue objects but no IOBuf
object. Just specify the namespace too.
2023-07-19 11:13:39 +01:00
Jake Hillion
608880e156
typed data segment: fix vector handler for custom allocators
2023-07-05 19:06:18 +01:00
Jake Hillion
099be82459
thrift isset: add type handler
2023-07-05 17:52:42 +01:00
Alastair Robertson
31050735d6
CodeGen: Add support for capturing Thrift isset data
2023-07-04 15:36:27 +01:00
Jake Hillion
6aead62652
static types: place in own header for testing
2023-06-30 12:54:02 +01:00
Alastair Robertson
cf583700fa
Add missing namespace to folly::IOBuf container TOML
...
Required for CodeGen v2, which does not add "using namespace xxx" and
uses fully qualified names instead.
2023-06-29 11:59:07 +01:00
Alastair Robertson
04715e2015
TypeGraph: Create dummy containers
...
These represent types which don't store any interesting data for us to
measure, but which are required by a real container so can not be
replaced with our own generated class types.
std::allocator often has bad DWARF, so it must be replaced after the
DWARF is fixed up in Flattener. The others could be replaced earlier in
the transformation process if desired, but I've left them all together
for simplicity for now.
This fixes the folly::fbstring tests.
2023-06-28 16:11:50 +01:00
Jake Hillion
edaf499ced
TypedDataSegment: add handlers for all tested types
2023-06-19 19:06:04 +01:00
Alastair Robertson
784b900218
TypeGraph: Replace allocators with DummyAllocator
...
When we were previously removing allocators, we were only able to work
with containers whose allocators appeared as their last template
parameter.
Now we can replace allocators in the middle of a parameter list.
This fixes tests for folly::sorted_vector_set.
2023-05-31 15:49:37 +01:00