This commit adds gc zeal mode 12 to force the use of the individual elements
edges barrier regardless of the size of the elements. It also adds a jit-test
which uses the zeal option. Hopefully, this will let the fuzzers go to town with
the new barrier type.
This commit teaches IonMonkey how to put individual array elements' edges in the
store buffer, rather than using the whole cell buffer. This alleviates
perfomance cliffs where there are very large arrays in the tenured heap and then
the mutator adds a relatively small number of edges from this array into the
nursery. With the whole cell buffer, which was used previously, a nursery
collection would need to trace the whole large array. With this patch, only
the modified edges need by traced.
- Handle Uint32x4 in RSimdBox::Recover. Add the missing test case.
- Move a shared assertion out of the switch.
- Actually inline the Uint32x4 constructor. The SimdTypeToMIRType function was
filtering it out.
We assume that the total number of cycles spent executing JS code
during an event is equal to the number of cycles in the "top group",
i.e. a group to which everything belongs. While this is true in
theory, RDTSC is actually non-monotonic, so we can end up with fewer
cycles reported for the top group than for some groups whose execution
was actually shorter. When we end up in this situation, groups with
more cycles than the top group will be reported as using more CPU than
was actually used.
This patch fixes the situation by proxying RDTSC behind a trivial API
that ensures that values are monotonic during each tick.
The flag is used to create .sbr files, which bscmake subsequently uses to
create .bsc files. These files and related tools are, aiui, the ancestors
of Intellisense.
The -FR C*FLAGS are added to the build if MOZ_BROWSE_INFO or MOZ_BSCFILE
are set in the recursive make backend. While the former has an AC_SUBST,
the latter does not, so in practice, only the former can be set by
supported methods, and would need to be set in a mozconfig. At that
rate, people who do want those flags can add them in the C*FLAGS on
their own.
Developers are probably better served by the VisualStudio backend
anyways.