SuccessChanges

Summary

  1. [yaml2obj/obj2yaml] - Make RawContentSection::Content and RawContentSection::Size optional This is a follow-up for D62809. Content and Size fields should be optional as was discussed in comments of the D62809's thread. With that, we can describe a specific string table and symbol table sections in a more correct way and also show appropriate errors. The patch adds lots of test cases where the behavior is described in details. Differential revision: https://reviews.llvm.org/D62957
  2. [yaml2obj] - Do not assert when .dynsym is specified explicitly, but .dynstr is not present. We have a code in buildSectionIndex() that adds implicit sections: // Add special sections after input sections, if necessary. for (StringRef Name : implicitSectionNames()) if (SN2I.addName(Name, SecNo)) { // Account for this section, since it wasn't in the Doc ++SecNo; DotShStrtab.add(Name); } The problem arises when .dynsym is specified explicitly and no DynamicSymbols is used. In that case, we do not add .dynstr implicitly and will assert later when will try to set Link for .dynsym. Seems, in this case, reasonable behavior is to allow Link field to be zero. This is what this patch does. Differential revision: https://reviews.llvm.org/D63001
  3. [ARM] Enable Unroll UpperBound This option allows loops with small max trip counts to be fully unrolled. This can help with code like the remainder loops from manually unrolled loops like those that appear in the cmsis dsp library. We would apparently previously runtime unroll them with the default unroll count (4). Differential Revision: https://reviews.llvm.org/D63064
  4. Fix MSVC "32-bit shift implicitly converted to 64 bits" warning. NFCI.
  5. [yaml2obj] - Remove helper methods that are probably excessive. NFC. These methods are used only once. One of them is not used at all. Differential revision: https://reviews.llvm.org/D63002
Revision 362931 by grimar:
[yaml2obj/obj2yaml] - Make RawContentSection::Content and RawContentSection::Size optional

This is a follow-up for D62809.

Content and Size fields should be optional as was discussed in comments
of the D62809's thread. With that, we can describe a specific string table and
symbol table sections in a more correct way and also show appropriate errors.

The patch adds lots of test cases where the behavior is described in details.

Differential revision: https://reviews.llvm.org/D62957
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ObjectYAML/ELFYAML.htrunk/include/llvm/ObjectYAML/ELFYAML.h
The file was modified/llvm/trunk/lib/ObjectYAML/ELFYAML.cpptrunk/lib/ObjectYAML/ELFYAML.cpp
The file was modified/llvm/trunk/test/Object/obj2yaml.testtrunk/test/Object/obj2yaml.test
The file was modified/llvm/trunk/test/Object/yaml2obj-elf-section-invalid-size.yamltrunk/test/Object/yaml2obj-elf-section-invalid-size.yaml
The file was modified/llvm/trunk/test/tools/obj2yaml/elf-shinfo.yamltrunk/test/tools/obj2yaml/elf-shinfo.yaml
The file was added/llvm/trunk/test/tools/yaml2obj/dynsymtab-implicit-sections-size-content.yamltrunk/test/tools/yaml2obj/dynsymtab-implicit-sections-size-content.yaml
The file was added/llvm/trunk/test/tools/yaml2obj/section-size-content.yamltrunk/test/tools/yaml2obj/section-size-content.yaml
The file was added/llvm/trunk/test/tools/yaml2obj/strtab-implicit-sections-size-content.yamltrunk/test/tools/yaml2obj/strtab-implicit-sections-size-content.yaml
The file was added/llvm/trunk/test/tools/yaml2obj/symtab-implicit-sections-size-content.yamltrunk/test/tools/yaml2obj/symtab-implicit-sections-size-content.yaml
The file was modified/llvm/trunk/tools/obj2yaml/elf2yaml.cpptrunk/tools/obj2yaml/elf2yaml.cpp
The file was modified/llvm/trunk/tools/yaml2obj/yaml2elf.cpptrunk/tools/yaml2obj/yaml2elf.cpp
Revision 362929 by grimar:
[yaml2obj] - Do not assert when .dynsym is specified explicitly, but .dynstr is not present.

We have a code in buildSectionIndex() that adds implicit sections:

// Add special sections after input sections, if necessary.
for (StringRef Name : implicitSectionNames())
  if (SN2I.addName(Name, SecNo)) {
    // Account for this section, since it wasn't in the Doc
    ++SecNo;
    DotShStrtab.add(Name);
  }

The problem arises when .dynsym is specified explicitly and no
DynamicSymbols is used. In that case, we do not add
.dynstr implicitly and will assert later when will try to set Link
for .dynsym.

Seems, in this case, reasonable behavior is to allow Link field to be zero.
This is what this patch does.

Differential revision: https://reviews.llvm.org/D63001
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/tools/yaml2obj/explicit-dynsym-no-dynstr.yamltrunk/test/tools/yaml2obj/explicit-dynsym-no-dynstr.yaml
The file was modified/llvm/trunk/tools/yaml2obj/yaml2elf.cpptrunk/tools/yaml2obj/yaml2elf.cpp
Revision 362928 by dmgreen:
[ARM] Enable Unroll UpperBound

This option allows loops with small max trip counts to be fully unrolled. This
can help with code like the remainder loops from manually unrolled loops like
those that appear in the cmsis dsp library. We would apparently previously
runtime unroll them with the default unroll count (4).

Differential Revision: https://reviews.llvm.org/D63064
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMTargetTransformInfo.cpptrunk/lib/Target/ARM/ARMTargetTransformInfo.cpp
The file was added/llvm/trunk/test/Transforms/LoopUnroll/ARM/upperbound.lltrunk/test/Transforms/LoopUnroll/ARM/upperbound.ll
Revision 362927 by rksimon:
Fix MSVC "32-bit shift implicitly converted to 64 bits" warning. NFCI.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-objcopy/MachO/MachOWriter.cpptrunk/tools/llvm-objcopy/MachO/MachOWriter.cpp
Revision 362925 by grimar:
[yaml2obj] - Remove helper methods that are probably excessive. NFC.

These methods are used only once. One of them is not used at all.

Differential revision: https://reviews.llvm.org/D63002
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/yaml2obj/yaml2elf.cpptrunk/tools/yaml2obj/yaml2elf.cpp

Summary

  1. Revert "Revert "[CodeComplete] Improve overload handling for C++ qualified and ref-qualified methods."" This reverts commit r362830, and relands r362785 with the leak fixed.
Revision 362924 by sammccall:
Revert "Revert "[CodeComplete] Improve overload handling for C++ qualified and ref-qualified methods.""

This reverts commit r362830, and relands r362785 with the leak fixed.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaCodeComplete.cpptrunk/lib/Sema/SemaCodeComplete.cpp
The file was modified/cfe/trunk/test/CodeCompletion/member-access.cpptrunk/test/CodeCompletion/member-access.cpp