Skip to content
This repository has been archived by the owner on Jan 1, 2023. It is now read-only.

Commit

Permalink
Move endian constant from Host.h to SwapByteOrder.h, prune include
Browse files Browse the repository at this point in the history
Works on this dependency chain:
  ArrayRef.h ->
  Hashing.h -> --CUT--
  Host.h ->
  StringMap.h / StringRef.h

ArrayRef is very popular, but Host.h is rarely needed. Move the
IsBigEndianHost constant to SwapByteOrder.h. Clients of that header are
more likely to need it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@375316 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
rnk committed Oct 19, 2019
1 parent 1fd7788 commit cc6a00d
Show file tree
Hide file tree
Showing 9 changed files with 36 additions and 32 deletions.
1 change: 0 additions & 1 deletion include/llvm/ADT/Hashing.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@
#define LLVM_ADT_HASHING_H

#include "llvm/Support/DataTypes.h"
#include "llvm/Support/Host.h"
#include "llvm/Support/SwapByteOrder.h"
#include "llvm/Support/type_traits.h"
#include <algorithm>
Expand Down
1 change: 1 addition & 0 deletions include/llvm/BinaryFormat/Wasm.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"

namespace llvm {
namespace wasm {
Expand Down
28 changes: 0 additions & 28 deletions include/llvm/Support/Host.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,39 +15,11 @@

#include "llvm/ADT/StringMap.h"

#if defined(__linux__) || defined(__GNU__) || defined(__HAIKU__)
#include <endian.h>
#elif defined(_AIX)
#include <sys/machine.h>
#elif defined(__sun)
/* Solaris provides _BIG_ENDIAN/_LITTLE_ENDIAN selector in sys/types.h */
#include <sys/types.h>
#define BIG_ENDIAN 4321
#define LITTLE_ENDIAN 1234
#if defined(_BIG_ENDIAN)
#define BYTE_ORDER BIG_ENDIAN
#else
#define BYTE_ORDER LITTLE_ENDIAN
#endif
#else
#if !defined(BYTE_ORDER) && !defined(_WIN32)
#include <machine/endian.h>
#endif
#endif

#include <string>

namespace llvm {
namespace sys {

#if defined(BYTE_ORDER) && defined(BIG_ENDIAN) && BYTE_ORDER == BIG_ENDIAN
constexpr bool IsBigEndianHost = true;
#else
constexpr bool IsBigEndianHost = false;
#endif

static const bool IsLittleEndianHost = !IsBigEndianHost;

/// getDefaultTargetTriple() - Return the default target triple the compiler
/// has been configured to produce code for.
///
Expand Down
2 changes: 1 addition & 1 deletion include/llvm/Support/SHA1.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@
#define LLVM_SUPPORT_SHA1_H

#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringRef.h"

#include <array>
#include <cstdint>

namespace llvm {
template <typename T> class ArrayRef;
class StringRef;

/// A class that wrap the SHA1 algorithm.
class SHA1 {
Expand Down
28 changes: 28 additions & 0 deletions include/llvm/Support/SwapByteOrder.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,37 @@
#include <stdlib.h>
#endif

#if defined(__linux__) || defined(__GNU__) || defined(__HAIKU__)
#include <endian.h>
#elif defined(_AIX)
#include <sys/machine.h>
#elif defined(__sun)
/* Solaris provides _BIG_ENDIAN/_LITTLE_ENDIAN selector in sys/types.h */
#include <sys/types.h>
#define BIG_ENDIAN 4321
#define LITTLE_ENDIAN 1234
#if defined(_BIG_ENDIAN)
#define BYTE_ORDER BIG_ENDIAN
#else
#define BYTE_ORDER LITTLE_ENDIAN
#endif
#else
#if !defined(BYTE_ORDER) && !defined(_WIN32)
#include <machine/endian.h>
#endif
#endif

namespace llvm {
namespace sys {

#if defined(BYTE_ORDER) && defined(BIG_ENDIAN) && BYTE_ORDER == BIG_ENDIAN
constexpr bool IsBigEndianHost = true;
#else
constexpr bool IsBigEndianHost = false;
#endif

static const bool IsLittleEndianHost = !IsBigEndianHost;

/// SwapByteOrder_16 - This function returns a byte-swapped representation of
/// the 16-bit argument.
inline uint16_t SwapByteOrder_16(uint16_t value) {
Expand Down
1 change: 1 addition & 0 deletions lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

#include "llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h"

#include "llvm/Support/Host.h"
#include "llvm/Support/TargetRegistry.h"

namespace llvm {
Expand Down
1 change: 1 addition & 0 deletions lib/Support/Windows/WindowsSupport.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Config/config.h" // Get build system configuration settings
#include "llvm/Support/Allocator.h"
#include "llvm/Support/Chrono.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/VersionTuple.h"
Expand Down
5 changes: 3 additions & 2 deletions lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,14 @@
//
//===----------------------------------------------------------------------===//

#include "X86DisassemblerDecoder.h"
#include "llvm/ADT/StringRef.h"

#include <cstdarg> /* for va_*() */
#include <cstdio> /* for vsnprintf() */
#include <cstdlib> /* for exit() */
#include <cstring> /* for memset() */

#include "X86DisassemblerDecoder.h"

using namespace llvm::X86Disassembler;

/// Specifies whether a ModR/M byte is needed and (if so) which
Expand Down
1 change: 1 addition & 0 deletions tools/llvm-exegesis/lib/RegisterValue.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

#include "RegisterValue.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/StringRef.h"

namespace llvm {
namespace exegesis {
Expand Down

0 comments on commit cc6a00d

Please sign in to comment.