FailedChanges

Summary

  1. [llvm-pdbdump] Abstract some of the YAML/Raw printing code. There is a lot of duplicate code for printing line info between YAML and the raw output printer. This introduces a base class that can be shared between the two, and makes some minor cleanups in the process.
  2. PR26771: don't forget the " 2" (returning from #included file) linemarker after including an empty file with -frewrite-includes.
  3. Remove unused, empty test directories.
  4. Add pragma to perform module import and use it in -E output. Many of our supported configurations support modules but do not have any first-class syntax to perform a module import. This leaves us with a problem: there is no way to represent the expansion of a #include that imports a module in the -E output for such languages. (We don't want to just leave it as a #include because that requires the consumer of the preprocessed source to have the same file system layout and include paths as the creator.) This patch adds a new pragma: #pragma clang module import MODULE.NAME.HERE that imports a module, and changes -E and -frewrite-includes to use it when rewriting a #include that maps to a module import. We don't make any attempt to use a native language syntax import if one exists, to get more consistent output. (If in the future, @import and #include have different semantics in some way, the pragma will track the #include semantics.)
  5. [ObjCARC] Do not move a release between a call and a retainAutoreleasedReturnValue that retains the returned value. This commit fixes a bug in ARC optimizer where it moves a release between a call and a retainAutoreleasedReturnValue, causing the returned object to be released before the retainAutoreleasedReturnValue can retain it. This commit accomplishes that by doing a lookahead and checking whether the call prevents the release from moving upwards. In the long term, we should treat the region between the retainAutoreleasedReturnValue and the call as a critical section and disallow moving anything there (possibly using operand bundles). rdar://problem/20449878
  6. [LoopUnswitch] Make DEBUG output more readable (part 2). I fixed my miscompile in r301722 and I hope I don't have to take a look at this code again now that Chandler has a new LoopUnswitch pass, but maybe this could be of use for somebody else in the meanwhile.
Revision 301728 by zturner:
[llvm-pdbdump] Abstract some of the YAML/Raw printing code.

There is a lot of duplicate code for printing line info between
YAML and the raw output printer.  This introduces a base class
that can be shared between the two, and makes some minor
cleanups in the process.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/DebugInfo/CodeView/CodeView.h (diff)llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/CodeView/CodeView.h
The file was modified/llvm/trunk/include/llvm/DebugInfo/CodeView/ModuleDebugFileChecksumFragment.h (diff)llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/CodeView/ModuleDebugFileChecksumFragment.h
The file was modified/llvm/trunk/include/llvm/DebugInfo/CodeView/ModuleDebugFragmentVisitor.h (diff)llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/CodeView/ModuleDebugFragmentVisitor.h
The file was modified/llvm/trunk/include/llvm/DebugInfo/CodeView/ModuleDebugLineFragment.h (diff)llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/CodeView/ModuleDebugLineFragment.h
The file was modified/llvm/trunk/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h (diff)llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h
The file was modified/llvm/trunk/include/llvm/DebugInfo/PDB/Native/RawTypes.h (diff)llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/PDB/Native/RawTypes.h
The file was modified/llvm/trunk/lib/DebugInfo/CodeView/ModuleDebugFragmentVisitor.cpp (diff)llvm-revision.src/llvm/trunk/lib/DebugInfo/CodeView/ModuleDebugFragmentVisitor.cpp
The file was modified/llvm/trunk/lib/DebugInfo/CodeView/ModuleDebugLineFragment.cpp (diff)llvm-revision.src/llvm/trunk/lib/DebugInfo/CodeView/ModuleDebugLineFragment.cpp
The file was modified/llvm/trunk/lib/DebugInfo/PDB/Native/DbiModuleDescriptor.cpp (diff)llvm-revision.src/llvm/trunk/lib/DebugInfo/PDB/Native/DbiModuleDescriptor.cpp
The file was modified/llvm/trunk/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp (diff)llvm-revision.src/llvm/trunk/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp
The file was modified/llvm/trunk/lib/DebugInfo/PDB/Native/ModuleDebugStream.cpp (diff)llvm-revision.src/llvm/trunk/lib/DebugInfo/PDB/Native/ModuleDebugStream.cpp
The file was modified/llvm/trunk/lib/MC/MCCodeView.cpp (diff)llvm-revision.src/llvm/trunk/lib/MC/MCCodeView.cpp
The file was modified/llvm/trunk/test/DebugInfo/PDB/pdbdump-headers.test (diff)llvm-revision.src/llvm/trunk/test/DebugInfo/PDB/pdbdump-headers.test
The file was modified/llvm/trunk/test/DebugInfo/PDB/pdbdump-yaml-lineinfo.test (diff)llvm-revision.src/llvm/trunk/test/DebugInfo/PDB/pdbdump-yaml-lineinfo.test
The file was added/llvm/trunk/tools/llvm-pdbdump/C13DebugFragmentVisitor.cppllvm-revision.src/llvm/trunk/tools/llvm-pdbdump/C13DebugFragmentVisitor.cpp
The file was added/llvm/trunk/tools/llvm-pdbdump/C13DebugFragmentVisitor.hllvm-revision.src/llvm/trunk/tools/llvm-pdbdump/C13DebugFragmentVisitor.h
The file was modified/llvm/trunk/tools/llvm-pdbdump/CMakeLists.txt (diff)llvm-revision.src/llvm/trunk/tools/llvm-pdbdump/CMakeLists.txt
The file was modified/llvm/trunk/tools/llvm-pdbdump/LLVMOutputStyle.cpp (diff)llvm-revision.src/llvm/trunk/tools/llvm-pdbdump/LLVMOutputStyle.cpp
The file was modified/llvm/trunk/tools/llvm-pdbdump/PdbYaml.cpp (diff)llvm-revision.src/llvm/trunk/tools/llvm-pdbdump/PdbYaml.cpp
The file was modified/llvm/trunk/tools/llvm-pdbdump/PdbYaml.h (diff)llvm-revision.src/llvm/trunk/tools/llvm-pdbdump/PdbYaml.h
The file was modified/llvm/trunk/tools/llvm-pdbdump/YAMLOutputStyle.cpp (diff)llvm-revision.src/llvm/trunk/tools/llvm-pdbdump/YAMLOutputStyle.cpp
The file was modified/llvm/trunk/tools/llvm-readobj/COFFDumper.cpp (diff)llvm-revision.src/llvm/trunk/tools/llvm-readobj/COFFDumper.cpp
Revision 301727 by rsmith:
PR26771: don't forget the " 2" (returning from #included file) linemarker after including an empty file with -frewrite-includes.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Frontend/Rewrite/InclusionRewriter.cpp (diff)llvm-revision.src/cfe/trunk/lib/Frontend/Rewrite/InclusionRewriter.cpp
The file was added/cfe/trunk/test/Frontend/Inputs/empty.hllvm-revision.src/cfe/trunk/test/Frontend/Inputs/empty.h
The file was modified/cfe/trunk/test/Frontend/rewrite-includes-line-markers.c (diff)llvm-revision.src/cfe/trunk/test/Frontend/rewrite-includes-line-markers.c
Revision 301726 by rsmith:
Remove unused, empty test directories.
Change TypePath in RepositoryPath in Workspace
The file was removed/cfe/trunk/test/Frontend/Rewriterllvm-revision.src/cfe/trunk/test/Frontend/Rewriter
Revision 301725 by rsmith:
Add pragma to perform module import and use it in -E output.

Many of our supported configurations support modules but do not have any
first-class syntax to perform a module import. This leaves us with a problem:
there is no way to represent the expansion of a #include that imports a module
in the -E output for such languages. (We don't want to just leave it as a
#include because that requires the consumer of the preprocessed source to have
the same file system layout and include paths as the creator.)

This patch adds a new pragma:

  #pragma clang module import MODULE.NAME.HERE

that imports a module, and changes -E and -frewrite-includes to use it when
rewriting a #include that maps to a module import. We don't make any attempt
to use a native language syntax import if one exists, to get more consistent
output. (If in the future, @import and #include have different semantics in
some way, the pragma will track the #include semantics.)
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td (diff)llvm-revision.src/cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td
The file was modified/cfe/trunk/include/clang/Lex/Preprocessor.h (diff)llvm-revision.src/cfe/trunk/include/clang/Lex/Preprocessor.h
The file was modified/cfe/trunk/lib/Frontend/PrintPreprocessedOutput.cpp (diff)llvm-revision.src/cfe/trunk/lib/Frontend/PrintPreprocessedOutput.cpp
The file was modified/cfe/trunk/lib/Frontend/Rewrite/InclusionRewriter.cpp (diff)llvm-revision.src/cfe/trunk/lib/Frontend/Rewrite/InclusionRewriter.cpp
The file was modified/cfe/trunk/lib/Lex/PPDirectives.cpp (diff)llvm-revision.src/cfe/trunk/lib/Lex/PPDirectives.cpp
The file was modified/cfe/trunk/lib/Lex/Pragma.cpp (diff)llvm-revision.src/cfe/trunk/lib/Lex/Pragma.cpp
The file was modified/cfe/trunk/test/Frontend/rewrite-includes-modules.c (diff)llvm-revision.src/cfe/trunk/test/Frontend/rewrite-includes-modules.c
The file was modified/cfe/trunk/test/Modules/crash-vfs-path-emptydir-entries.m (diff)llvm-revision.src/cfe/trunk/test/Modules/crash-vfs-path-emptydir-entries.m
The file was modified/cfe/trunk/test/Modules/crash-vfs-path-symlink-component.m (diff)llvm-revision.src/cfe/trunk/test/Modules/crash-vfs-path-symlink-component.m
The file was modified/cfe/trunk/test/Modules/crash-vfs-path-symlink-topheader.m (diff)llvm-revision.src/cfe/trunk/test/Modules/crash-vfs-path-symlink-topheader.m
The file was modified/cfe/trunk/test/Modules/crash-vfs-path-traversal.m (diff)llvm-revision.src/cfe/trunk/test/Modules/crash-vfs-path-traversal.m
The file was modified/cfe/trunk/test/Modules/crash-vfs-relative-overlay.m (diff)llvm-revision.src/cfe/trunk/test/Modules/crash-vfs-relative-overlay.m
The file was added/cfe/trunk/test/Modules/import-syntax.cllvm-revision.src/cfe/trunk/test/Modules/import-syntax.c
The file was modified/cfe/trunk/test/Modules/preprocess-module.cpp (diff)llvm-revision.src/cfe/trunk/test/Modules/preprocess-module.cpp
The file was modified/cfe/trunk/test/Modules/preprocess.cpp (diff)llvm-revision.src/cfe/trunk/test/Modules/preprocess.cpp
The file was modified/cfe/trunk/test/Modules/preprocess.m (diff)llvm-revision.src/cfe/trunk/test/Modules/preprocess.m
The file was modified/cfe/trunk/test/Preprocessor/pp-modules.c (diff)llvm-revision.src/cfe/trunk/test/Preprocessor/pp-modules.c
The file was added/cfe/trunk/test/Preprocessor/pragma_module.cllvm-revision.src/cfe/trunk/test/Preprocessor/pragma_module.c
Revision 301724 by ahatanak:
[ObjCARC] Do not move a release between a call and a
retainAutoreleasedReturnValue that retains the returned value.

This commit fixes a bug in ARC optimizer where it moves a release
between a call and a retainAutoreleasedReturnValue, causing the returned
object to be released before the retainAutoreleasedReturnValue can
retain it.

This commit accomplishes that by doing a lookahead and checking whether
the call prevents the release from moving upwards. In the long term, we
should treat the region between the retainAutoreleasedReturnValue and
the call as a critical section and disallow moving anything there
(possibly using operand bundles).

rdar://problem/20449878
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/ObjCARC/ObjCARC.h (diff)llvm-revision.src/llvm/trunk/lib/Transforms/ObjCARC/ObjCARC.h
The file was modified/llvm/trunk/lib/Transforms/ObjCARC/PtrState.cpp (diff)llvm-revision.src/llvm/trunk/lib/Transforms/ObjCARC/PtrState.cpp
The file was modified/llvm/trunk/test/Transforms/ObjCARC/rv.ll (diff)llvm-revision.src/llvm/trunk/test/Transforms/ObjCARC/rv.ll
Revision 301723 by davide:
[LoopUnswitch] Make DEBUG output more readable (part 2).

I fixed my miscompile in r301722 and I hope I don't have to take
a look at this code again now that Chandler has a new LoopUnswitch
pass, but maybe this could be of use for somebody else in the
meanwhile.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopUnswitch.cpp (diff)llvm-revision.src/llvm/trunk/lib/Transforms/Scalar/LoopUnswitch.cpp