[llvm] r331220 - [WebAssembly] MC: Improve debug output
Galina Kistanova via llvm-commits
llvm-commits at lists.llvm.org
Tue May 1 15:24:29 PDT 2018
Hello Sam,
This commit broke at least two builders:
http://lab.llvm.org:8011/builders/lld-x86_64-darwin13/builds/20828
and
http://lab.llvm.org:8011/builders/clang-lld-x86_64-2stage
. . .
/Users/buildslave/as-bldslv9/lld-x86_64-darwin13/llvm.src/lib/MC/WasmObjectWriter.cpp:40:20:
error: unused function 'toString' [-Werror,-Wunused-function]
static std::string toString(wasm::WasmSymbolType type) {
^
1 error generated.
make[2]: *** [lib/MC/CMakeFiles/LLVMMC.dir/WasmObjectWriter.cpp.o] Error 1
make[1]: *** [lib/MC/CMakeFiles/LLVMMC.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Please have a look ASAP?
Thanks
Galina
On Mon, Apr 30, 2018 at 12:40 PM, Sam Clegg via llvm-commits <
llvm-commits at lists.llvm.org> wrote:
> Author: sbc
> Date: Mon Apr 30 12:40:57 2018
> New Revision: 331220
>
> URL: http://llvm.org/viewvc/llvm-project?rev=331220&view=rev
> Log:
> [WebAssembly] MC: Improve debug output
>
> Modified:
> llvm/trunk/include/llvm/MC/MCSymbolWasm.h
> llvm/trunk/lib/MC/WasmObjectWriter.cpp
>
> Modified: llvm/trunk/include/llvm/MC/MCSymbolWasm.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/MC/MCSymbolWasm.h?rev=331220&r1=331219&r2=331220&view=diff
> ============================================================
> ==================
> --- llvm/trunk/include/llvm/MC/MCSymbolWasm.h (original)
> +++ llvm/trunk/include/llvm/MC/MCSymbolWasm.h Mon Apr 30 12:40:57 2018
> @@ -45,6 +45,7 @@ public:
> bool isFunction() const { return Type == wasm::WASM_SYMBOL_TYPE_FUNCTION;
> }
> bool isData() const { return Type == wasm::WASM_SYMBOL_TYPE_DATA; }
> bool isGlobal() const { return Type == wasm::WASM_SYMBOL_TYPE_GLOBAL; }
> + bool isSection() const { return Type == wasm::WASM_SYMBOL_TYPE_SECTION;
> }
> wasm::WasmSymbolType getType() const { return Type; }
> void setType(wasm::WasmSymbolType type) { Type = type; }
>
>
> Modified: llvm/trunk/lib/MC/WasmObjectWriter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/
> WasmObjectWriter.cpp?rev=331220&r1=331219&r2=331220&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/MC/WasmObjectWriter.cpp (original)
> +++ llvm/trunk/lib/MC/WasmObjectWriter.cpp Mon Apr 30 12:40:57 2018
> @@ -37,6 +37,29 @@ using namespace llvm;
>
> #define DEBUG_TYPE "mc"
>
> +static std::string toString(wasm::WasmSymbolType type) {
> + switch (type) {
> + case wasm::WASM_SYMBOL_TYPE_FUNCTION:
> + return "WASM_SYMBOL_TYPE_FUNCTION";
> + case wasm::WASM_SYMBOL_TYPE_GLOBAL:
> + return "WASM_SYMBOL_TYPE_GLOBAL";
> + case wasm::WASM_SYMBOL_TYPE_DATA:
> + return "WASM_SYMBOL_TYPE_DATA";
> + case wasm::WASM_SYMBOL_TYPE_SECTION:
> + return "WASM_SYMBOL_TYPE_SECTION";
> + }
> +}
> +
> +static std::string relocTypetoString(uint32_t type) {
> + switch (type) {
> +#define WASM_RELOC(NAME, VALUE) case VALUE: return #NAME;
> +#include "llvm/BinaryFormat/WasmRelocs.def"
> +#undef WASM_RELOC
> + default:
> + llvm_unreachable("uknown reloc type");
> + }
> +}
> +
> namespace {
>
> // Went we ceate the indirect function table we start at 1, so that there
> is
> @@ -163,8 +186,8 @@ struct WasmRelocationEntry {
> }
>
> void print(raw_ostream &Out) const {
> - Out << "Off=" << Offset << ", Sym=" << *Symbol << ", Addend=" <<
> Addend
> - << ", Type=" << Type
> + Out << relocTypetoString(Type)
> + << " Off=" << Offset << ", Sym=" << *Symbol << ", Addend=" <<
> Addend
> << ", FixupSection=" << FixupSection->getSectionName();
> }
>
> @@ -214,7 +237,7 @@ class WasmObjectWriter : public MCObject
> DenseMap<const MCSymbolWasm *, uint32_t> TableIndices;
> // Maps function/global symbols to the (shared) Symbol index space.
> DenseMap<const MCSymbolWasm *, uint32_t> SymbolIndices;
> - // Maps function/global symbols to the function/global Wasm index space.
> + // Maps function/global symbols to the function/global/section index
> space.
> DenseMap<const MCSymbolWasm *, uint32_t> WasmIndices;
> // Maps data symbols to the Wasm segment and offset/size with the
> segment.
> DenseMap<const MCSymbolWasm *, wasm::WasmDataReference> DataLocations;
> @@ -1235,11 +1258,11 @@ void WasmObjectWriter::writeObject(MCAss
> continue;
>
> const auto &WS = static_cast<const MCSymbolWasm &>(S);
> - DEBUG(dbgs() << "MCSymbol: '" << S << "'"
> + DEBUG(dbgs() << "MCSymbol: " << toString(WS.getType())
> + << " '" << S << "'"
> << " isDefined=" << S.isDefined()
> << " isExternal=" << S.isExternal()
> << " isTemporary=" << S.isTemporary()
> - << " isFunction=" << WS.isFunction()
> << " isWeak=" << WS.isWeak()
> << " isHidden=" << WS.isHidden()
> << " isVariable=" << WS.isVariable() << "\n");
> @@ -1284,7 +1307,7 @@ void WasmObjectWriter::writeObject(MCAss
> continue;
>
> if (!WS.isDefined()) {
> - DEBUG(dbgs() << " -> segment index: -1");
> + DEBUG(dbgs() << " -> segment index: -1" << "\n");
> continue;
> }
>
> @@ -1306,8 +1329,8 @@ void WasmObjectWriter::writeObject(MCAss
> static_cast<uint32_t>(Layout.getSymbolOffset(WS)),
> static_cast<uint32_t>(Size)};
> DataLocations[&WS] = Ref;
> - DEBUG(dbgs() << " -> segment index: " << Ref.Segment);
> - } else {
> + DEBUG(dbgs() << " -> segment index: " << Ref.Segment << "\n");
> + } else if (WS.isGlobal()) {
> // A "true" Wasm global (currently just __stack_pointer)
> if (WS.isDefined())
> report_fatal_error("don't yet support defined globals");
> @@ -1315,6 +1338,8 @@ void WasmObjectWriter::writeObject(MCAss
> // An import; the index was assigned above
> DEBUG(dbgs() << " -> global index: " <<
> WasmIndices.find(&WS)->second
> << "\n");
> + } else {
> + assert(WS.isSection());
> }
> }
>
>
>
> _______________________________________________
> 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/20180501/ed60ffe2/attachment.html>
More information about the llvm-commits
mailing list