FailedChanges

Summary

  1. Remove trailing whitespace from the -Map output. If a string is shorter than 7 characters, we used to print out trailing whitespace characters.
  2. [CodeGen][ObjC] Don't retain captured Objective-C pointers at block creation that are const-qualified. When a block captures an ObjC object pointer, clang retains the pointer to prevent prematurely destroying the object the pointer points to before the block is called or copied. When the captured object pointer is const-qualified, we can avoid emitting the retain/release pair since the pointer variable cannot be modified in the scope in which the block literal is introduced. For example: void test(const id x) { callee(^{ (void)x; }); } This patch implements that optimization. rdar://problem/28894510 Differential Revision: https://reviews.llvm.org/D32601
  3. Use Argument::hasAttribute and AttributeList::ReturnIndex more This eliminates many extra 'Idx' induction variables in loops over arguments in CodeGen/ and Target/. It also reduces the number of places where we assume that ReturnIndex is 0 and that we should add one to argument numbers to get the corresponding attribute list index. NFC
  4. Cleanup: Use DIExpression::prepend in buildDbgValueForSpill(). (NFC)
  5. Add remaining SBTrace headers to LLDB framework
Revision 301668 by ruiu:
Remove trailing whitespace from the -Map output.

If a string is shorter than 7 characters, we used to print out
trailing whitespace characters.
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/ELF/MapFile.cpp (diff)llvm-revision.src/lld/trunk/ELF/MapFile.cpp
Revision 301667 by ahatanak:
[CodeGen][ObjC] Don't retain captured Objective-C pointers at block
creation that are const-qualified.

When a block captures an ObjC object pointer, clang retains the pointer
to prevent prematurely destroying the object the pointer points to
before the block is called or copied.

When the captured object pointer is const-qualified, we can avoid
emitting the retain/release pair since the pointer variable cannot be
modified in the scope in which the block literal is introduced.

For example:

void test(const id x) {
    callee(^{ (void)x; });
}

This patch implements that optimization.

rdar://problem/28894510

Differential Revision: https://reviews.llvm.org/D32601
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGBlocks.cpp (diff)llvm-revision.src/cfe/trunk/lib/CodeGen/CGBlocks.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGObjC.cpp (diff)llvm-revision.src/cfe/trunk/lib/CodeGen/CGObjC.cpp
The file was modified/cfe/trunk/lib/CodeGen/CodeGenFunction.h (diff)llvm-revision.src/cfe/trunk/lib/CodeGen/CodeGenFunction.h
The file was modified/cfe/trunk/test/CodeGenObjC/arc-blocks.m (diff)llvm-revision.src/cfe/trunk/test/CodeGenObjC/arc-blocks.m
The file was modified/cfe/trunk/test/CodeGenObjC/arc-foreach.m (diff)llvm-revision.src/cfe/trunk/test/CodeGenObjC/arc-foreach.m
Revision 301666 by rnk:
Use Argument::hasAttribute and AttributeList::ReturnIndex more

This eliminates many extra 'Idx' induction variables in loops over
arguments in CodeGen/ and Target/. It also reduces the number of places
where we assume that ReturnIndex is 0 and that we should add one to
argument numbers to get the corresponding attribute list index.

NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/CallSite.h (diff)llvm-revision.src/llvm/trunk/include/llvm/IR/CallSite.h
The file was modified/llvm/trunk/include/llvm/IR/Function.h (diff)llvm-revision.src/llvm/trunk/include/llvm/IR/Function.h
The file was modified/llvm/trunk/lib/Analysis/CFLGraph.h (diff)llvm-revision.src/llvm/trunk/lib/Analysis/CFLGraph.h
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff)llvm-revision.src/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modified/llvm/trunk/lib/IR/AsmWriter.cpp (diff)llvm-revision.src/llvm/trunk/lib/IR/AsmWriter.cpp
The file was modified/llvm/trunk/lib/IR/Attributes.cpp (diff)llvm-revision.src/llvm/trunk/lib/IR/Attributes.cpp
The file was modified/llvm/trunk/lib/IR/Instructions.cpp (diff)llvm-revision.src/llvm/trunk/lib/IR/Instructions.cpp
The file was modified/llvm/trunk/lib/IR/Value.cpp (diff)llvm-revision.src/llvm/trunk/lib/IR/Value.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64FastISel.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/AArch64/AArch64FastISel.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMFastISel.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/ARM/ARMFastISel.cpp
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonBitTracker.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/Hexagon/HexagonBitTracker.cpp
The file was modified/llvm/trunk/lib/Target/Mips/MipsFastISel.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/Mips/MipsFastISel.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86FastISel.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/X86/X86FastISel.cpp
The file was modified/llvm/trunk/lib/Transforms/IPO/ArgumentPromotion.cpp (diff)llvm-revision.src/llvm/trunk/lib/Transforms/IPO/ArgumentPromotion.cpp
The file was modified/llvm/trunk/lib/Transforms/IPO/FunctionAttrs.cpp (diff)llvm-revision.src/llvm/trunk/lib/Transforms/IPO/FunctionAttrs.cpp
Revision 301665 by Adrian Prantl:
Cleanup: Use DIExpression::prepend in buildDbgValueForSpill(). (NFC)
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/DebugInfoMetadata.h (diff)llvm-revision.src/llvm/trunk/include/llvm/IR/DebugInfoMetadata.h
The file was modified/llvm/trunk/lib/CodeGen/MachineInstr.cpp (diff)llvm-revision.src/llvm/trunk/lib/CodeGen/MachineInstr.cpp
The file was modified/llvm/trunk/lib/IR/DebugInfoMetadata.cpp (diff)llvm-revision.src/llvm/trunk/lib/IR/DebugInfoMetadata.cpp
Revision 301664 by penryu:
Add remaining SBTrace headers to LLDB framework
Change TypePath in RepositoryPath in Workspace
The file was modified/lldb/trunk/lldb.xcodeproj/project.pbxproj (diff)llvm-revision.src/lldb/trunk/lldb.xcodeproj/project.pbxproj