1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 02:33:06 +01:00

[docs] Fix doxygen comments wrongly attached to the llvm namespace

Looking at the Doxygen-generated documentation for the llvm namespace
currently shows all sorts of random comments from different parts of the
codebase. These are mostly caused by:

- File doc comments that aren't marked with \file, so they're attached to
  the next declaration, which is usually "namespace llvm {".
- Class doc comments placed before the namespace rather than before the
  class.
- Code comments before the namespace that (in my opinion) shouldn't be
  extracted by doxygen at all.

This commit fixes these comments. The generated doxygen documentation now
has proper docs for several classes and files, and the docs for the llvm
and llvm::detail namespaces are now empty.

Reviewed By: thakis, mizvekov

Differential Revision: https://reviews.llvm.org/D96736
This commit is contained in:
Nicolás Alvarez 2021-04-07 00:15:04 +02:00 committed by Matheus Izvekov
parent 9cb5c40827
commit 0bad578cf3
32 changed files with 87 additions and 79 deletions

View File

@ -79,13 +79,6 @@ template <typename T> struct make_const_ref {
typename std::add_const<T>::type>::type; typename std::add_const<T>::type>::type;
}; };
/// Utilities for detecting if a given trait holds for some set of arguments
/// 'Args'. For example, the given trait could be used to detect if a given type
/// has a copy assignment operator:
/// template<class T>
/// using has_copy_assign_t = decltype(std::declval<T&>()
/// = std::declval<const T&>());
/// bool fooHasCopyAssign = is_detected<has_copy_assign_t, FooClass>::value;
namespace detail { namespace detail {
template <typename...> using void_t = void; template <typename...> using void_t = void;
template <class, template <class...> class Op, class... Args> struct detector { template <class, template <class...> class Op, class... Args> struct detector {
@ -97,16 +90,23 @@ struct detector<void_t<Op<Args...>>, Op, Args...> {
}; };
} // end namespace detail } // end namespace detail
/// Detects if a given trait holds for some set of arguments 'Args'.
/// For example, the given trait could be used to detect if a given type
/// has a copy assignment operator:
/// template<class T>
/// using has_copy_assign_t = decltype(std::declval<T&>()
/// = std::declval<const T&>());
/// bool fooHasCopyAssign = is_detected<has_copy_assign_t, FooClass>::value;
template <template <class...> class Op, class... Args> template <template <class...> class Op, class... Args>
using is_detected = typename detail::detector<void, Op, Args...>::value_t; using is_detected = typename detail::detector<void, Op, Args...>::value_t;
/// Check if a Callable type can be invoked with the given set of arg types.
namespace detail { namespace detail {
template <typename Callable, typename... Args> template <typename Callable, typename... Args>
using is_invocable = using is_invocable =
decltype(std::declval<Callable &>()(std::declval<Args>()...)); decltype(std::declval<Callable &>()(std::declval<Args>()...));
} // namespace detail } // namespace detail
/// Check if a Callable type can be invoked with the given set of arg types.
template <typename Callable, typename... Args> template <typename Callable, typename... Args>
using is_invocable = is_detected<detail::is_invocable, Callable, Args...>; using is_invocable = is_detected<detail::is_invocable, Callable, Args...>;

View File

@ -17,13 +17,13 @@
// ValueLatticeElement // ValueLatticeElement
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
namespace llvm {
/// This class represents lattice values for constants. /// This class represents lattice values for constants.
/// ///
/// FIXME: This is basically just for bringup, this can be made a lot more rich /// FIXME: This is basically just for bringup, this can be made a lot more rich
/// in the future. /// in the future.
/// ///
namespace llvm {
class ValueLatticeElement { class ValueLatticeElement {
enum ValueLatticeElementTy { enum ValueLatticeElementTy {
/// This Value has no known value yet. As a result, this implies the /// This Value has no known value yet. As a result, this implies the

View File

@ -5,7 +5,7 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
/// /// \file
/// This file declares a class that exposes a simple in-memory representation /// This file declares a class that exposes a simple in-memory representation
/// of a document of MsgPack objects, that can be read from MsgPack, written to /// of a document of MsgPack objects, that can be read from MsgPack, written to
/// MsgPack, and inspected and modified in memory. This is intended to be a /// MsgPack, and inspected and modified in memory. This is intended to be a

View File

@ -5,9 +5,9 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// /// \file
// This file contains support for writing accelerator tables. /// This file contains support for writing accelerator tables.
// ///
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#ifndef LLVM_CODEGEN_ACCELTABLE_H #ifndef LLVM_CODEGEN_ACCELTABLE_H
@ -30,6 +30,7 @@
#include <cstdint> #include <cstdint>
#include <vector> #include <vector>
/// \file
/// The DWARF and Apple accelerator tables are an indirect hash table optimized /// The DWARF and Apple accelerator tables are an indirect hash table optimized
/// for null lookup rather than access to known data. The Apple accelerator /// for null lookup rather than access to known data. The Apple accelerator
/// tables are a precursor of the newer DWARF v5 accelerator tables. Both /// tables are a precursor of the newer DWARF v5 accelerator tables. Both

View File

@ -5,9 +5,9 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// /// \file
/// Provides analysis for continuously CSEing during GISel passes. /// Provides analysis for continuously CSEing during GISel passes.
// ///
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#ifndef LLVM_CODEGEN_GLOBALISEL_CSEINFO_H #ifndef LLVM_CODEGEN_GLOBALISEL_CSEINFO_H
#define LLVM_CODEGEN_GLOBALISEL_CSEINFO_H #define LLVM_CODEGEN_GLOBALISEL_CSEINFO_H

View File

@ -5,10 +5,10 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// /// \file
/// This contains common code to drive combines. Combiner Passes will need to /// This contains common code to drive combines. Combiner Passes will need to
/// setup a CombinerInfo and call combineMachineFunction. /// setup a CombinerInfo and call combineMachineFunction.
// ///
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#ifndef LLVM_CODEGEN_GLOBALISEL_COMBINER_H #ifndef LLVM_CODEGEN_GLOBALISEL_COMBINER_H

View File

@ -5,13 +5,13 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// //
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
// /// \file
/// This contains common combine transformations that may be used in a combine /// This contains common combine transformations that may be used in a combine
/// pass,or by the target elsewhere. /// pass,or by the target elsewhere.
/// Targets can pick individual opcode transformations from the helper or use /// Targets can pick individual opcode transformations from the helper or use
/// tryCombine which invokes all transformations. All of the transformations /// tryCombine which invokes all transformations. All of the transformations
/// return true if the MachineInstruction changed and false otherwise. /// return true if the MachineInstruction changed and false otherwise.
// ///
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
#ifndef LLVM_CODEGEN_GLOBALISEL_COMBINERHELPER_H #ifndef LLVM_CODEGEN_GLOBALISEL_COMBINERHELPER_H

View File

@ -5,7 +5,7 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// /// \file
/// Interface for Targets to specify which operations are combined how and when. /// Interface for Targets to specify which operations are combined how and when.
/// ///
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//

View File

@ -5,11 +5,12 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// /// \file
/// This contains common code to allow clients to notify changes to machine /// This contains common code to allow clients to notify changes to machine
/// instr. /// instr.
// ///
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#ifndef LLVM_CODEGEN_GLOBALISEL_GISELCHANGEOBSERVER_H #ifndef LLVM_CODEGEN_GLOBALISEL_GISELCHANGEOBSERVER_H
#define LLVM_CODEGEN_GLOBALISEL_GISELCHANGEOBSERVER_H #define LLVM_CODEGEN_GLOBALISEL_GISELCHANGEOBSERVER_H

View File

@ -5,11 +5,12 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// /// \file
/// Provides analysis for querying information about KnownBits during GISel /// Provides analysis for querying information about KnownBits during GISel
/// passes. /// passes.
// ///
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#ifndef LLVM_CODEGEN_GLOBALISEL_GISELKNOWNBITS_H #ifndef LLVM_CODEGEN_GLOBALISEL_GISELKNOWNBITS_H
#define LLVM_CODEGEN_GLOBALISEL_GISELKNOWNBITS_H #define LLVM_CODEGEN_GLOBALISEL_GISELKNOWNBITS_H

View File

@ -5,10 +5,10 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// /// \file
/// Interface for Targets to specify which operations they can successfully /// Interface for Targets to specify which operations they can successfully
/// select and how the others should be expanded most efficiently. /// select and how the others should be expanded most efficiently.
// ///
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#ifndef LLVM_CODEGEN_GLOBALISEL_LEGALIZERINFO_H #ifndef LLVM_CODEGEN_GLOBALISEL_LEGALIZERINFO_H

View File

@ -5,9 +5,9 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// /// \file
/// Tracks DebugLocs between checkpoints and verifies that they are transferred. /// Tracks DebugLocs between checkpoints and verifies that they are transferred.
// ///
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#ifndef LLVM_CODEGEN_GLOBALISEL_LOSTDEBUGLOCOBSERVER_H #ifndef LLVM_CODEGEN_GLOBALISEL_LOSTDEBUGLOCOBSERVER_H
#define LLVM_CODEGEN_GLOBALISEL_LOSTDEBUGLOCOBSERVER_H #define LLVM_CODEGEN_GLOBALISEL_LOSTDEBUGLOCOBSERVER_H

View File

@ -5,10 +5,11 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// /// \file
/// Contains matchers for matching SSA Machine Instructions. /// Contains matchers for matching SSA Machine Instructions.
// ///
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#ifndef LLVM_CODEGEN_GLOBALISEL_MIPATTERNMATCH_H #ifndef LLVM_CODEGEN_GLOBALISEL_MIPATTERNMATCH_H
#define LLVM_CODEGEN_GLOBALISEL_MIPATTERNMATCH_H #define LLVM_CODEGEN_GLOBALISEL_MIPATTERNMATCH_H

View File

@ -6,9 +6,10 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// //
/// \file This file describes the interface of the MachineFunctionPass /// \file
/// This file describes the interface of the MachineFunctionPass
/// responsible for assigning the generic virtual registers to register bank. /// responsible for assigning the generic virtual registers to register bank.
///
/// By default, the reg bank selector relies on local decisions to /// By default, the reg bank selector relies on local decisions to
/// assign the register bank. In other words, it looks at one instruction /// assign the register bank. In other words, it looks at one instruction
/// at a time to decide where the operand of that instruction should live. /// at a time to decide where the operand of that instruction should live.

View File

@ -5,12 +5,12 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// /// \file
/// Implement a low-level type suitable for MachineInstr level instruction /// Implement a low-level type suitable for MachineInstr level instruction
/// selection. /// selection.
/// ///
/// This provides the CodeGen aspects of LowLevelType, such as Type conversion. /// This provides the CodeGen aspects of LowLevelType, such as Type conversion.
// ///
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#ifndef LLVM_CODEGEN_LOWLEVELTYPE_H #ifndef LLVM_CODEGEN_LOWLEVELTYPE_H

View File

@ -32,7 +32,7 @@ class raw_ostream;
} // End llvm namespace } // End llvm namespace
/// List of target independent CodeGen pass IDs. // List of target independent CodeGen pass IDs.
namespace llvm { namespace llvm {
FunctionPass *createAtomicExpandPass(); FunctionPass *createAtomicExpandPass();
@ -86,7 +86,7 @@ namespace llvm {
/// MachineDominators - This pass is a machine dominators analysis pass. /// MachineDominators - This pass is a machine dominators analysis pass.
extern char &MachineDominatorsID; extern char &MachineDominatorsID;
/// MachineDominanaceFrontier - This pass is a machine dominators analysis pass. /// MachineDominanaceFrontier - This pass is a machine dominators analysis.
extern char &MachineDominanceFrontierID; extern char &MachineDominanceFrontierID;
/// MachineRegionInfo - This pass computes SESE regions for machine functions. /// MachineRegionInfo - This pass computes SESE regions for machine functions.

View File

@ -5,9 +5,9 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// /// \file
/// Target-Independent Code Generator Pass Configuration Options pass. /// Target-Independent Code Generator Pass Configuration Options pass.
// ///
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#ifndef LLVM_CODEGEN_TARGETPASSCONFIG_H #ifndef LLVM_CODEGEN_TARGETPASSCONFIG_H

View File

@ -5,7 +5,7 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// \file /// \file
/// Contains the Analyses and Result Interpretation to select likely functions /// Contains the Analyses and Result Interpretation to select likely functions
/// to Speculatively compile before they are called. [Purely Experimentation] /// to Speculatively compile before they are called. [Purely Experimentation]
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//

View File

@ -6,7 +6,7 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
/// ///
/// \brief /// \file
/// This file contains the declaration of the GlobalIFunc class, which /// This file contains the declaration of the GlobalIFunc class, which
/// represents a single indirect function in the IR. Indirect function uses /// represents a single indirect function in the IR. Indirect function uses
/// ELF symbol type extension to mark that the address of a declaration should /// ELF symbol type extension to mark that the address of a declaration should

View File

@ -5,7 +5,7 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
/// /// \file
/// Provides implementations for PassManager and AnalysisManager template /// Provides implementations for PassManager and AnalysisManager template
/// methods. These classes should be explicitly instantiated for any IR unit, /// methods. These classes should be explicitly instantiated for any IR unit,
/// and files doing the explicit instantiation should include this header. /// and files doing the explicit instantiation should include this header.

View File

@ -28,7 +28,7 @@ template <typename IRUnitT> class AllAnalysesOn;
template <typename IRUnitT, typename... ExtraArgTs> class AnalysisManager; template <typename IRUnitT, typename... ExtraArgTs> class AnalysisManager;
class PreservedAnalyses; class PreservedAnalyses;
/// Implementation details of the pass manager interfaces. // Implementation details of the pass manager interfaces.
namespace detail { namespace detail {
/// Template for the abstract base class used to dispatch /// Template for the abstract base class used to dispatch

View File

@ -5,7 +5,7 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// //
//===-----------------------------------------------------------------------===/ //===-----------------------------------------------------------------------===/
/// /// \file
/// This supports reading and writing of elf dynamic shared objects. /// This supports reading and writing of elf dynamic shared objects.
/// ///
//===-----------------------------------------------------------------------===/ //===-----------------------------------------------------------------------===/

View File

@ -5,6 +5,19 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
///
/// \file
/// Lightweight arrays that are backed by an arbitrary BinaryStream. This file
/// provides two different array implementations.
///
/// VarStreamArray - Arrays of variable length records. The user specifies
/// an Extractor type that can extract a record from a given offset and
/// return the number of bytes consumed by the record.
///
/// FixedStreamArray - Arrays of fixed length records. This is similar in
/// spirit to ArrayRef<T>, but since it is backed by a BinaryStream, the
/// elements of the array need not be laid out in contiguous memory.
///
#ifndef LLVM_SUPPORT_BINARYSTREAMARRAY_H #ifndef LLVM_SUPPORT_BINARYSTREAMARRAY_H
#define LLVM_SUPPORT_BINARYSTREAMARRAY_H #define LLVM_SUPPORT_BINARYSTREAMARRAY_H
@ -17,16 +30,6 @@
#include <cassert> #include <cassert>
#include <cstdint> #include <cstdint>
/// Lightweight arrays that are backed by an arbitrary BinaryStream. This file
/// provides two different array implementations.
///
/// VarStreamArray - Arrays of variable length records. The user specifies
/// an Extractor type that can extract a record from a given offset and
/// return the number of bytes consumed by the record.
///
/// FixedStreamArray - Arrays of fixed length records. This is similar in
/// spirit to ArrayRef<T>, but since it is backed by a BinaryStream, the
/// elements of the array need not be laid out in contiguous memory.
namespace llvm { namespace llvm {
/// VarStreamArrayExtractor is intended to be specialized to provide customized /// VarStreamArrayExtractor is intended to be specialized to provide customized

View File

@ -72,9 +72,21 @@ struct format_provider<sys::TimePoint<>> {
StringRef Style); StringRef Style);
}; };
namespace detail {
template <typename Period> struct unit { static const char value[]; };
template <typename Period> const char unit<Period>::value[] = "";
template <> struct unit<std::ratio<3600>> { static const char value[]; };
template <> struct unit<std::ratio<60>> { static const char value[]; };
template <> struct unit<std::ratio<1>> { static const char value[]; };
template <> struct unit<std::milli> { static const char value[]; };
template <> struct unit<std::micro> { static const char value[]; };
template <> struct unit<std::nano> { static const char value[]; };
} // namespace detail
/// Implementation of format_provider<T> for duration types. /// Implementation of format_provider<T> for duration types.
/// ///
/// The options string of a duration type has the grammar: /// The options string of a duration type has the grammar:
/// ///
/// duration_options ::= [unit][show_unit [number_options]] /// duration_options ::= [unit][show_unit [number_options]]
/// unit ::= `h`|`m`|`s`|`ms|`us`|`ns` /// unit ::= `h`|`m`|`s`|`ms|`us`|`ns`
@ -96,18 +108,6 @@ struct format_provider<sys::TimePoint<>> {
/// it is still possible to format it, provided you explicitly request a /// it is still possible to format it, provided you explicitly request a
/// display unit or you request that the unit is not displayed. /// display unit or you request that the unit is not displayed.
namespace detail {
template <typename Period> struct unit { static const char value[]; };
template <typename Period> const char unit<Period>::value[] = "";
template <> struct unit<std::ratio<3600>> { static const char value[]; };
template <> struct unit<std::ratio<60>> { static const char value[]; };
template <> struct unit<std::ratio<1>> { static const char value[]; };
template <> struct unit<std::milli> { static const char value[]; };
template <> struct unit<std::micro> { static const char value[]; };
template <> struct unit<std::nano> { static const char value[]; };
} // namespace detail
template <typename Rep, typename Period> template <typename Rep, typename Period>
struct format_provider<std::chrono::duration<Rep, Period>> { struct format_provider<std::chrono::duration<Rep, Period>> {
private: private:

View File

@ -5,7 +5,7 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// /// \file
/// Implement a low-level type suitable for MachineInstr level instruction /// Implement a low-level type suitable for MachineInstr level instruction
/// selection. /// selection.
/// ///
@ -20,7 +20,7 @@
/// Other information required for correct selection is expected to be carried /// Other information required for correct selection is expected to be carried
/// by the opcode, or non-type flags. For example the distinction between G_ADD /// by the opcode, or non-type flags. For example the distinction between G_ADD
/// and G_FADD for int/float or fast-math flags. /// and G_FADD for int/float or fast-math flags.
// ///
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#ifndef LLVM_SUPPORT_LOWLEVELTYPEIMPL_H #ifndef LLVM_SUPPORT_LOWLEVELTYPEIMPL_H

View File

@ -6,6 +6,7 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
/// ///
/// \file
/// This file provides an interface for laying out a sequence of fields /// This file provides an interface for laying out a sequence of fields
/// as a struct in a way that attempts to minimizes the total space /// as a struct in a way that attempts to minimizes the total space
/// requirements of the struct while still satisfying the layout /// requirements of the struct while still satisfying the layout
@ -22,7 +23,7 @@
/// ///
/// - First, it does not guarantee that the result is minimal in size. /// - First, it does not guarantee that the result is minimal in size.
/// There is no known efficient algoorithm to achieve minimality for /// There is no known efficient algoorithm to achieve minimality for
/// unrestricted inputs. Nonetheless, this algorithm /// unrestricted inputs. Nonetheless, this algorithm
/// ///
/// - Second, there are other ways that a struct layout could be optimized /// - Second, there are other ways that a struct layout could be optimized
/// besides space usage, such as locality. This layout may have a mixed /// besides space usage, such as locality. This layout may have a mixed

View File

@ -68,9 +68,9 @@ bool EdgeBundles::runOnMachineFunction(MachineFunction &mf) {
return false; return false;
} }
/// Specialize WriteGraph, the standard implementation won't work.
namespace llvm { namespace llvm {
/// Specialize WriteGraph, the standard implementation won't work.
template<> template<>
raw_ostream &WriteGraph<>(raw_ostream &O, const EdgeBundles &G, raw_ostream &WriteGraph<>(raw_ostream &O, const EdgeBundles &G,
bool ShortNames, bool ShortNames,

View File

@ -5,9 +5,9 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// /// \file
/// This file contains helper functions to modify live ranges. /// This file contains helper functions to modify live ranges.
// ///
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#ifndef LLVM_LIB_CODEGEN_LIVERANGEUTILS_H #ifndef LLVM_LIB_CODEGEN_LIVERANGEUTILS_H

View File

@ -234,10 +234,10 @@ void MachineSSAUpdater::RewriteUse(MachineOperand &U) {
U.setReg(NewVR); U.setReg(NewVR);
} }
/// SSAUpdaterTraits<MachineSSAUpdater> - Traits for the SSAUpdaterImpl
/// template, specialized for MachineSSAUpdater.
namespace llvm { namespace llvm {
/// SSAUpdaterTraits<MachineSSAUpdater> - Traits for the SSAUpdaterImpl
/// template, specialized for MachineSSAUpdater.
template<> template<>
class SSAUpdaterTraits<MachineSSAUpdater> { class SSAUpdaterTraits<MachineSSAUpdater> {
public: public:

View File

@ -54,10 +54,9 @@ static cl::opt<bool> CheckSingleUse("hexagon-isel-su", cl::Hidden,
#define GET_DAGISEL_BODY HexagonDAGToDAGISel #define GET_DAGISEL_BODY HexagonDAGToDAGISel
#include "HexagonGenDAGISel.inc" #include "HexagonGenDAGISel.inc"
namespace llvm {
/// createHexagonISelDag - This pass converts a legalized DAG into a /// createHexagonISelDag - This pass converts a legalized DAG into a
/// Hexagon-specific DAG, ready for instruction scheduling. /// Hexagon-specific DAG, ready for instruction scheduling.
///
namespace llvm {
FunctionPass *createHexagonISelDag(HexagonTargetMachine &TM, FunctionPass *createHexagonISelDag(HexagonTargetMachine &TM,
CodeGenOpt::Level OptLevel) { CodeGenOpt::Level OptLevel) {
return new HexagonDAGToDAGISel(TM, OptLevel); return new HexagonDAGToDAGISel(TM, OptLevel);

View File

@ -5,7 +5,7 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
/// /// \file
/// Description: ImmutableGraph is a fast DAG implementation that cannot be /// Description: ImmutableGraph is a fast DAG implementation that cannot be
/// modified, except by creating a new ImmutableGraph. ImmutableGraph is /// modified, except by creating a new ImmutableGraph. ImmutableGraph is
/// implemented as two arrays: one containing nodes, and one containing edges. /// implemented as two arrays: one containing nodes, and one containing edges.

View File

@ -112,9 +112,9 @@ public:
} // end anonymous namespace } // end anonymous namespace
/// Provide DenseMapInfo for MemOpKey.
namespace llvm { namespace llvm {
/// Provide DenseMapInfo for MemOpKey.
template <> struct DenseMapInfo<MemOpKey> { template <> struct DenseMapInfo<MemOpKey> {
using PtrInfo = DenseMapInfo<const MachineOperand *>; using PtrInfo = DenseMapInfo<const MachineOperand *>;