FailedChanges

Summary

  1. [yaml2obj][obj2yaml] - Support SHT_GNU_versym (.gnu.version) section. This patch adds support for parsing dumping the .gnu.version section. Description of the section is: https://refspecs.linuxfoundation.org/LSB_1.3.0/gLSB/gLSB/symversion.html#SYMVERTBL Differential revision: https://reviews.llvm.org/D58280
  2. [OpenCL] Change type of block pointer for OpenCL Summary: For some reason OpenCL blocks in LLVM IR are represented as function pointers. These pointers do not point to any real function and never get called. Actually they point to some structure, which in turn contains pointer to the real block invoke function. This patch changes represntation of OpenCL blocks in LLVM IR from function pointers to pointers to `%struct.__block_literal_generic`. Such representation allows to avoid unnecessary bitcasts and simplifies further processing (e.g. translation to SPIR-V ) of the module for targets which do not support function pointers. Patch by: Alexey Sotkin. Reviewers: Anastasia, yaxunl, svenvh Reviewed By: Anastasia Subscribers: alexbatashev, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D58277
  3. Recommit r354328, r354329 "[obj2yaml][yaml2obj] - Add support of parsing/dumping of the .gnu.version_r section." Fix: Replace assert(!IO.getContext() && "The IO context is initialized already"); with assert(IO.getContext() && "The IO context is not initialized"); (this was introduced in r354329, where I tried to quickfix the darwin BB and seems copypasted the assert from the wrong place). Original commit message: The section is described here: https://refspecs.linuxfoundation.org/LSB_1.3.0/gLSB/gLSB/symverrqmts.html Patch just teaches obj2yaml/yaml2obj to dump and parse such sections. We did the finalization of string tables very late, and I had to move the logic to make it a bit earlier. That was needed in this patch since .gnu.version_r adds strings to .dynstr. This might also be useful for implementing other special sections. Everything else changed in this patch seems to be straightforward. Differential revision: https://reviews.llvm.org/D58119
  4. [RISCV][NFC] Move some std::string to StringRef
  5. Revert r354328, r354329 "[obj2yaml][yaml2obj] - Add support of parsing/dumping of the .gnu.version_r section." Something went wrong. Bots are unhappy: http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/44113/steps/test/logs/stdio
  6. [clangd] Handle unresolved scope specifier when fixing includes. Summary: In the following examples, "clangd" is unresolved, and the fixer will try to fix include for `clang::clangd`; however, clang::clangd::X is usually intended. So when handling a qualifier that is unresolved, we change the unresolved name and scopes so that the fixer will fix "clang::clangd::X" in the following example. ``` namespace clang { clangd::X ~~~~~~ } // or clang::clangd::X ~~~~~~ ``` Reviewers: sammccall Reviewed By: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, jdoerfert, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D58185
  7. Fix BB after r354328. Bot: http://lab.llvm.org:8011/builders/lld-x86_64-darwin13/builds/30188/steps/build_Lld/logs/stdio Error: /Users/buildslave/as-bldslv9_new/lld-x86_64-darwin13/llvm.src/lib/ObjectYAML/ELFYAML.cpp:1013:15: error: unused variable 'Object' [-Werror,-Wunused-variable] const auto *Object = static_cast<ELFYAML::Object *>(IO.getContext()); ^ /Users/buildslave/as-bldslv9_new/lld-x86_64-darwin13/llvm.src/lib/ObjectYAML/ELFYAML.cpp:1023:15: error: unused variable 'Object' [-Werror,-Wunused-variable] const auto *Object = static_cast<ELFYAML::Object *>(IO.getContext()); Fix: change const auto *Object = static_cast<ELFYAML::Object *>(IO.getContext()); assert(Object && "The IO context is not initialized"); to assert(!IO.getContext() && "The IO context is initialized already");
  8. [obj2yaml][yaml2obj] - Add support of parsing/dumping of the .gnu.version_r section. The section is described here: https://refspecs.linuxfoundation.org/LSB_1.3.0/gLSB/gLSB/symverrqmts.html Patch just teaches obj2yaml/yaml2obj to dump and parse such sections. We did the finalization of string tables very late, and I had to move the logic to make it a bit earlier. That was needed in this patch since .gnu.version_r adds strings to .dynstr. This might also be useful for implementing other special sections. Everything else changed in this patch seems to be straightforward. Differential revision: https://reviews.llvm.org/D58119
  9. [RISCV] Re-organise calling convention tests Re-organise calling convention tests to prepare for ilp32f and ilp32d hard float ABI tests. It's also clear that we need to introduce similar tests for lp64.
  10. Fix BB after r354319 "[yaml2obj] - Do not skip zeroes blocks if there are relocations against them." Fix: move the test to x86 folder. Seems it is needed, because llvm-objdump invocation used in test has -D (disasm) flag. BB: http://lab.llvm.org:8011/builders/clang-hexagon-elf/builds/23016 /local/buildbot/slaves/hexagon-build-02/clang-hexagon-elf/stage1/bin/llvm-objdump: error: '/local/buildbot/slaves/hexagon-build-02/clang-hexagon-elf/stage1/test/tools/llvm-objdump/Output/disasm-zeroes-relocations.test.tmp': can't find target: : error: unable to get target for 'x86_64--', see --version and --triple. .
  11. [yaml2obj] - Do not skip zeroes blocks if there are relocations against them. This is for -D -reloc combination. With this patch, we do not skip the zero bytes that have a relocation against them when -reloc is used. If -reloc is not used, then the behavior will be the same. Differential revision: https://reviews.llvm.org/D58174
  12. [yaml2obj] - Do not ignore explicit addresses for .dynsym and .dynstr This fixes https://bugs.llvm.org/show_bug.cgi?id=40339 Previously if the addresses were set in YAML they were ignored for .dynsym and .dynstr sections. The patch fixes that. Differential revision: https://reviews.llvm.org/D58168
  13. Fix obsolete comment. NFC Both files mentioned in the comment now include TargetOpcodes.def. Just mention that directly.
  14. [NFC] API for signaling that the current loop is being deleted We are planning to be able to delete the current loop in LoopSimplifyCFG in the future. Add API to notify the loop pass manager that it happened.
  15. [NFC] Store loop header in a local to keep it available after the loop is deleted
  16. [ARM GlobalISel] Support G_PHI for Thumb2 Same as arm mode.
Revision 354338 by grimar:
[yaml2obj][obj2yaml] - Support SHT_GNU_versym (.gnu.version) section.

This patch adds support for parsing dumping the .gnu.version section.
Description of the section is: https://refspecs.linuxfoundation.org/LSB_1.3.0/gLSB/gLSB/symversion.html#SYMVERTBL

Differential revision: https://reviews.llvm.org/D58280
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ObjectYAML/ELFYAML.h (diff)llvm.src/include/llvm/ObjectYAML/ELFYAML.h
The file was modified/llvm/trunk/lib/ObjectYAML/ELFYAML.cpp (diff)llvm.src/lib/ObjectYAML/ELFYAML.cpp
The file was added/llvm/trunk/test/tools/obj2yaml/versym-section.yamlllvm.src/test/tools/obj2yaml/versym-section.yaml
The file was added/llvm/trunk/test/tools/yaml2obj/versym-section.yamlllvm.src/test/tools/yaml2obj/versym-section.yaml
The file was modified/llvm/trunk/tools/obj2yaml/elf2yaml.cpp (diff)llvm.src/tools/obj2yaml/elf2yaml.cpp
The file was modified/llvm/trunk/tools/yaml2obj/yaml2elf.cpp (diff)llvm.src/tools/yaml2obj/yaml2elf.cpp
Revision 354337 by bader:
[OpenCL] Change type of block pointer for OpenCL

Summary:

For some reason OpenCL blocks in LLVM IR are represented as function pointers.
These pointers do not point to any real function and never get called. Actually
they point to some structure, which in turn contains pointer to the real block
invoke function.
This patch changes represntation of OpenCL blocks in LLVM IR from function
pointers to pointers to `%struct.__block_literal_generic`.
Such representation allows to avoid unnecessary bitcasts and simplifies
further processing (e.g. translation to SPIR-V ) of the module for targets
which do not support function pointers.

Patch by: Alexey Sotkin.

Reviewers: Anastasia, yaxunl, svenvh

Reviewed By: Anastasia

Subscribers: alexbatashev, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D58277
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CodeGenTypes.cpp (diff)clang.src/lib/CodeGen/CodeGenTypes.cpp
The file was modified/cfe/trunk/test/CodeGenOpenCL/blocks.cl (diff)clang.src/test/CodeGenOpenCL/blocks.cl
The file was modified/cfe/trunk/test/CodeGenOpenCL/cl20-device-side-enqueue.cl (diff)clang.src/test/CodeGenOpenCL/cl20-device-side-enqueue.cl
Revision 354335 by grimar:
Recommit r354328, r354329 "[obj2yaml][yaml2obj] - Add support of parsing/dumping of the .gnu.version_r section."

Fix:
Replace
assert(!IO.getContext() && "The IO context is initialized already");
with
assert(IO.getContext() && "The IO context is not initialized");
(this was introduced in r354329, where I tried to quickfix the darwin BB
and seems copypasted the assert from the wrong place).

Original commit message:

The section is described here:
https://refspecs.linuxfoundation.org/LSB_1.3.0/gLSB/gLSB/symverrqmts.html

Patch just teaches obj2yaml/yaml2obj to dump and parse such sections.

We did the finalization of string tables very late,
and I had to move the logic to make it a bit earlier.
That was needed in this patch since .gnu.version_r adds strings to .dynstr.
This might also be useful for implementing other special sections.

Everything else changed in this patch seems to be straightforward.

Differential revision: https://reviews.llvm.org/D58119
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ObjectYAML/ELFYAML.h (diff)llvm.src/include/llvm/ObjectYAML/ELFYAML.h
The file was modified/llvm/trunk/lib/ObjectYAML/ELFYAML.cpp (diff)llvm.src/lib/ObjectYAML/ELFYAML.cpp
The file was added/llvm/trunk/test/tools/obj2yaml/verneed-section.yamlllvm.src/test/tools/obj2yaml/verneed-section.yaml
The file was added/llvm/trunk/test/tools/yaml2obj/verneed-section.yamlllvm.src/test/tools/yaml2obj/verneed-section.yaml
The file was modified/llvm/trunk/tools/obj2yaml/elf2yaml.cpp (diff)llvm.src/tools/obj2yaml/elf2yaml.cpp
The file was modified/llvm/trunk/tools/yaml2obj/yaml2elf.cpp (diff)llvm.src/tools/yaml2obj/yaml2elf.cpp
Revision 354333 by asb:
[RISCV][NFC] Move some std::string to StringRef
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/RISCV/RISCVSubtarget.cpp (diff)llvm.src/lib/Target/RISCV/RISCVSubtarget.cpp
The file was modified/llvm/trunk/lib/Target/RISCV/RISCVSubtarget.h (diff)llvm.src/lib/Target/RISCV/RISCVSubtarget.h
The file was modified/llvm/trunk/lib/Target/RISCV/RISCVTargetMachine.cpp (diff)llvm.src/lib/Target/RISCV/RISCVTargetMachine.cpp
Revision 354332 by grimar:
Revert r354328, r354329 "[obj2yaml][yaml2obj] - Add support of parsing/dumping of the .gnu.version_r section."

Something went wrong. Bots are unhappy:
http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/44113/steps/test/logs/stdio
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ObjectYAML/ELFYAML.h (diff)llvm.src/include/llvm/ObjectYAML/ELFYAML.h
The file was modified/llvm/trunk/lib/ObjectYAML/ELFYAML.cpp (diff)llvm.src/lib/ObjectYAML/ELFYAML.cpp
The file was removed/llvm/trunk/test/tools/obj2yaml/verneed-section.yamlllvm.src/test/tools/obj2yaml/verneed-section.yaml
The file was removed/llvm/trunk/test/tools/yaml2obj/verneed-section.yamlllvm.src/test/tools/yaml2obj/verneed-section.yaml
The file was modified/llvm/trunk/tools/obj2yaml/elf2yaml.cpp (diff)llvm.src/tools/obj2yaml/elf2yaml.cpp
The file was modified/llvm/trunk/tools/yaml2obj/yaml2elf.cpp (diff)llvm.src/tools/yaml2obj/yaml2elf.cpp
Revision 354330 by ioeric:
[clangd] Handle unresolved scope specifier when fixing includes.

Summary:
In the following examples, "clangd" is unresolved, and the fixer will try to fix
include for `clang::clangd`; however, clang::clangd::X is usually intended. So
when handling a qualifier that is unresolved, we change the unresolved name and
scopes so that the fixer will fix "clang::clangd::X" in the following example.
```
  namespace clang {
  clangd::X
~~~~~~
  }
  // or
  clang::clangd::X
         ~~~~~~
```

Reviewers: sammccall

Reviewed By: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, jdoerfert, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D58185
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/IncludeFixer.cpp (diff)clang-tools-extra.src/clangd/IncludeFixer.cpp
The file was modified/clang-tools-extra/trunk/unittests/clangd/DiagnosticsTests.cpp (diff)clang-tools-extra.src/unittests/clangd/DiagnosticsTests.cpp
Revision 354329 by grimar:
Fix BB after r354328.

Bot:
http://lab.llvm.org:8011/builders/lld-x86_64-darwin13/builds/30188/steps/build_Lld/logs/stdio

Error:
/Users/buildslave/as-bldslv9_new/lld-x86_64-darwin13/llvm.src/lib/ObjectYAML/ELFYAML.cpp:1013:15: error: unused variable 'Object' [-Werror,-Wunused-variable]
  const auto *Object = static_cast<ELFYAML::Object *>(IO.getContext());
              ^
/Users/buildslave/as-bldslv9_new/lld-x86_64-darwin13/llvm.src/lib/ObjectYAML/ELFYAML.cpp:1023:15: error: unused variable 'Object' [-Werror,-Wunused-variable]
  const auto *Object = static_cast<ELFYAML::Object *>(IO.getContext());

Fix:
change
  const auto *Object = static_cast<ELFYAML::Object *>(IO.getContext());
  assert(Object && "The IO context is not initialized");
to
  assert(!IO.getContext() && "The IO context is initialized already");
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/ObjectYAML/ELFYAML.cpp (diff)llvm.src/lib/ObjectYAML/ELFYAML.cpp
Revision 354328 by grimar:
[obj2yaml][yaml2obj] - Add support of parsing/dumping of the .gnu.version_r section.

The section is described here:
https://refspecs.linuxfoundation.org/LSB_1.3.0/gLSB/gLSB/symverrqmts.html

Patch just teaches obj2yaml/yaml2obj to dump and parse such sections.

We did the finalization of string tables very late,
and I had to move the logic to make it a bit earlier.
That was needed in this patch since .gnu.version_r adds strings to .dynstr.
This might also be useful for implementing other special sections.

Everything else changed in this patch seems to be straightforward.

Differential revision: https://reviews.llvm.org/D58119
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ObjectYAML/ELFYAML.h (diff)llvm.src/include/llvm/ObjectYAML/ELFYAML.h
The file was modified/llvm/trunk/lib/ObjectYAML/ELFYAML.cpp (diff)llvm.src/lib/ObjectYAML/ELFYAML.cpp
The file was added/llvm/trunk/test/tools/obj2yaml/verneed-section.yamlllvm.src/test/tools/obj2yaml/verneed-section.yaml
The file was added/llvm/trunk/test/tools/yaml2obj/verneed-section.yamlllvm.src/test/tools/yaml2obj/verneed-section.yaml
The file was modified/llvm/trunk/tools/obj2yaml/elf2yaml.cpp (diff)llvm.src/tools/obj2yaml/elf2yaml.cpp
The file was modified/llvm/trunk/tools/yaml2obj/yaml2elf.cpp (diff)llvm.src/tools/yaml2obj/yaml2elf.cpp
Revision 354323 by asb:
[RISCV] Re-organise calling convention tests

Re-organise calling convention tests to prepare for ilp32f and ilp32d hard
float ABI tests. It's also clear that we need to introduce similar tests for
lp64.
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/CodeGen/RISCV/calling-conv-ilp32-ilp32f-common.llllvm.src/test/CodeGen/RISCV/calling-conv-ilp32-ilp32f-common.ll
The file was added/llvm/trunk/test/CodeGen/RISCV/calling-conv-ilp32-ilp32f-ilp32d-common.llllvm.src/test/CodeGen/RISCV/calling-conv-ilp32-ilp32f-ilp32d-common.ll
The file was added/llvm/trunk/test/CodeGen/RISCV/calling-conv-ilp32.llllvm.src/test/CodeGen/RISCV/calling-conv-ilp32.ll
The file was removed/llvm/trunk/test/CodeGen/RISCV/calling-conv.llllvm.src/test/CodeGen/RISCV/calling-conv.ll
Revision 354322 by grimar:
Fix BB after r354319 "[yaml2obj] - Do not skip zeroes blocks if there are relocations against them."

Fix: move the test to x86 folder.
Seems it is needed, because llvm-objdump invocation used in test has -D (disasm) flag.

BB: http://lab.llvm.org:8011/builders/clang-hexagon-elf/builds/23016

/local/buildbot/slaves/hexagon-build-02/clang-hexagon-elf/stage1/bin/llvm-objdump:
error: '/local/buildbot/slaves/hexagon-build-02/clang-hexagon-elf/stage1/test/tools/llvm-objdump/Output/disasm-zeroes-relocations.test.tmp':
can't find target: : error: unable to get target for 'x86_64--', see --version and --triple.
.
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/tools/llvm-objdump/X86/disasm-zeroes-relocations.testllvm.src/test/tools/llvm-objdump/X86/disasm-zeroes-relocations.test
The file was removed/llvm/trunk/test/tools/llvm-objdump/disasm-zeroes-relocations.testllvm.src/test/tools/llvm-objdump/disasm-zeroes-relocations.test
Revision 354319 by grimar:
[yaml2obj] - Do not skip zeroes blocks if there are relocations against them.

This is for -D -reloc combination.

With this patch, we do not skip the zero bytes that have a relocation against
them when -reloc is used. If -reloc is not used, then the behavior will be the same.

Differential revision: https://reviews.llvm.org/D58174
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/tools/llvm-objdump/disasm-zeroes-relocations.testllvm.src/test/tools/llvm-objdump/disasm-zeroes-relocations.test
The file was modified/llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp (diff)llvm.src/tools/llvm-objdump/llvm-objdump.cpp
Revision 354318 by grimar:
[yaml2obj] - Do not ignore explicit addresses for .dynsym and .dynstr

This fixes https://bugs.llvm.org/show_bug.cgi?id=40339

Previously if the addresses were set in YAML they were ignored for
.dynsym and .dynstr sections. The patch fixes that.

Differential revision: https://reviews.llvm.org/D58168
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/tools/yaml2obj/dynsym-dynstr-addr.yamlllvm.src/test/tools/yaml2obj/dynsym-dynstr-addr.yaml
The file was modified/llvm/trunk/tools/yaml2obj/yaml2elf.cpp (diff)llvm.src/tools/yaml2obj/yaml2elf.cpp
Revision 354316 by rovka:
Fix obsolete comment. NFC

Both files mentioned in the comment now include TargetOpcodes.def. Just
mention that directly.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Target/Target.td (diff)llvm.src/include/llvm/Target/Target.td
Revision 354314 by mkazantsev:
[NFC] API for signaling that the current loop is being deleted

We are planning to be able to delete the current loop in LoopSimplifyCFG
in the future. Add API to notify the loop pass manager that it happened.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopSimplifyCFG.cpp (diff)llvm.src/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
Revision 354313 by mkazantsev:
[NFC] Store loop header in a local to keep it available after the loop is deleted
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopSimplifyCFG.cpp (diff)llvm.src/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
Revision 354310 by rovka:
[ARM GlobalISel] Support G_PHI for Thumb2

Same as arm mode.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMLegalizerInfo.cpp (diff)llvm.src/lib/Target/ARM/ARMLegalizerInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-legalize-control-flow.mir (diff)llvm.src/test/CodeGen/ARM/GlobalISel/arm-legalize-control-flow.mir
The file was modified/llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-legalizer.mir (diff)llvm.src/test/CodeGen/ARM/GlobalISel/arm-legalizer.mir
The file was added/llvm/trunk/test/CodeGen/ARM/GlobalISel/thumb-select-phi.mirllvm.src/test/CodeGen/ARM/GlobalISel/thumb-select-phi.mir