[llvm] r342518 - [XRay][compiler-rt] FDRLogWriter Abstraction

Evgenii Stepanov via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 19 17:33:02 PDT 2018


It's easy to reproduce by adapting a cmake line from
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/15734/steps/build%20standalone%20compiler-rt/logs/stdio

On Wed, Sep 19, 2018 at 5:32 PM, Evgenii Stepanov <eugeni.stepanov at gmail.com
> wrote:

> It not help.
> For me, the compilation command line ends with
> -I/code/llvm-project/compiler-rt/lib/xray -I/code/llvm-project/compiler-rt/lib
> -I/code/llvm-project/llvm/include -I/code/llvm-project/llvm/include
> /code/build-llvm/include -m64 -c -o TEST_OBJECTS.profile_collector_test.cc.x86_64.o
> /code/llvm-project/compiler-rt/lib/xray/tests/unit/
> profile_collector_test.cc
>
> See the argument before -m64.
>
> On Wed, Sep 19, 2018 at 4:54 PM, Dean Michael Berris <dberris at google.com>
> wrote:
>
>> That error is not terribly helpful though -- which linker argument is not
>> used?
>>
>> I attempted a fix for this in https://reviews.llvm.org/rL342523, did
>> that not fix the issue for the standalone build?
>>
>> On Thu, Sep 20, 2018 at 8:31 AM Evgenii Stepanov <
>> eugeni.stepanov at gmail.com> wrote:
>>
>>> Reverted in r342596.
>>>
>>> On Wed, Sep 19, 2018 at 3:10 PM, Evgenii Stepanov <
>>> eugeni.stepanov at gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> this is failing on the bot:
>>>> http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/
>>>> builds/15732/steps/test%20standalone%20compiler-rt/logs/stdio
>>>>
>>>> clang-8: error: /b/sanitizer-x86_64-linux/build/llvm_build64/include: 'linker' input unused [-Werror,-Wunused-command-line-argument]
>>>>
>>>>
>>>> The compiler (with -c flag) command line includes the path mentioned
>>>> above without -I .
>>>> I'm not sure how that happens, but reverting this change (along with
>>>> another one that depends on it) helps.
>>>>
>>>>
>>>>
>>>> On Tue, Sep 18, 2018 at 4:59 PM, Dean Michael Berris via llvm-commits <
>>>> llvm-commits at lists.llvm.org> wrote:
>>>>
>>>>> Author: dberris
>>>>> Date: Tue Sep 18 16:59:32 2018
>>>>> New Revision: 342518
>>>>>
>>>>> URL: http://llvm.org/viewvc/llvm-project?rev=342518&view=rev
>>>>> Log:
>>>>> [XRay][compiler-rt] FDRLogWriter Abstraction
>>>>>
>>>>> Summary:
>>>>> This change introduces an `FDRLogWriter` type which is responsible for
>>>>> serialising metadata and function records to character buffers. This is
>>>>> the first step in a refactoring of the implementation of the FDR
>>>>> runtime
>>>>> to allow for more granular testing of the individual components of the
>>>>> implementation.
>>>>>
>>>>> The main contribution of this change is a means of hiding the details
>>>>> of
>>>>> how specific records are written to a buffer, and for managing the
>>>>> extents of these buffers. We make use of C++ features (templates and
>>>>> some metaprogramming) to reduce repetition in the act of writing out
>>>>> specific kinds of records to the buffer.
>>>>>
>>>>> In this process, we make a number of changes across both LLVM and
>>>>> compiler-rt to allow us to use the `Trace` abstraction defined in the
>>>>> LLVM project in the testing of the runtime implementation. This gives
>>>>> us
>>>>> a closer end-to-end test which version-locks the runtime implementation
>>>>> with the loading implementation in LLVM.
>>>>>
>>>>> We also allow using gmock in compiler-rt unit tests, by adding the
>>>>> requisite definitions in the `AddCompilerRT.cmake` module.
>>>>>
>>>>> Finally, we've gone ahead and updated the FDR logging implementation to
>>>>> use the FDRLogWriter for the lowest-level record-writing details.
>>>>>
>>>>> Following patches will isolate the state machine transitions which
>>>>> manage the set-up and tear-down of the buffers we're using in multiple
>>>>> threads.
>>>>>
>>>>> Reviewers: mboerger, eizan
>>>>>
>>>>> Subscribers: mgorny, jfb, llvm-commits
>>>>>
>>>>> Differential Revision: https://reviews.llvm.org/D52220
>>>>>
>>>>> Modified:
>>>>>     llvm/trunk/include/llvm/XRay/Trace.h
>>>>>
>>>>> Modified: llvm/trunk/include/llvm/XRay/Trace.h
>>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/
>>>>> XRay/Trace.h?rev=342518&r1=342517&r2=342518&view=diff
>>>>> ============================================================
>>>>> ==================
>>>>> --- llvm/trunk/include/llvm/XRay/Trace.h (original)
>>>>> +++ llvm/trunk/include/llvm/XRay/Trace.h Tue Sep 18 16:59:32 2018
>>>>> @@ -46,20 +46,25 @@ namespace xray {
>>>>>  ///
>>>>>  class Trace {
>>>>>    XRayFileHeader FileHeader;
>>>>> -  std::vector<XRayRecord> Records;
>>>>> +  using RecordVector = std::vector<XRayRecord>;
>>>>> +  RecordVector Records;
>>>>>
>>>>>    typedef std::vector<XRayRecord>::const_iterator citerator;
>>>>>
>>>>>    friend Expected<Trace> loadTrace(const DataExtractor &, bool);
>>>>>
>>>>>  public:
>>>>> +  using size_type = RecordVector::size_type;
>>>>> +  using value_type = RecordVector::value_type;
>>>>> +  using const_iterator = RecordVector::const_iterator;
>>>>> +
>>>>>    /// Provides access to the loaded XRay trace file header.
>>>>>    const XRayFileHeader &getFileHeader() const { return FileHeader; }
>>>>>
>>>>> -  citerator begin() const { return Records.begin(); }
>>>>> -  citerator end() const { return Records.end(); }
>>>>> +  const_iterator begin() const { return Records.begin(); }
>>>>> +  const_iterator end() const { return Records.end(); }
>>>>>    bool empty() const { return Records.empty(); }
>>>>> -  size_t size() const { return Records.size(); }
>>>>> +  size_type size() const { return Records.size(); }
>>>>>  };
>>>>>
>>>>>  /// This function will attempt to load XRay trace records from the
>>>>> provided
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> llvm-commits mailing list
>>>>> llvm-commits at lists.llvm.org
>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>>>>
>>>>
>>>>
>>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180919/a3596cd8/attachment-0001.html>


More information about the llvm-commits mailing list