Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/llvm/llvm-project.git. Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
  1. Apr 09, 2022
  2. Apr 08, 2022
    • Aaron Ballman's avatar
      Clarify language option default value behavior; NFC · be937165
      Aaron Ballman authored
      The LANGOPT macro allows you to specify a default value for the
      langauge option. However, it's expected that these values be constant
      rather than depending on other language options (because the
      constructor setting the default values does not know the language mode
      at the time it's being constructed).
      
      Some of our language options were abusing this and passing in other
      language mode options which were then set correctly by other parts of
      frontend initialization. This removes the default values for the
      language options, and then ensures they're consistently set from the
      same place when setting language standard defaults.
      be937165
    • Joseph Huber's avatar
      [OpenMP] Remove help and documentation for old flag · ae377575
      Joseph Huber authored
      Summary:
      The `-fopenmp-target-new-runtime` flag has not been used for awhile. It
      was present in a previous release so we shouldn't remove it for
      backwards compatibility, but we shouldn't have documentation or a help
      message for it.
      ae377575
    • Nikita Popov's avatar
      [CGCall] Make findDominatingStoreToReturnValue() more robust · 692a147b
      Nikita Popov authored
      This was skipping specific lifetime + bitcast patterns, but with
      opaque pointers the bitcast will not be present, and we did not
      perform this fold.
      
      Instead skip over lifetime.end and bitcasts generally, without
      trying to correlate them.
      692a147b
    • Sven van Haastregt's avatar
      [OpenCL] Add generic addrspace guards for get_fence · 1331ad22
      Sven van Haastregt authored
      Align guards of these builtins with opencl-c.h.
      1331ad22
    • Kito Cheng's avatar
    • Kristóf Umann's avatar
      [analyzer] Don't track function calls as control dependencies · fd8e5762
      Kristóf Umann authored
      I recently evaluated ~150 of bug reports on open source projects relating to my
      GSoC'19 project, which was about tracking control dependencies that were
      relevant to a bug report.
      
      Here is what I found: when the condition is a function call, the extra notes
      were almost always unimportant, and often times intrusive:
      
      void f(int *x) {
        x = nullptr;
        if (alwaysTrue()) // We don't need a whole lot of explanation
                          // here, the function name is good enough.
          *x = 5;
      }
      It almost always boiled down to a few "Returning null pointer, which participates
      in a condition later", or similar notes. I struggled to find a single case
      where the notes revealed anything interesting or some previously hidden
      correlation, which is kind of the point of condition tracking.
      
      This patch checks whether the condition is a function call, and if so, bails
      out.
      
      The argument against the patch is the popular feedback we hear from some of our
      users, namely that they can never have too much information. I was specifically
      fishing for examples that display best that my contribution did more good than
      harm, so admittedly I set the bar high, and one can argue that there can be
      non-trivial trickery inside functions, and function names may not be that
      descriptive.
      
      My argument for the patch is all those reports that got longer without any
      notable improvement in the report intelligibility. I think the few exceptional
      cases where this patch would remove notable information are an acceptable
      sacrifice in favor of more reports being leaner.
      
      Differential Revision: https://reviews.llvm.org/D116597
      fd8e5762
    • Iain Sandoe's avatar
      [C++20][Modules] Adjust handling of exports of namespaces and using-decls. · f60dc3ca
      Iain Sandoe authored
      This adjusts the handling for:
      
      export module  M;
      
      export namespace {};
      
      export namespace N {};
      export using namespace N;
      
      In the first case, we were allowing empty anonymous namespaces
      as part of an extension allowing empty top-level entities, but that seems
      inappropriate in this case, since the linkage would be internal for the
      anonymous namespace.  We now report an error for this.
      
      The second case was producing a warning diagnostic that this was
      accepted as an extension - however the C++20 standard does allow this
      as well-formed.
      
      In the third case we keep the current practice that this is accepted with a
      warning (as an extension). The C++20 standard says it's an error.
      
      We also ensure that using decls are only applied to items with external linkage.
      
      This adjusts error messages for exports involving redeclarations in modules to
      be more specific about the reason that the decl has been rejected.
      
      Differential Revision: https://reviews.llvm.org/D122119
      f60dc3ca
    • serge-sans-paille's avatar
      [Clang][Fortify] drop inline decls when redeclared · 301e0d91
      serge-sans-paille authored
      When an inline builtin declaration is shadowed by an actual declaration, we must
      reference the actual declaration, even if it's not the last, following GCC
      behavior.
      
      This fixes #54715
      
      Differential Revision: https://reviews.llvm.org/D123308
      301e0d91
    • Jan Svoboda's avatar
      [clang][deps] Ensure deterministic filename case · b672638d
      Jan Svoboda authored
      The dependency scanner can reuse single FileManager instance across multiple translation units. This may lead to non-deterministic output depending on which TU gets processed first.
      
      One of the problems is that Clang uses DirectoryEntry::getName in the header search algorithm. This function returns the path that was first used to construct the (shared) entry in FileManager. Using DirectoryEntryRef::getName instead preserves the case as it was spelled out for the current "get directory entry" request.
      
      rdar://90647508
      
      Reviewed By: dexonsmith
      
      Differential Revision: https://reviews.llvm.org/D123229
      b672638d
    • Kito Cheng's avatar
      Reland "[RISCV][NFC] Moving RVV intrinsic type related util to llvm/Support" · fc2d8326
      Kito Cheng authored
      Reland Note: We've resolve the circular dependency issue on llvm/lib/Support and
      llvm/TableGen.
      
      Differential Revision: https://reviews.llvm.org/D121984
      fc2d8326
    • Chuanqi Xu's avatar
      [NFC] Remove unused variable in CodeGenModules · 74b56e02
      Chuanqi Xu authored
      This eliminates an unused-variable warning
      74b56e02
    • David Blaikie's avatar
      DebugInfo: Consider the type of NTTP when simplifying template names · 1cee3d9d
      David Blaikie authored
      Since the NTTP may need to be cast to the type when rebuilding the name,
      check that the type can be rebuilt when determining whether a template
      name can be simplified.
      1cee3d9d
    • Quinn Pham's avatar
      Revert "[PowerPC] Fix EmitPPCBuiltinExpr to emit arguments once" · fef56f79
      Quinn Pham authored
      This reverts commit 2aae5b1f. Because it
      breaks tests on windows.
      fef56f79
    • Quinn Pham's avatar
      [PowerPC] Fix EmitPPCBuiltinExpr to emit arguments once · 2aae5b1f
      Quinn Pham authored
      This patch changes `EmitPPCBuiltinExpr` in `CGBuiltin.cpp` to remove
      the loop at the beginning of the function that emits the arguments and
      to delay emitting the arguments until inside the switch statement. These
      changes will put `EmitPPCBuiltinExpr` in line with the strategy of the
      target independent function `EmitBuiltinExpr`. Also, this patch
      ensures that arguments are only emitted once.
      
      Tests that included builtins affected by these changes have been
      modified to match expected behaviour.
      
      Reviewed By: #powerpc, nemanjai, amyk
      
      Differential Revision: https://reviews.llvm.org/D121637
      2aae5b1f
    • Emil Kieri's avatar
      [Driver][NFC] Simplify handling of flags in Options.td · da1fc3ae
      Emil Kieri authored
      We aim at improving the readability and maintainability of Options.td,
      and in particular its handling of 'Flags', by
       - limiting the extent of 'let Flags = [...] in {'s, and
       - adding closing comments to matching '}'s.
       - being more consistent about empty lines around 'let Flags' and '}'.
      
      More concretely,
       - we do not let a 'let Flags' span across several headline comments.
         When all 'def's in two consecutive headlines share the same flags,
         we stil close and start a new 'let Flags' at the intermediate
         headline.
       - when a 'let Flags' span just one or two 'def's, set 'Flags' within
         the 'def's instead.
       - we remove nested 'let Flags'.
      
      Note that nested 'let Flags' can be quite confusing, especially when
      the outer was started long before the inner. Moving a 'def' out of the
      inner 'let Flags' and setting 'Flags' within the 'def' will not have the
      intended effect, as those flags will be overridden by the outer
      'let Flags'.
      
      Reviewed By: awarzynski, jansvoboda11, hans
      
      Differential Revision: https://reviews.llvm.org/D123070
      da1fc3ae
    • Alex Brachet's avatar
      50de659a
    • Alex Brachet's avatar
      3329dae5
    • Daniel Grumberg's avatar
    • Pavel Samolysov's avatar
      [clang][NFC] Extract EmitAssemblyHelper::shouldEmitRegularLTOSummary · b4ac8490
      Pavel Samolysov authored
      The code to check if the regular LTO summary should be emitted and to
      add the corresponding module flags was duplicated in the
      'EmitAssemblyHelper::EmitAssemblyWithLegacyPassManager' and
      'EmitAssemblyHelper::RunOptimizationPipeline' methods.
      
      In order to eliminate these code duplications, the
      'EmitAssemblyHelper::shouldEmitRegularLTOSummary' method has been
      extracted. The method returns a bool value, the value is 'true' if the
      module summary should be emitted. The patch keeps the setting of the
      module flags inline.
      
      Reviewed By: tejohnson
      
      Differential Revision: https://reviews.llvm.org/D123026
      b4ac8490
    • Zixu Wang's avatar
      [clang][ExtractAPI] Fix declaration fragments for ObjC methods · 4048aad8
      Zixu Wang authored
      Objective-C methods selector parts should be considered as identifiers.
      
      Depends on D123259
      
      Differential Revision: https://reviews.llvm.org/D123261
      4048aad8
    • Daniel Grumberg's avatar
      [clang][extract-api] Process only APIs declared in inputs · aebe5fc6
      Daniel Grumberg authored
      We should only process APIs declared in the command line inputs to avoid
      drowning the ExtractAPI output with symbols the user doesn't care about.
      This is achieved by keeping track of the provided input files and
      checking that the associated Decl or Macro is declared in one of those files.
      
      Differential Revision: https://reviews.llvm.org/D123148
      aebe5fc6
    • Zixu Wang's avatar
      [clang][ExtractAPI] Fix appendSpace in DeclarationFragments · fe2c77a0
      Zixu Wang authored
      There is a bug in `DeclarationFragments::appendSpace` where the space
      character is added to a local copy of the last fragment.
      
      Differential Revision: https://reviews.llvm.org/D123259
      fe2c77a0
  3. Apr 07, 2022
Loading