Skip to content
  1. May 29, 2019
    • Reid Kleckner's avatar
      Move the pybool logic from CMake to Python for simplicity · b9b64468
      Reid Kleckner authored
      This is how similar booleans are handled, and seems to work for me
      locally.
      
      llvm-svn: 362039
      b9b64468
    • Reid Kleckner's avatar
      Add debuginfo-tests that use cdb on Windows · 75d38f1e
      Reid Kleckner authored
      This is an initial prototype of how we can run debugger integration
      tests on Windows. cdb and windbg share a command language and debugger
      engine. Visual Studio has its own, but we should at least be able to use
      cdb as the basis for optimized debug info integration tests.
      
      There's a lot of work to do here still. For example:
      - Make fewer assumptions about the SDK location
      - Don't assume x64 (important, I need x86 testing)
      - More environment isolation, have lit setup vcvars instead of passing
        LIB and INCLUDE down.
      - Write a .py file to replace the grep+sed RUN line
      
      But, this seemed like a good enough concept to commit as is, since it's
      useful to me already.
      
      Reviewers: aprantl, zturner
      
      Differential Revision: https://reviews.llvm.org/D54187
      
      llvm-svn: 361889
      75d38f1e
  2. Nov 06, 2018
  3. Nov 03, 2018
  4. Aug 20, 2018
  5. Aug 18, 2018
  6. Aug 17, 2018
  7. Aug 14, 2018
    • Vlad Tsyrklevich's avatar
      SafeStack: Disable Darwin support · cd4056c8
      Vlad Tsyrklevich authored
      SafeStack support for Darwin has not been functional and was disabled in
      r339719/r339720. Disable Darwin for the safestack debuginfo test.
      
      llvm-svn: 339732
      cd4056c8
  8. Aug 04, 2018
  9. Jul 31, 2018
  10. Jul 26, 2018
    • Vedant Kumar's avatar
      [DebugInfo] LowerDbgDeclare: Add derefs when handling CallInst users · b572f642
      Vedant Kumar authored
      LowerDbgDeclare inserts a dbg.value before each use of an address
      described by a dbg.declare. When inserting a dbg.value before a CallInst
      use, however, it fails to append DW_OP_deref to the DIExpression.
      
      The DW_OP_deref is needed to reflect the fact that a dbg.value describes
      a source variable directly (as opposed to a dbg.declare, which relies on
      pointer indirection).
      
      This patch adds in the DW_OP_deref where needed. This results in the
      correct values being shown during a debug session for a program compiled
      with ASan and optimizations (see https://reviews.llvm.org/D49520). Note
      that ConvertDebugDeclareToDebugValue is already correct -- no changes
      there were needed.
      
      One complication is that SelectionDAG is unable to distinguish between
      direct and indirect frame-index (FRAMEIX) SDDbgValues. This patch also
      fixes this long-standing issue in order to not regress integration tests
      relying on the incorrect assumption that all frame-index SDDbgValues are
      indirect. This is a necessary fix: the newly-added DW_OP_derefs cannot
      be lowered properly otherwise. Basically the fix prevents a direct
      SDDbgValue with DIExpression(DW_OP_deref) from being dereferenced twice
      by a debugger. There were a handful of tests relying on this incorrect
      "FRAMEIX => indirect" assumption which actually had incorrect
      DW_AT_locations: these are all fixed up in this patch.
      
      Testing:
      
      - check-llvm, and an end-to-end test using lldb to debug an optimized
        program.
      - Existing unit tests for DIExpression::appendToStack fully cover the
        new DIExpression::append utility.
      - check-debuginfo (the debug info integration tests)
      
      Differential Revision: https://reviews.llvm.org/D49454
      
      llvm-svn: 338069
      b572f642
  11. Jul 18, 2018
  12. Jun 10, 2018
    • Ahmed Bougacha's avatar
      [debuginfo-tests] Always use the system python to invoke llgdb.py. · 3629e3a2
      Ahmed Bougacha authored
      /usr/bin/env is recommended as a cross-platform way to find python. But:
      - we're only using lldb on darwin, where we know python (or at least,
        the xcrun-style shortcut) is in /usr/bin/
      - the python interpreter in LLDB comes from /S/L/F:
        $ otool -L Contents/SharedFrameworks/LLDB.framework/LLDB | grep Python
         /System/Library/Frameworks/Python.framework/Versions/2.7/Python
      
      so when we use the lldb python module, it calls into the swig/python
      support in the lldb framework, and if there's a mismatch between the
      interpreter and the linked python, weird things occur.
      
      In theory, I believe this should be done by:
      - looking for the LLDB framework (llgdb.py does some of that)
      - finding the binary inside the framework
      - looking for the Python it was linked against (otool -L)
      - finding the interpreter executable inside the Python.framework
      
      But in practice, that's only different if we use a custom LLDB
      framework/pythonpath when running these tests, and AFAIK nobody does
      that right now, so the code would be dead anyway.
      
      Don't pretend we can use any arbitrary python: just use the system one.
      
      Differential Revision: https://reviews.llvm.org/D47967
      
      llvm-svn: 334369
      3629e3a2
  13. Feb 26, 2018
  14. Feb 23, 2018
  15. Dec 12, 2017
  16. Dec 07, 2017
  17. Dec 05, 2017
  18. Nov 21, 2017
    • Zachary Turner's avatar
      Re-revert "Refactor debuginfo-tests." · 79708b54
      Zachary Turner authored
      This is still breaking greendragon.
      
      At this point I give up until someone can fix the greendragon
      bots, and I will probably abandon this effort in favor of using
      a private github repository.
      
      llvm-svn: 318722
      79708b54
  19. Nov 20, 2017
    • Zachary Turner's avatar
      Resubmit "Refactor debuginfo-tests" again. · 8b6ef88e
      Zachary Turner authored
      This was reverted due to the tests being run twice on some
      build bots.  Each run had a slightly different configuration
      due to the way in which it was being invoked.  This fixes
      the problem (albeit in a somewhat hacky way).  Hopefully in
      the future we can get rid of the workflow of running
      debuginfo-tests as part of clang, and then this hack can
      go away.
      
      llvm-svn: 318697
      8b6ef88e
  20. Nov 17, 2017
    • Zachary Turner's avatar
      Re-revert "Refactor debuginfo-tests" · b5c237ec
      Zachary Turner authored
      This is still broken because it causes certain tests to be
      run twice with slightly different configurations, which is
      wrong in some cases.
      
      You can observe this by running:
      
        ninja -nv check-all | grep debuginfo-tests
      
      And seeing that it passes clang/test and clang/test/debuginfo-tests
      to lit, which causes it to run debuginfo-tests twice.  The fix is
      going to involve either:
      
        a) figuring out that we're running in this "deprecated" configuration,
           and then deleting the clang/test/debuginfo-tests path, which should
           cause it to behave identically to before, or:
        b) make lit smart enough that it doesn't descend into a sub-suite if
           that sub-suite already has a lit.cfg file.
      
      llvm-svn: 318486
      b5c237ec
  21. Nov 16, 2017
    • Zachary Turner's avatar
      Resubmit "Refactor debuginfo-tests" · 5e420717
      Zachary Turner authored
      This was reverted due to some failures on specific darwin buildbots,
      the issue being that the new lit configuration was not setting the
      SDKROOT environment variable.  We've tested a fix locally and confirmed
      that it works, so this patch resubmits everything with the fix
      applied.
      
      llvm-svn: 318435
      5e420717
  22. Nov 14, 2017
  23. Nov 10, 2017
    • Zachary Turner's avatar
      [debuginfo-tests] Make debuginfo-tests work in a standard configuration. · 0f2ce11d
      Zachary Turner authored
      Previously, debuginfo-tests was expected to be checked out into
      clang/test and then the tests would automatically run as part of
      check-clang.  This is not a standard workflow for handling
      external projects, and it brings with it some serious drawbacks
      such as the inability to depend on things other than clang, which
      we will need going forward.
      
      The goal of this patch is to migrate towards a more standard
      workflow.  To ease the transition for build bot maintainers,
      this patch tries not to break the existing workflow, but instead
      simply deprecate it to give maintainers a chance to update
      the build infrastructure.
      
      Differential Revision: https://reviews.llvm.org/D39605
      
      llvm-svn: 317925
      0f2ce11d
  24. Sep 19, 2017
  25. Sep 15, 2017
  26. Sep 08, 2017
  27. Aug 31, 2017
    • Reid Kleckner's avatar
      Fix debuginfo-tests with GDB on Linux · a6fc06ba
      Reid Kleckner authored
      Summary:
      Split asan.c into asan.c and asan-blocks.c, which will be
      darwin-specific. I suspect we could make it pass on Linux by adding
      cmake to build BlocksRuntime from compiler-rt, but I'm not shaving that
      yak yet.
      
      asan.c and safestack.c: GDB and LLDB appear to print aggregates
      differently today. Print individual elements instead of the entire
      aggregate.
      
      dbg-arg.c: GDB doesn't appear to print leading zeros when printing
      pointers.
      
      stack-var.c: Add the optnone attribute so that LLVM won't optimize away
      this no-op function call. This should be a cross-platform failure
      observable on Mac, so this is surprising.
      
      Reviewers: aprantl, dblaikie
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D37344
      
      llvm-svn: 312265
      a6fc06ba
  28. May 25, 2017
    • Adrian Prantl's avatar
      Add a test for PR33166. · efd2b8f8
      Adrian Prantl authored
      This tests optimized code where a variable is allocated on the
      stack for some part of the function.
      
      llvm-svn: 303903
      efd2b8f8
  29. Apr 17, 2017
Loading