Как создать дамп дерева приложений Go, скомпилированных gccgo

Просто для простоты я бы назвал gcc как весь набор компиляторов, а gccgo как весь набор компиляторов go, который включает в себя gcc backend. Когда мне нужно будет ссылаться, в частности, на интерфейс, я использую интерфейс gccgo/gcc, который является синтаксическим анализатором, генерирующим gimple деревья.

Я хочу посмотреть на gccgo. Для этой цели я хотел бы создать дампы деревьев, сгенерированные моим приложением go.

Если бы приложение было написано на C или C++, я бы, например, использовал опции -fdump-tree-*. Затем, как правило, gcc создает файлы типа "my.c.2227t.optimized" или около того. Я передал ту же самую опцию gccgo следующим образом:

go build -x -compiler=gccgo -gccgoflags="-g3 -O2 -fdump-tree-optimized" a.go 

где сама команда "go" - это инструмент go из Google go lang compiler suite.

Он передает мои параметры gccgo, хотя gccgo, похоже, ничего с этим не делает:

/tmp/aa $ go build -x -compiler=gccgo -gccgoflags="-g3 -O2 -fdump-tree-optimized" a.go 2>&1 | egrep gccgo
/usr/x86_64-pc-linux-gnu/gcc-bin/7.3.0/gccgo -fgo-importcfg=/dev/null -c -x c - || true
/usr/x86_64-pc-linux-gnu/gcc-bin/7.3.0/gccgo -c -g -m64 -fgo-relative-import-path=_/tmp/aa -o $WORK/b001/_go_.o -I $WORK/b001/_importcfgroot_ -g3 -O2 -fdump-tree-optimized ./a.go
/usr/x86_64-pc-linux-gnu/gcc-bin/7.3.0/gccgo -xassembler-with-cpp -I $WORK/b001/ -c -o $WORK/b001/_buildid.o -D GOOS_linux -D GOARCH_amd64 -m64 $WORK/b001/_buildid.s
/usr/x86_64-pc-linux-gnu/gcc-bin/7.3.0/gccgo -o $WORK/b001/exe/a.out -Wl,-( -m64 -Wl,--whole-archive $WORK/b001/_pkg_.a -Wl,--no-whole-archive -Wl,-) -Wl,--build-id=0x5373636d554c505235576441484c4f486767744e2f4d795144736f456c734b6177506b6f5668585f302f6150613636526b4d5172643050535439354a78652f5373636d554c505235576441484c4f486767744e -g3 -O2 -fdump-tree-optimized

Однако, он нигде не генерирует файлы дампа дерева gimple. Я полагаю, что, поскольку бэкэнд gccgo - gcc, должен быть способ, которым я мог бы выбросить дерево gimple.

Как я могу сбросить дряблые деревья моих приложений Go, скомпилированных gccgo?

0 ответов

Другие вопросы по тегам