Changes
Summary
- [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.
- PR26771: don't forget the " 2" (returning from #included file) linemarker after including an empty file with -frewrite-includes.
- Remove unused, empty test directories.
- 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.)
- [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
- [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 Type | Path in Repository | Path in Workspace |
---|---|---|
![]() | /llvm/trunk/include/llvm/DebugInfo/CodeView/CodeView.h (diff) | llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/CodeView/CodeView.h |
![]() | /llvm/trunk/include/llvm/DebugInfo/CodeView/ModuleDebugFileChecksumFragment.h (diff) | llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/CodeView/ModuleDebugFileChecksumFragment.h |
![]() | /llvm/trunk/include/llvm/DebugInfo/CodeView/ModuleDebugFragmentVisitor.h (diff) | llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/CodeView/ModuleDebugFragmentVisitor.h |
![]() | /llvm/trunk/include/llvm/DebugInfo/CodeView/ModuleDebugLineFragment.h (diff) | llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/CodeView/ModuleDebugLineFragment.h |
![]() | /llvm/trunk/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h (diff) | llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h |
![]() | /llvm/trunk/include/llvm/DebugInfo/PDB/Native/RawTypes.h (diff) | llvm-revision.src/llvm/trunk/include/llvm/DebugInfo/PDB/Native/RawTypes.h |
![]() | /llvm/trunk/lib/DebugInfo/CodeView/ModuleDebugFragmentVisitor.cpp (diff) | llvm-revision.src/llvm/trunk/lib/DebugInfo/CodeView/ModuleDebugFragmentVisitor.cpp |
![]() | /llvm/trunk/lib/DebugInfo/CodeView/ModuleDebugLineFragment.cpp (diff) | llvm-revision.src/llvm/trunk/lib/DebugInfo/CodeView/ModuleDebugLineFragment.cpp |
![]() | /llvm/trunk/lib/DebugInfo/PDB/Native/DbiModuleDescriptor.cpp (diff) | llvm-revision.src/llvm/trunk/lib/DebugInfo/PDB/Native/DbiModuleDescriptor.cpp |
![]() | /llvm/trunk/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp (diff) | llvm-revision.src/llvm/trunk/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp |
![]() | /llvm/trunk/lib/DebugInfo/PDB/Native/ModuleDebugStream.cpp (diff) | llvm-revision.src/llvm/trunk/lib/DebugInfo/PDB/Native/ModuleDebugStream.cpp |
![]() | /llvm/trunk/lib/MC/MCCodeView.cpp (diff) | llvm-revision.src/llvm/trunk/lib/MC/MCCodeView.cpp |
![]() | /llvm/trunk/test/DebugInfo/PDB/pdbdump-headers.test (diff) | llvm-revision.src/llvm/trunk/test/DebugInfo/PDB/pdbdump-headers.test |
![]() | /llvm/trunk/test/DebugInfo/PDB/pdbdump-yaml-lineinfo.test (diff) | llvm-revision.src/llvm/trunk/test/DebugInfo/PDB/pdbdump-yaml-lineinfo.test |
![]() | /llvm/trunk/tools/llvm-pdbdump/C13DebugFragmentVisitor.cpp | llvm-revision.src/llvm/trunk/tools/llvm-pdbdump/C13DebugFragmentVisitor.cpp |
![]() | /llvm/trunk/tools/llvm-pdbdump/C13DebugFragmentVisitor.h | llvm-revision.src/llvm/trunk/tools/llvm-pdbdump/C13DebugFragmentVisitor.h |
![]() | /llvm/trunk/tools/llvm-pdbdump/CMakeLists.txt (diff) | llvm-revision.src/llvm/trunk/tools/llvm-pdbdump/CMakeLists.txt |
![]() | /llvm/trunk/tools/llvm-pdbdump/LLVMOutputStyle.cpp (diff) | llvm-revision.src/llvm/trunk/tools/llvm-pdbdump/LLVMOutputStyle.cpp |
![]() | /llvm/trunk/tools/llvm-pdbdump/PdbYaml.cpp (diff) | llvm-revision.src/llvm/trunk/tools/llvm-pdbdump/PdbYaml.cpp |
![]() | /llvm/trunk/tools/llvm-pdbdump/PdbYaml.h (diff) | llvm-revision.src/llvm/trunk/tools/llvm-pdbdump/PdbYaml.h |
![]() | /llvm/trunk/tools/llvm-pdbdump/YAMLOutputStyle.cpp (diff) | llvm-revision.src/llvm/trunk/tools/llvm-pdbdump/YAMLOutputStyle.cpp |
![]() | /llvm/trunk/tools/llvm-readobj/COFFDumper.cpp (diff) | llvm-revision.src/llvm/trunk/tools/llvm-readobj/COFFDumper.cpp |
Change Type | Path in Repository | Path in Workspace |
![]() | /cfe/trunk/lib/Frontend/Rewrite/InclusionRewriter.cpp (diff) | llvm-revision.src/cfe/trunk/lib/Frontend/Rewrite/InclusionRewriter.cpp |
![]() | /cfe/trunk/test/Frontend/Inputs/empty.h | llvm-revision.src/cfe/trunk/test/Frontend/Inputs/empty.h |
![]() | /cfe/trunk/test/Frontend/rewrite-includes-line-markers.c (diff) | llvm-revision.src/cfe/trunk/test/Frontend/rewrite-includes-line-markers.c |
Change Type | Path in Repository | Path in Workspace |
![]() | /cfe/trunk/test/Frontend/Rewriter | llvm-revision.src/cfe/trunk/test/Frontend/Rewriter |
Change Type | Path in Repository | Path in Workspace |
![]() | /cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td (diff) | llvm-revision.src/cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td |
![]() | /cfe/trunk/include/clang/Lex/Preprocessor.h (diff) | llvm-revision.src/cfe/trunk/include/clang/Lex/Preprocessor.h |
![]() | /cfe/trunk/lib/Frontend/PrintPreprocessedOutput.cpp (diff) | llvm-revision.src/cfe/trunk/lib/Frontend/PrintPreprocessedOutput.cpp |
![]() | /cfe/trunk/lib/Frontend/Rewrite/InclusionRewriter.cpp (diff) | llvm-revision.src/cfe/trunk/lib/Frontend/Rewrite/InclusionRewriter.cpp |
![]() | /cfe/trunk/lib/Lex/PPDirectives.cpp (diff) | llvm-revision.src/cfe/trunk/lib/Lex/PPDirectives.cpp |
![]() | /cfe/trunk/lib/Lex/Pragma.cpp (diff) | llvm-revision.src/cfe/trunk/lib/Lex/Pragma.cpp |
![]() | /cfe/trunk/test/Frontend/rewrite-includes-modules.c (diff) | llvm-revision.src/cfe/trunk/test/Frontend/rewrite-includes-modules.c |
![]() | /cfe/trunk/test/Modules/crash-vfs-path-emptydir-entries.m (diff) | llvm-revision.src/cfe/trunk/test/Modules/crash-vfs-path-emptydir-entries.m |
![]() | /cfe/trunk/test/Modules/crash-vfs-path-symlink-component.m (diff) | llvm-revision.src/cfe/trunk/test/Modules/crash-vfs-path-symlink-component.m |
![]() | /cfe/trunk/test/Modules/crash-vfs-path-symlink-topheader.m (diff) | llvm-revision.src/cfe/trunk/test/Modules/crash-vfs-path-symlink-topheader.m |
![]() | /cfe/trunk/test/Modules/crash-vfs-path-traversal.m (diff) | llvm-revision.src/cfe/trunk/test/Modules/crash-vfs-path-traversal.m |
![]() | /cfe/trunk/test/Modules/crash-vfs-relative-overlay.m (diff) | llvm-revision.src/cfe/trunk/test/Modules/crash-vfs-relative-overlay.m |
![]() | /cfe/trunk/test/Modules/import-syntax.c | llvm-revision.src/cfe/trunk/test/Modules/import-syntax.c |
![]() | /cfe/trunk/test/Modules/preprocess-module.cpp (diff) | llvm-revision.src/cfe/trunk/test/Modules/preprocess-module.cpp |
![]() | /cfe/trunk/test/Modules/preprocess.cpp (diff) | llvm-revision.src/cfe/trunk/test/Modules/preprocess.cpp |
![]() | /cfe/trunk/test/Modules/preprocess.m (diff) | llvm-revision.src/cfe/trunk/test/Modules/preprocess.m |
![]() | /cfe/trunk/test/Preprocessor/pp-modules.c (diff) | llvm-revision.src/cfe/trunk/test/Preprocessor/pp-modules.c |
![]() | /cfe/trunk/test/Preprocessor/pragma_module.c | llvm-revision.src/cfe/trunk/test/Preprocessor/pragma_module.c |
Change Type | Path in Repository | Path in Workspace |
![]() | /llvm/trunk/lib/Transforms/ObjCARC/ObjCARC.h (diff) | llvm-revision.src/llvm/trunk/lib/Transforms/ObjCARC/ObjCARC.h |
![]() | /llvm/trunk/lib/Transforms/ObjCARC/PtrState.cpp (diff) | llvm-revision.src/llvm/trunk/lib/Transforms/ObjCARC/PtrState.cpp |
![]() | /llvm/trunk/test/Transforms/ObjCARC/rv.ll (diff) | llvm-revision.src/llvm/trunk/test/Transforms/ObjCARC/rv.ll |
Change Type | Path in Repository | Path in Workspace |
![]() | /llvm/trunk/lib/Transforms/Scalar/LoopUnswitch.cpp (diff) | llvm-revision.src/llvm/trunk/lib/Transforms/Scalar/LoopUnswitch.cpp |