- User Since
- Sep 11 2018, 11:58 AM (122 w, 5 d)
Sep 16 2019
Sep 15 2019
Sep 14 2019
Addresses problems running the standalone tool w/ the libTooling executors.
Sep 11 2019
Revert mismerge when landing.
Sep 10 2019
Add a new profdata file to use w/ misexpect-nonconst-switch.c
Sep 9 2019
Sep 7 2019
Sep 6 2019
Improve diagnostic output with profile counts
Remove commented out code
Address code review
Sep 5 2019
Aug 30 2019
Add clang and LLVM tests for __builtin_unpredictable
Add inline checks for misexpect tags to LowerExpectIntrinstic test
Update LowerExpectIntrinsic/basic.ll to generate misexpect metadata for a switch
Fix comment for misexpect option
Remove extra include from CodeGenFunction.cpp
Address Review items
Thanks for the review.
Aug 29 2019
Actually address nits
@leonardchan can you revise your review against the latest revision? It looks to me as though you might have reviewed one of the first diffs instead of what is the latest code. For example the files in clang-tools have not been part of this revision for some time. Also when I try to respond to the comment, it appears against the very first diff. I'm happy to address any of the nits that remain, but want to make sure that what you reviewed and given approval for is what will be submitted.
Aug 28 2019
Aug 27 2019
Add comment to clarify choice of operands and reasoning about profiling metadata
This is being abandoned in favor of D66324, which reimplements this logic completely in the LLVM backend.
Change check for minimum number of metadata operands.
Remove namespace qualifier & insert check for number of arguments
Removes unused constructor, reformat code, and remove braces
Aug 26 2019
Revert to use of auto when extracting metadata
Address Code Review
Add Nick Desaulniers as an additional reviewer
Aug 20 2019
Update LLVM based implementation
Aug 19 2019
Fix missing context in prior diff
- Update CodeGenOptions to remove -fmisexpect
- Access the LLVMContext directly
- Add -line-tables-only for more accurate diagnostics
Aug 16 2019
Remove frontend components of clang-misexpect in favor of backend implementations
So it is possible to handle this completely in the backed, but the diagnostic output is not fantastic when using clang based instrumentation. In particular, we would need to emit the diagnostic in LowerExpectIntrisic.cpp by checking if the branch weight metadata already exists, and processing it there before it is overwritten. For some reason emitting the diagnostic at that point will not also emit the helpful source listing if there is a macro, even though a FullSourceLoc is available. This isn't an issue for either the handling in SampleProfile.cpp or in PGOInstrumentation.cpp.
Remove reference to clang-misexpect from CMakeLists.txt
Removes standalone clang-misexpect from revision
Aug 15 2019
Aug 6 2019
Use existing LLVM code for mapping case literals to their case arms.
Aug 5 2019
Update threshold values to match those assigned when lowering __builtin_expect intrinsic.
Aug 2 2019
Update documentation and fix typos
Address feedback from review
Fix typo in comments
Jul 30 2019
Update diff to have proper context on Phabricator
Jul 25 2019
Add missing test for switch statements when the expected value is not a compile time constant.
Refactors some debug code to be more centralized and cleans up some comments.
Sep 13 2018
I've added support to Syringe for dispatching injected behaviors using direct calls, which follows the advice of Kostya Serebryany on CFE-dev http://lists.llvm.org/pipermail/cfe-dev/2018-September/059312.html