<div dir="ltr"><div dir="ltr" class="gmail_msg">Can you double check after <span style="color:rgb(33,33,33);font-family:"helvetica neue",helvetica,arial,sans-serif;font-size:13px">r281718?</span></div><div dir="ltr" class="gmail_msg"><span style="color:rgb(33,33,33);font-family:"helvetica neue",helvetica,arial,sans-serif;font-size:13px"><br></span></div><div class="gmail_msg"><span style="color:rgb(33,33,33);font-family:"helvetica neue",helvetica,arial,sans-serif;font-size:13px">Thanks!</span></div><div dir="ltr" class="gmail_msg"><span style="color:rgb(33,33,33);font-family:"helvetica neue",helvetica,arial,sans-serif;font-size:13px"><br></span></div><div class="gmail_msg"><span style="color:rgb(33,33,33);font-family:"helvetica neue",helvetica,arial,sans-serif;font-size:13px">-eric</span></div><br class="gmail_msg"><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg">On Fri, Sep 16, 2016 at 8:55 AM Bill Seurer <<a href="mailto:seurer@linux.vnet.ibm.com" class="gmail_msg" target="_blank">seurer@linux.vnet.ibm.com</a>> wrote:<br class="gmail_msg"></div><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This change causes many segmentation faults on powerpc both BE and LE in<br class="gmail_msg">
clang with the asan tests and possibly others.  All the powerpc<br class="gmail_msg">
buildbots are failing because of it.<br class="gmail_msg">
<br class="gmail_msg">
See <a href="http://lab.llvm.org:8011/builders/clang-ppc64le-linux/builds/7648" rel="noreferrer" class="gmail_msg" target="_blank">http://lab.llvm.org:8011/builders/clang-ppc64le-linux/builds/7648</a><br class="gmail_msg">
for the first occurance.<br class="gmail_msg">
<br class="gmail_msg">
Sample from a local build:<br class="gmail_msg">
<br class="gmail_msg">
[29/34] Generating ASAN_INST_TEST_OBJECTS.asan_test.cc.powerpc64le-inline.o<br class="gmail_msg">
FAILED: cd<br class="gmail_msg">
/home/seurer/llvm/build/llvm-test3/projects/compiler-rt/lib/asan/tests<br class="gmail_msg">
&& /home/seurer/llvm/build/llvm-test3/./bin/clang -fPIC<br class="gmail_msg">
-fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter<br class="gmail_msg">
-Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic<br class="gmail_msg">
-Wno-long-long -Wno-maybe-uninitialized -Wdelete-non-virtual-dtor<br class="gmail_msg">
-Wno-comment -Werror=date-time -std=c++11 -ffunction-sections<br class="gmail_msg">
-fdata-sections -Wall -std=c++11 -Wno-unused-parameter<br class="gmail_msg">
-Wno-unknown-warning-option -DGTEST_NO_LLVM_RAW_OSTREAM=1<br class="gmail_msg">
-DGTEST_HAS_RTTI=0<br class="gmail_msg">
-I/home/seurer/llvm/llvm-test3/utils/unittest/googletest/include<br class="gmail_msg">
-I/home/seurer/llvm/llvm-test3/utils/unittest/googletest<br class="gmail_msg">
-I/home/seurer/llvm/llvm-test3/projects/compiler-rt/include<br class="gmail_msg">
-I/home/seurer/llvm/llvm-test3/projects/compiler-rt/lib<br class="gmail_msg">
-I/home/seurer/llvm/llvm-test3/projects/compiler-rt/lib/asan<br class="gmail_msg">
-I/home/seurer/llvm/llvm-test3/projects/compiler-rt/lib/sanitizer_common/tests<br class="gmail_msg">
-fno-rtti -O2 -Wno-format -Werror=sign-compare -Wno-non-virtual-dtor<br class="gmail_msg">
-Wno-variadic-macros -gline-tables-only -DASAN_HAS_BLACKLIST=1<br class="gmail_msg">
-DASAN_HAS_EXCEPTIONS=1 -DASAN_UAR=0 -fsanitize=address<br class="gmail_msg">
-fsanitize-blacklist=/home/seurer/llvm/llvm-test3/projects/compiler-rt/lib/asan/tests/asan_test.ignore<br class="gmail_msg">
-m64 -c -o ASAN_INST_TEST_OBJECTS.asan_test.cc.powerpc64le-inline.o<br class="gmail_msg">
/home/seurer/llvm/llvm-test3/projects/compiler-rt/lib/asan/tests/asan_test.cc<br class="gmail_msg">
#0 0x0000000011cd17c4 llvm::sys::PrintStackTrace(llvm::raw_ostream&)<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x11cd17c4)<br class="gmail_msg">
#1 0x0000000011cd1d10 PrintStackTraceSignalHandler(void*)<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x11cd1d10)<br class="gmail_msg">
#2 0x0000000011ccefbc llvm::sys::RunSignalHandlers()<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x11ccefbc)<br class="gmail_msg">
#3 0x0000000011ccf1a4 SignalHandler(int)<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x11ccf1a4)<br class="gmail_msg">
#4 0x00003fffa1690478  0x100478<br class="gmail_msg">
llvm::Mangler::getNameWithPrefix(llvm::raw_ostream&, llvm::GlobalValue<br class="gmail_msg">
const*, bool) const<br class="gmail_msg">
#5 0x00003fffa1690478<br class="gmail_msg">
#6 0x00003fffa1690478 llvm::Module::getNamedMetadata(llvm::Twine const&)<br class="gmail_msg">
const (+0x100478)<br class="gmail_msg">
#7 0x0000000011829cf8<br class="gmail_msg">
llvm::Mangler::getNameWithPrefix(llvm::SmallVectorImpl<char>&,<br class="gmail_msg">
llvm::GlobalValue const*, bool) const<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x11829cf8)<br class="gmail_msg">
#8 0x00000000118481e4<br class="gmail_msg">
llvm::TargetMachine::getNameWithPrefix(llvm::SmallVectorImpl<char>&,<br class="gmail_msg">
llvm::GlobalValue const*, llvm::Mangler&, bool) const<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x118481e4)<br class="gmail_msg">
#9 0x000000001182b388 GetSymbolFromOperand(llvm::MachineOperand const&,<br class="gmail_msg">
llvm::AsmPrinter&)<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x1182b388)<br class="gmail_msg">
#10 0x0000000012659b40<br class="gmail_msg">
llvm::LowerPPCMachineInstrToMCInst(llvm::MachineInstr const*,<br class="gmail_msg">
llvm::MCInst&, llvm::AsmPrinter&, bool)<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x12659b40)<br class="gmail_msg">
#11 0x0000000010e4b75c (anonymous<br class="gmail_msg">
namespace)::PPCAsmPrinter::EmitInstruction(llvm::MachineInstr const*)<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x10e4b75c)<br class="gmail_msg">
#12 0x0000000010e4c20c llvm::AsmPrinter::EmitFunctionBody()<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x10e4c20c)<br class="gmail_msg">
#13 0x0000000010e49368 (anonymous<br class="gmail_msg">
namespace)::PPCAsmPrinter::runOnMachineFunction(llvm::MachineFunction&)<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x10e49368)<br class="gmail_msg">
#14 0x00000000123146d0<br class="gmail_msg">
llvm::MachineFunctionPass::runOnFunction(llvm::Function&)<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x123146d0)<br class="gmail_msg">
#15 0x0000000010e42c84<br class="gmail_msg">
llvm::FPPassManager::runOnFunction(llvm::Function&)<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x10e42c84)<br class="gmail_msg">
#16 0x00000000114b69ec llvm::FPPassManager::runOnModule(llvm::Module&)<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x114b69ec)<br class="gmail_msg">
#17 0x0000000011824fb8 llvm::legacy::PassManagerImpl::run(llvm::Module&)<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x11824fb8)<br class="gmail_msg">
#18 0x00000000118250e8 llvm::legacy::PassManager::run(llvm::Module&)<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x118250e8)<br class="gmail_msg">
#19 0x00000000118259a0<br class="gmail_msg">
clang::EmitBackendOutput(clang::DiagnosticsEngine&,<br class="gmail_msg">
clang::CodeGenOptions const&, clang::TargetOptions const&,<br class="gmail_msg">
clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*,<br class="gmail_msg">
clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream,<br class="gmail_msg">
std::default_delete<llvm::raw_pwrite_stream> >)<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x118259a0)<br class="gmail_msg">
#20 0x0000000011825c7c<br class="gmail_msg">
clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&)<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x11825c7c)<br class="gmail_msg">
#21 0x0000000011e97e0c clang::ParseAST(clang::Sema&, bool, bool)<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x11e97e0c)<br class="gmail_msg">
#22 0x00000000125b4fc8 clang::ASTFrontendAction::ExecuteAction()<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x125b4fc8)<br class="gmail_msg">
#23 0x0000000012a3d7fc clang::CodeGenAction::ExecuteAction()<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x12a3d7fc)<br class="gmail_msg">
#24 0x0000000012246c10 clang::FrontendAction::Execute()<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x12246c10)<br class="gmail_msg">
#25 0x00000000125b5b14<br class="gmail_msg">
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x125b5b14)<br class="gmail_msg">
#26 0x0000000012247df8<br class="gmail_msg">
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x12247df8)<br class="gmail_msg">
#27 0x00000000122172d0 cc1_main(llvm::ArrayRef<char const*>, char<br class="gmail_msg">
const*, void*) (/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x122172d0)<br class="gmail_msg">
#28 0x00000000122e8be8 main<br class="gmail_msg">
(/home/seurer/llvm/build/llvm-test3/bin/clang-4.0+0x122e8be8)<br class="gmail_msg">
#29 0x00000000106668b8 generic_start_main<br class="gmail_msg">
/build/buildd/eglibc-2.19/csu/../csu/libc-start.c:287:0<br class="gmail_msg">
#30 0x00000000105facd4 __libc_start_main<br class="gmail_msg">
/build/buildd/eglibc-2.19/csu/../sysdeps/unix/sysv/linux/powerpc/libc-start.c:93:0<br class="gmail_msg">
0  clang-4.0 0x0000000011cd17c4<br class="gmail_msg">
llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 116<br class="gmail_msg">
1  clang-4.0 0x0000000011cd1d10<br class="gmail_msg">
2  clang-4.0 0x0000000011ccefbc llvm::sys::RunSignalHandlers() + 156<br class="gmail_msg">
3  clang-4.0 0x0000000011ccf1a4<br class="gmail_msg">
4            0x00003fffa1690478 __kernel_sigtramp_rt64 + 0<br class="gmail_msg">
5  clang-4.0 0x0000000011829cf8<br class="gmail_msg">
llvm::Mangler::getNameWithPrefix(llvm::raw_ostream&, llvm::GlobalValue<br class="gmail_msg">
const*, bool) const + 152<br class="gmail_msg">
6  clang-4.0 0x00000000118481e4<br class="gmail_msg">
llvm::Module::getNamedMetadata(llvm::Twine const&) const + 116<br class="gmail_msg">
7  clang-4.0 0x000000001182b388<br class="gmail_msg">
llvm::Mangler::getNameWithPrefix(llvm::SmallVectorImpl<char>&,<br class="gmail_msg">
llvm::GlobalValue const*, bool) const + 136<br class="gmail_msg">
8  clang-4.0 0x0000000012659b40<br class="gmail_msg">
llvm::TargetMachine::getNameWithPrefix(llvm::SmallVectorImpl<char>&,<br class="gmail_msg">
llvm::GlobalValue const*, llvm::Mangler&, bool) const + 64<br class="gmail_msg">
9  clang-4.0 0x0000000010e4b75c<br class="gmail_msg">
10 clang-4.0 0x0000000010e4c20c<br class="gmail_msg">
llvm::LowerPPCMachineInstrToMCInst(llvm::MachineInstr const*,<br class="gmail_msg">
llvm::MCInst&, llvm::AsmPrinter&, bool) + 444<br class="gmail_msg">
11 clang-4.0 0x0000000010e49368<br class="gmail_msg">
12 clang-4.0 0x00000000123146d0 llvm::AsmPrinter::EmitFunctionBody() + 2192<br class="gmail_msg">
13 clang-4.0 0x0000000010e42c84<br class="gmail_msg">
14 clang-4.0 0x00000000114b69ec<br class="gmail_msg">
llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 876<br class="gmail_msg">
15 clang-4.0 0x0000000011824fb8<br class="gmail_msg">
llvm::FPPassManager::runOnFunction(llvm::Function&) + 744<br class="gmail_msg">
16 clang-4.0 0x00000000118250e8<br class="gmail_msg">
llvm::FPPassManager::runOnModule(llvm::Module&) + 104<br class="gmail_msg">
17 clang-4.0 0x00000000118259a0<br class="gmail_msg">
llvm::legacy::PassManagerImpl::run(llvm::Module&) + 1056<br class="gmail_msg">
18 clang-4.0 0x0000000011825c7c<br class="gmail_msg">
llvm::legacy::PassManager::run(llvm::Module&) + 28<br class="gmail_msg">
19 clang-4.0 0x0000000011e97e0c<br class="gmail_msg">
clang::EmitBackendOutput(clang::DiagnosticsEngine&,<br class="gmail_msg">
clang::CodeGenOptions const&, clang::TargetOptions const&,<br class="gmail_msg">
clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*,<br class="gmail_msg">
clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream,<br class="gmail_msg">
std::default_delete<llvm::raw_pwrite_stream> >) + 3596<br class="gmail_msg">
20 clang-4.0 0x00000000125b4fc8<br class="gmail_msg">
21 clang-4.0 0x0000000012a3d7fc clang::ParseAST(clang::Sema&, bool,<br class="gmail_msg">
bool) + 1068<br class="gmail_msg">
22 clang-4.0 0x0000000012246c10<br class="gmail_msg">
clang::ASTFrontendAction::ExecuteAction() + 112<br class="gmail_msg">
23 clang-4.0 0x00000000125b5b14 clang::CodeGenAction::ExecuteAction() + 132<br class="gmail_msg">
24 clang-4.0 0x0000000012247df8 clang::FrontendAction::Execute() + 664<br class="gmail_msg">
25 clang-4.0 0x00000000122172d0<br class="gmail_msg">
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 416<br class="gmail_msg">
26 clang-4.0 0x00000000122e8be8<br class="gmail_msg">
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 3400<br class="gmail_msg">
27 clang-4.0 0x00000000106668b8 cc1_main(llvm::ArrayRef<char const*>,<br class="gmail_msg">
char const*, void*) + 3256<br class="gmail_msg">
28 clang-4.0 0x00000000105facd4 main + 2164<br class="gmail_msg">
29 libc.so.6 0x00003fffa1094d00<br class="gmail_msg">
30 libc.so.6 0x00003fffa1094ef8 __libc_start_main + 200<br class="gmail_msg">
Stack dump:<br class="gmail_msg">
0.      Program arguments: /home/seurer/llvm/build/llvm-test3/bin/clang-4.0<br class="gmail_msg">
-cc1 -triple powerpc64le-unknown-linux-gnu -emit-obj -disable-free<br class="gmail_msg">
-main-file-name asan_test.cc -mrelocation-model pic -pic-level 2<br class="gmail_msg">
-mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose<br class="gmail_msg">
-mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu<br class="gmail_msg">
ppc64le -mfloat-abi hard -target-abi elfv2 -dwarf-column-info<br class="gmail_msg">
-debug-info-kind=line-tables-only -dwarf-version=4 -debugger-tuning=gdb<br class="gmail_msg">
-ffunction-sections -fdata-sections -coverage-notes-file<br class="gmail_msg">
/home/seurer/llvm/build/llvm-test3/projects/compiler-rt/lib/asan/tests/ASAN_INST_TEST_<a href="http://OBJECTS.asan_test.cc" class="gmail_msg" target="_blank">OBJECTS.asan_test.cc</a>.powerpc64le-inline.gcno<br class="gmail_msg">
-resource-dir /home/seurer/llvm/build/llvm-test3/bin/../lib/clang/4.0.0<br class="gmail_msg">
-D GTEST_NO_LLVM_RAW_OSTREAM=1 -D GTEST_HAS_RTTI=0 -I<br class="gmail_msg">
/home/seurer/llvm/llvm-test3/utils/unittest/googletest/include -I<br class="gmail_msg">
/home/seurer/llvm/llvm-test3/utils/unittest/googletest -I<br class="gmail_msg">
/home/seurer/llvm/llvm-test3/projects/compiler-rt/include -I<br class="gmail_msg">
/home/seurer/llvm/llvm-test3/projects/compiler-rt/lib -I<br class="gmail_msg">
/home/seurer/llvm/llvm-test3/projects/compiler-rt/lib/asan -I<br class="gmail_msg">
/home/seurer/llvm/llvm-test3/projects/compiler-rt/lib/sanitizer_common/tests<br class="gmail_msg">
-D ASAN_HAS_BLACKLIST=1 -D ASAN_HAS_EXCEPTIONS=1 -D ASAN_UAR=0<br class="gmail_msg">
-internal-isystem<br class="gmail_msg">
/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../../include/c++/4.8<br class="gmail_msg">
-internal-isystem<br class="gmail_msg">
/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../../include/powerpc64le-linux-gnu/c++/4.8<br class="gmail_msg">
-internal-isystem<br class="gmail_msg">
/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../../include/powerpc64le-linux-gnu/c++/4.8<br class="gmail_msg">
-internal-isystem<br class="gmail_msg">
/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../../include/c++/4.8/backward<br class="gmail_msg">
-internal-isystem /usr/local/include -internal-isystem<br class="gmail_msg">
/home/seurer/llvm/build/llvm-test3/bin/../lib/clang/4.0.0/include<br class="gmail_msg">
-internal-externc-isystem /usr/include/powerpc64le-linux-gnu<br class="gmail_msg">
-internal-externc-isystem /include -internal-externc-isystem<br class="gmail_msg">
/usr/include -O2 -Wall -W -Wno-unused-parameter -Wwrite-strings<br class="gmail_msg">
-Wcast-qual -Wno-missing-field-initializers -Wno-long-long<br class="gmail_msg">
-Wno-maybe-uninitialized -Wdelete-non-virtual-dtor -Wno-comment<br class="gmail_msg">
-Werror=date-time -Wall -Wno-unused-parameter<br class="gmail_msg">
-Wno-unknown-warning-option -Wno-format -Werror=sign-compare<br class="gmail_msg">
-Wno-non-virtual-dtor -Wno-variadic-macros -pedantic -std=c++11<br class="gmail_msg">
-fdeprecated-macro -fdebug-compilation-dir<br class="gmail_msg">
/home/seurer/llvm/build/llvm-test3/projects/compiler-rt/lib/asan/tests<br class="gmail_msg">
-ferror-limit 19 -fmessage-length 0 -fvisibility-inlines-hidden<br class="gmail_msg">
-fsanitize=address<br class="gmail_msg">
-fsanitize-blacklist=/home/seurer/llvm/build/llvm-test3/bin/../lib/clang/4.0.0/asan_blacklist.txt<br class="gmail_msg">
-fsanitize-blacklist=/home/seurer/llvm/llvm-test3/projects/compiler-rt/lib/asan/tests/asan_test.ignore<br class="gmail_msg">
-fdepfile-entry=/home/seurer/llvm/llvm-test3/projects/compiler-rt/lib/asan/tests/asan_test.ignore<br class="gmail_msg">
-fno-assume-sane-operator-new -fno-rtti -fno-signed-char<br class="gmail_msg">
-fobjc-runtime=gcc -fcxx-exceptions -fexceptions<br class="gmail_msg">
-fdiagnostics-show-option -vectorize-loops -vectorize-slp -o<br class="gmail_msg">
ASAN_INST_TEST_OBJECTS.asan_test.cc.powerpc64le-inline.o -x c++<br class="gmail_msg">
/home/seurer/llvm/llvm-test3/projects/compiler-rt/lib/asan/tests/asan_test.cc<br class="gmail_msg">
<br class="gmail_msg">
1.      <eof> parser at end of file<br class="gmail_msg">
2.      Code generation<br class="gmail_msg">
3.      Running pass 'Function Pass Manager' on module<br class="gmail_msg">
'/home/seurer/llvm/llvm-test3/projects/compiler-rt/lib/asan/tests/asan_test.cc'.<br class="gmail_msg">
4.      Running pass 'Linux PPC Assembly Printer' on function '@asan.module_ctor'<br class="gmail_msg">
clang-4.0: error: unable to execute command: Segmentation fault (core<br class="gmail_msg">
dumped)<br class="gmail_msg">
clang-4.0: error: clang frontend command failed due to signal (use -v to<br class="gmail_msg">
see invocation)<br class="gmail_msg">
clang version 4.0.0 (trunk 281708)<br class="gmail_msg">
Target: powerpc64le-unknown-linux-gnu<br class="gmail_msg">
Thread model: posix<br class="gmail_msg">
InstalledDir: /home/seurer/llvm/build/llvm-test3/./bin<br class="gmail_msg">
clang-4.0: note: diagnostic msg: PLEASE submit a bug report to<br class="gmail_msg">
<a href="http://llvm.org/bugs/" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/bugs/</a> and include the crash backtrace, preprocessed<br class="gmail_msg">
source, and associated run script.<br class="gmail_msg">
clang-4.0: note: diagnostic msg:<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
On 09/16/16 02:33, Eric Christopher via llvm-commits wrote:<br class="gmail_msg">
> Author: echristo<br class="gmail_msg">
> Date: Fri Sep 16 02:33:15 2016<br class="gmail_msg">
> New Revision: 281708<br class="gmail_msg">
><br class="gmail_msg">
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=281708&view=rev" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project?rev=281708&view=rev</a><br class="gmail_msg">
> Log:<br class="gmail_msg">
> Move the Mangler from the AsmPrinter down to TLOF and clean up the<br class="gmail_msg">
> TLOF API accordingly.<br class="gmail_msg">
><br class="gmail_msg">
> Modified:<br class="gmail_msg">
>     llvm/trunk/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h<br class="gmail_msg">
>     llvm/trunk/include/llvm/Target/TargetLoweringObjectFile.h<br class="gmail_msg">
>     llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp<br class="gmail_msg">
>     llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp<br class="gmail_msg">
>     llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp<br class="gmail_msg">
>     llvm/trunk/lib/CodeGen/AsmPrinter/WinException.cpp<br class="gmail_msg">
>     llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp<br class="gmail_msg">
>     llvm/trunk/lib/LTO/LTOModule.cpp<br class="gmail_msg">
>     llvm/trunk/lib/Target/AArch64/AArch64TargetObjectFile.cpp<br class="gmail_msg">
>     llvm/trunk/lib/Target/AArch64/AArch64TargetObjectFile.h<br class="gmail_msg">
>     llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp<br class="gmail_msg">
>     llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h<br class="gmail_msg">
>     llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp<br class="gmail_msg">
>     llvm/trunk/lib/Target/ARM/ARMTargetObjectFile.cpp<br class="gmail_msg">
>     llvm/trunk/lib/Target/ARM/ARMTargetObjectFile.h<br class="gmail_msg">
>     llvm/trunk/lib/Target/Hexagon/HexagonTargetObjectFile.cpp<br class="gmail_msg">
>     llvm/trunk/lib/Target/Hexagon/HexagonTargetObjectFile.h<br class="gmail_msg">
>     llvm/trunk/lib/Target/Lanai/LanaiTargetObjectFile.cpp<br class="gmail_msg">
>     llvm/trunk/lib/Target/Lanai/LanaiTargetObjectFile.h<br class="gmail_msg">
>     llvm/trunk/lib/Target/Mips/MipsTargetObjectFile.cpp<br class="gmail_msg">
>     llvm/trunk/lib/Target/Mips/MipsTargetObjectFile.h<br class="gmail_msg">
>     llvm/trunk/lib/Target/NVPTX/NVPTXISelLowering.cpp<br class="gmail_msg">
>     llvm/trunk/lib/Target/NVPTX/NVPTXTargetObjectFile.h<br class="gmail_msg">
>     llvm/trunk/lib/Target/PowerPC/PPCTargetObjectFile.cpp<br class="gmail_msg">
>     llvm/trunk/lib/Target/PowerPC/PPCTargetObjectFile.h<br class="gmail_msg">
>     llvm/trunk/lib/Target/Sparc/SparcTargetObjectFile.cpp<br class="gmail_msg">
>     llvm/trunk/lib/Target/Sparc/SparcTargetObjectFile.h<br class="gmail_msg">
>     llvm/trunk/lib/Target/TargetLoweringObjectFile.cpp<br class="gmail_msg">
>     llvm/trunk/lib/Target/TargetMachine.cpp<br class="gmail_msg">
>     llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp<br class="gmail_msg">
>     llvm/trunk/lib/Target/X86/X86TargetObjectFile.cpp<br class="gmail_msg">
>     llvm/trunk/lib/Target/X86/X86TargetObjectFile.h<br class="gmail_msg">
>     llvm/trunk/lib/Target/XCore/XCoreAsmPrinter.cpp<br class="gmail_msg">
>     llvm/trunk/lib/Target/XCore/XCoreTargetObjectFile.cpp<br class="gmail_msg">
>     llvm/trunk/lib/Target/XCore/XCoreTargetObjectFile.h<br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h<br class="gmail_msg">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h?rev=281708&r1=281707&r2=281708&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h?rev=281708&r1=281707&r2=281708&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h (original)<br class="gmail_msg">
> +++ llvm/trunk/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h Fri Sep 16 02:33:15 2016<br class="gmail_msg">
> @@ -54,14 +54,12 @@ public:<br class="gmail_msg">
>                                     unsigned &Align) const override;<br class="gmail_msg">
><br class="gmail_msg">
>    MCSection *getExplicitSectionGlobal(const GlobalValue *GV, SectionKind Kind,<br class="gmail_msg">
> -                                      Mangler &Mang,<br class="gmail_msg">
>                                        const TargetMachine &TM) const override;<br class="gmail_msg">
><br class="gmail_msg">
>    MCSection *SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,<br class="gmail_msg">
> -                                    Mangler &Mang,<br class="gmail_msg">
>                                      const TargetMachine &TM) const override;<br class="gmail_msg">
><br class="gmail_msg">
> -  MCSection *getSectionForJumpTable(const Function &F, Mangler &Mang,<br class="gmail_msg">
> +  MCSection *getSectionForJumpTable(const Function &F,<br class="gmail_msg">
>                                      const TargetMachine &TM) const override;<br class="gmail_msg">
><br class="gmail_msg">
>    bool shouldPutJumpTableInFunctionSection(bool UsesLabelDifference,<br class="gmail_msg">
> @@ -69,14 +67,14 @@ public:<br class="gmail_msg">
><br class="gmail_msg">
>    /// Return an MCExpr to use for a reference to the specified type info global<br class="gmail_msg">
>    /// variable from exception handling information.<br class="gmail_msg">
> -  const MCExpr *<br class="gmail_msg">
> -  getTTypeGlobalReference(const GlobalValue *GV, unsigned Encoding,<br class="gmail_msg">
> -                          Mangler &Mang, const TargetMachine &TM,<br class="gmail_msg">
> -                          MachineModuleInfo *MMI,<br class="gmail_msg">
> -                          MCStreamer &Streamer) const override;<br class="gmail_msg">
> +  const MCExpr *getTTypeGlobalReference(const GlobalValue *GV,<br class="gmail_msg">
> +                                        unsigned Encoding,<br class="gmail_msg">
> +                                        const TargetMachine &TM,<br class="gmail_msg">
> +                                        MachineModuleInfo *MMI,<br class="gmail_msg">
> +                                        MCStreamer &Streamer) const override;<br class="gmail_msg">
><br class="gmail_msg">
>    // The symbol that gets passed to .cfi_personality.<br class="gmail_msg">
> -  MCSymbol *getCFIPersonalitySymbol(const GlobalValue *GV, Mangler &Mang,<br class="gmail_msg">
> +  MCSymbol *getCFIPersonalitySymbol(const GlobalValue *GV,<br class="gmail_msg">
>                                      const TargetMachine &TM,<br class="gmail_msg">
>                                      MachineModuleInfo *MMI) const override;<br class="gmail_msg">
><br class="gmail_msg">
> @@ -87,7 +85,7 @@ public:<br class="gmail_msg">
>                                    const MCSymbol *KeySym) const override;<br class="gmail_msg">
><br class="gmail_msg">
>    const MCExpr *lowerRelativeReference(const GlobalValue *LHS,<br class="gmail_msg">
> -                                       const GlobalValue *RHS, Mangler &Mang,<br class="gmail_msg">
> +                                       const GlobalValue *RHS,<br class="gmail_msg">
>                                         const TargetMachine &TM) const override;<br class="gmail_msg">
>  };<br class="gmail_msg">
><br class="gmail_msg">
> @@ -103,14 +101,12 @@ public:<br class="gmail_msg">
>    /// Emit the module flags that specify the garbage collection information.<br class="gmail_msg">
>    void emitModuleFlags(MCStreamer &Streamer,<br class="gmail_msg">
>                         ArrayRef<Module::ModuleFlagEntry> ModuleFlags,<br class="gmail_msg">
> -                       Mangler &Mang, const TargetMachine &TM) const override;<br class="gmail_msg">
> +                       const TargetMachine &TM) const override;<br class="gmail_msg">
><br class="gmail_msg">
>    MCSection *SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,<br class="gmail_msg">
> -                                    Mangler &Mang,<br class="gmail_msg">
>                                      const TargetMachine &TM) const override;<br class="gmail_msg">
><br class="gmail_msg">
>    MCSection *getExplicitSectionGlobal(const GlobalValue *GV, SectionKind Kind,<br class="gmail_msg">
> -                                      Mangler &Mang,<br class="gmail_msg">
>                                        const TargetMachine &TM) const override;<br class="gmail_msg">
><br class="gmail_msg">
>    MCSection *getSectionForConstant(const DataLayout &DL, SectionKind Kind,<br class="gmail_msg">
> @@ -118,14 +114,14 @@ public:<br class="gmail_msg">
>                                     unsigned &Align) const override;<br class="gmail_msg">
><br class="gmail_msg">
>    /// The mach-o version of this method defaults to returning a stub reference.<br class="gmail_msg">
> -  const MCExpr *<br class="gmail_msg">
> -  getTTypeGlobalReference(const GlobalValue *GV, unsigned Encoding,<br class="gmail_msg">
> -                          Mangler &Mang, const TargetMachine &TM,<br class="gmail_msg">
> -                          MachineModuleInfo *MMI,<br class="gmail_msg">
> -                          MCStreamer &Streamer) const override;<br class="gmail_msg">
> +  const MCExpr *getTTypeGlobalReference(const GlobalValue *GV,<br class="gmail_msg">
> +                                        unsigned Encoding,<br class="gmail_msg">
> +                                        const TargetMachine &TM,<br class="gmail_msg">
> +                                        MachineModuleInfo *MMI,<br class="gmail_msg">
> +                                        MCStreamer &Streamer) const override;<br class="gmail_msg">
><br class="gmail_msg">
>    // The symbol that gets passed to .cfi_personality.<br class="gmail_msg">
> -  MCSymbol *getCFIPersonalitySymbol(const GlobalValue *GV, Mangler &Mang,<br class="gmail_msg">
> +  MCSymbol *getCFIPersonalitySymbol(const GlobalValue *GV,<br class="gmail_msg">
>                                      const TargetMachine &TM,<br class="gmail_msg">
>                                      MachineModuleInfo *MMI) const override;<br class="gmail_msg">
><br class="gmail_msg">
> @@ -136,7 +132,7 @@ public:<br class="gmail_msg">
>                                            MCStreamer &Streamer) const override;<br class="gmail_msg">
><br class="gmail_msg">
>    void getNameWithPrefix(SmallVectorImpl<char> &OutName, const GlobalValue *GV,<br class="gmail_msg">
> -                         Mangler &Mang, const TargetMachine &TM) const override;<br class="gmail_msg">
> +                         const TargetMachine &TM) const override;<br class="gmail_msg">
>  };<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> @@ -149,32 +145,30 @@ public:<br class="gmail_msg">
><br class="gmail_msg">
>    void Initialize(MCContext &Ctx, const TargetMachine &TM) override;<br class="gmail_msg">
>    MCSection *getExplicitSectionGlobal(const GlobalValue *GV, SectionKind Kind,<br class="gmail_msg">
> -                                      Mangler &Mang,<br class="gmail_msg">
>                                        const TargetMachine &TM) const override;<br class="gmail_msg">
><br class="gmail_msg">
>    MCSection *SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,<br class="gmail_msg">
> -                                    Mangler &Mang,<br class="gmail_msg">
>                                      const TargetMachine &TM) const override;<br class="gmail_msg">
><br class="gmail_msg">
>    void getNameWithPrefix(SmallVectorImpl<char> &OutName, const GlobalValue *GV,<br class="gmail_msg">
> -                         Mangler &Mang, const TargetMachine &TM) const override;<br class="gmail_msg">
> +                         const TargetMachine &TM) const override;<br class="gmail_msg">
><br class="gmail_msg">
> -  MCSection *getSectionForJumpTable(const Function &F, Mangler &Mang,<br class="gmail_msg">
> +  MCSection *getSectionForJumpTable(const Function &F,<br class="gmail_msg">
>                                      const TargetMachine &TM) const override;<br class="gmail_msg">
><br class="gmail_msg">
>    /// Emit Obj-C garbage collection and linker options. Only linker option<br class="gmail_msg">
>    /// emission is implemented for COFF.<br class="gmail_msg">
>    void emitModuleFlags(MCStreamer &Streamer,<br class="gmail_msg">
>                         ArrayRef<Module::ModuleFlagEntry> ModuleFlags,<br class="gmail_msg">
> -                       Mangler &Mang, const TargetMachine &TM) const override;<br class="gmail_msg">
> +                       const TargetMachine &TM) const override;<br class="gmail_msg">
><br class="gmail_msg">
>    MCSection *getStaticCtorSection(unsigned Priority,<br class="gmail_msg">
>                                    const MCSymbol *KeySym) const override;<br class="gmail_msg">
>    MCSection *getStaticDtorSection(unsigned Priority,<br class="gmail_msg">
>                                    const MCSymbol *KeySym) const override;<br class="gmail_msg">
><br class="gmail_msg">
> -  void emitLinkerFlagsForGlobal(raw_ostream &OS, const GlobalValue *GV,<br class="gmail_msg">
> -                                const Mangler &Mang) const override;<br class="gmail_msg">
> +  void emitLinkerFlagsForGlobal(raw_ostream &OS,<br class="gmail_msg">
> +                                const GlobalValue *GV) const override;<br class="gmail_msg">
>  };<br class="gmail_msg">
><br class="gmail_msg">
>  } // end namespace llvm<br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/include/llvm/Target/TargetLoweringObjectFile.h<br class="gmail_msg">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetLoweringObjectFile.h?rev=281708&r1=281707&r2=281708&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetLoweringObjectFile.h?rev=281708&r1=281707&r2=281708&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/include/llvm/Target/TargetLoweringObjectFile.h (original)<br class="gmail_msg">
> +++ llvm/trunk/include/llvm/Target/TargetLoweringObjectFile.h Fri Sep 16 02:33:15 2016<br class="gmail_msg">
> @@ -37,6 +37,9 @@ namespace llvm {<br class="gmail_msg">
>  class TargetLoweringObjectFile : public MCObjectFileInfo {<br class="gmail_msg">
>    MCContext *Ctx;<br class="gmail_msg">
><br class="gmail_msg">
> +  /// Name-mangler for global names.<br class="gmail_msg">
> +  Mangler *Mang;<br class="gmail_msg">
> +<br class="gmail_msg">
>    TargetLoweringObjectFile(<br class="gmail_msg">
>      const TargetLoweringObjectFile&) = delete;<br class="gmail_msg">
>    void operator=(const TargetLoweringObjectFile&) = delete;<br class="gmail_msg">
> @@ -53,10 +56,11 @@ protected:<br class="gmail_msg">
><br class="gmail_msg">
>  public:<br class="gmail_msg">
>    MCContext &getContext() const { return *Ctx; }<br class="gmail_msg">
> +  Mangler &getMangler() const { return *Mang; }<br class="gmail_msg">
><br class="gmail_msg">
>    TargetLoweringObjectFile()<br class="gmail_msg">
> -      : MCObjectFileInfo(), Ctx(nullptr), SupportIndirectSymViaGOTPCRel(false),<br class="gmail_msg">
> -        SupportGOTPCRelWithOffset(true) {}<br class="gmail_msg">
> +      : MCObjectFileInfo(), Ctx(nullptr), Mang(nullptr),<br class="gmail_msg">
> +        SupportIndirectSymViaGOTPCRel(false), SupportGOTPCRelWithOffset(true) {}<br class="gmail_msg">
><br class="gmail_msg">
>    virtual ~TargetLoweringObjectFile();<br class="gmail_msg">
><br class="gmail_msg">
> @@ -71,7 +75,7 @@ public:<br class="gmail_msg">
>    /// Emit the module flags that the platform cares about.<br class="gmail_msg">
>    virtual void emitModuleFlags(MCStreamer &Streamer,<br class="gmail_msg">
>                                 ArrayRef<Module::ModuleFlagEntry> Flags,<br class="gmail_msg">
> -                               Mangler &Mang, const TargetMachine &TM) const {}<br class="gmail_msg">
> +                               const TargetMachine &TM) const {}<br class="gmail_msg">
><br class="gmail_msg">
>    /// Given a constant with the SectionKind, return a section that it should be<br class="gmail_msg">
>    /// placed in.<br class="gmail_msg">
> @@ -89,21 +93,21 @@ public:<br class="gmail_msg">
>    /// variable or function definition. This should not be passed external (or<br class="gmail_msg">
>    /// available externally) globals.<br class="gmail_msg">
>    MCSection *SectionForGlobal(const GlobalValue *GV, SectionKind Kind,<br class="gmail_msg">
> -                              Mangler &Mang, const TargetMachine &TM) const;<br class="gmail_msg">
> +                              const TargetMachine &TM) const;<br class="gmail_msg">
><br class="gmail_msg">
>    /// This method computes the appropriate section to emit the specified global<br class="gmail_msg">
>    /// variable or function definition. This should not be passed external (or<br class="gmail_msg">
>    /// available externally) globals.<br class="gmail_msg">
> -  MCSection *SectionForGlobal(const GlobalValue *GV, Mangler &Mang,<br class="gmail_msg">
> +  MCSection *SectionForGlobal(const GlobalValue *GV,<br class="gmail_msg">
>                                const TargetMachine &TM) const {<br class="gmail_msg">
> -    return SectionForGlobal(GV, getKindForGlobal(GV, TM), Mang, TM);<br class="gmail_msg">
> +    return SectionForGlobal(GV, getKindForGlobal(GV, TM), TM);<br class="gmail_msg">
>    }<br class="gmail_msg">
><br class="gmail_msg">
>    virtual void getNameWithPrefix(SmallVectorImpl<char> &OutName,<br class="gmail_msg">
> -                                 const GlobalValue *GV, Mangler &Mang,<br class="gmail_msg">
> +                                 const GlobalValue *GV,<br class="gmail_msg">
>                                   const TargetMachine &TM) const;<br class="gmail_msg">
><br class="gmail_msg">
> -  virtual MCSection *getSectionForJumpTable(const Function &F, Mangler &Mang,<br class="gmail_msg">
> +  virtual MCSection *getSectionForJumpTable(const Function &F,<br class="gmail_msg">
>                                              const TargetMachine &TM) const;<br class="gmail_msg">
><br class="gmail_msg">
>    virtual bool shouldPutJumpTableInFunctionSection(bool UsesLabelDifference,<br class="gmail_msg">
> @@ -114,37 +118,35 @@ public:<br class="gmail_msg">
>    /// assume that GV->hasSection() is true.<br class="gmail_msg">
>    virtual MCSection *<br class="gmail_msg">
>    getExplicitSectionGlobal(const GlobalValue *GV, SectionKind Kind,<br class="gmail_msg">
> -                           Mangler &Mang, const TargetMachine &TM) const = 0;<br class="gmail_msg">
> +                           const TargetMachine &TM) const = 0;<br class="gmail_msg">
><br class="gmail_msg">
>    /// Allow the target to completely override section assignment of a global.<br class="gmail_msg">
> -  virtual const MCSection *getSpecialCasedSectionGlobals(const GlobalValue *GV,<br class="gmail_msg">
> -                                                         SectionKind Kind,<br class="gmail_msg">
> -                                                         Mangler &Mang) const {<br class="gmail_msg">
> +  virtual const MCSection *<br class="gmail_msg">
> +  getSpecialCasedSectionGlobals(const GlobalValue *GV, SectionKind Kind) const {<br class="gmail_msg">
>      return nullptr;<br class="gmail_msg">
>    }<br class="gmail_msg">
><br class="gmail_msg">
>    /// Return an MCExpr to use for a reference to the specified global variable<br class="gmail_msg">
>    /// from exception handling information.<br class="gmail_msg">
> -  virtual const MCExpr *<br class="gmail_msg">
> -  getTTypeGlobalReference(const GlobalValue *GV, unsigned Encoding,<br class="gmail_msg">
> -                          Mangler &Mang, const TargetMachine &TM,<br class="gmail_msg">
> -                          MachineModuleInfo *MMI, MCStreamer &Streamer) const;<br class="gmail_msg">
> +  virtual const MCExpr *getTTypeGlobalReference(const GlobalValue *GV,<br class="gmail_msg">
> +                                                unsigned Encoding,<br class="gmail_msg">
> +                                                const TargetMachine &TM,<br class="gmail_msg">
> +                                                MachineModuleInfo *MMI,<br class="gmail_msg">
> +                                                MCStreamer &Streamer) const;<br class="gmail_msg">
><br class="gmail_msg">
>    /// Return the MCSymbol for a private symbol with global value name as its<br class="gmail_msg">
>    /// base, with the specified suffix.<br class="gmail_msg">
>    MCSymbol *getSymbolWithGlobalValueBase(const GlobalValue *GV,<br class="gmail_msg">
> -                                         StringRef Suffix, Mangler &Mang,<br class="gmail_msg">
> +                                         StringRef Suffix,<br class="gmail_msg">
>                                           const TargetMachine &TM) const;<br class="gmail_msg">
><br class="gmail_msg">
>    // The symbol that gets passed to .cfi_personality.<br class="gmail_msg">
>    virtual MCSymbol *getCFIPersonalitySymbol(const GlobalValue *GV,<br class="gmail_msg">
> -                                            Mangler &Mang,<br class="gmail_msg">
>                                              const TargetMachine &TM,<br class="gmail_msg">
>                                              MachineModuleInfo *MMI) const;<br class="gmail_msg">
><br class="gmail_msg">
> -  const MCExpr *<br class="gmail_msg">
> -  getTTypeReference(const MCSymbolRefExpr *Sym, unsigned Encoding,<br class="gmail_msg">
> -                    MCStreamer &Streamer) const;<br class="gmail_msg">
> +  const MCExpr *getTTypeReference(const MCSymbolRefExpr *Sym, unsigned Encoding,<br class="gmail_msg">
> +                                  MCStreamer &Streamer) const;<br class="gmail_msg">
><br class="gmail_msg">
>    virtual MCSection *getStaticCtorSection(unsigned Priority,<br class="gmail_msg">
>                                            const MCSymbol *KeySym) const {<br class="gmail_msg">
> @@ -160,9 +162,9 @@ public:<br class="gmail_msg">
>    /// emitting the address in debug info.<br class="gmail_msg">
>    virtual const MCExpr *getDebugThreadLocalSymbol(const MCSymbol *Sym) const;<br class="gmail_msg">
><br class="gmail_msg">
> -  virtual const MCExpr *<br class="gmail_msg">
> -  lowerRelativeReference(const GlobalValue *LHS, const GlobalValue *RHS,<br class="gmail_msg">
> -                         Mangler &Mang, const TargetMachine &TM) const {<br class="gmail_msg">
> +  virtual const MCExpr *lowerRelativeReference(const GlobalValue *LHS,<br class="gmail_msg">
> +                                               const GlobalValue *RHS,<br class="gmail_msg">
> +                                               const TargetMachine &TM) const {<br class="gmail_msg">
>      return nullptr;<br class="gmail_msg">
>    }<br class="gmail_msg">
><br class="gmail_msg">
> @@ -187,12 +189,12 @@ public:<br class="gmail_msg">
>      return nullptr;<br class="gmail_msg">
>    }<br class="gmail_msg">
><br class="gmail_msg">
> -  virtual void emitLinkerFlagsForGlobal(raw_ostream &OS, const GlobalValue *GV,<br class="gmail_msg">
> -                                        const Mangler &Mang) const {}<br class="gmail_msg">
> +  virtual void emitLinkerFlagsForGlobal(raw_ostream &OS,<br class="gmail_msg">
> +                                        const GlobalValue *GV) const {}<br class="gmail_msg">
><br class="gmail_msg">
>  protected:<br class="gmail_msg">
>    virtual MCSection *SelectSectionForGlobal(const GlobalValue *GV,<br class="gmail_msg">
> -                                            SectionKind Kind, Mangler &Mang,<br class="gmail_msg">
> +                                            SectionKind Kind,<br class="gmail_msg">
>                                              const TargetMachine &TM) const = 0;<br class="gmail_msg">
>  };<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp<br class="gmail_msg">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp?rev=281708&r1=281707&r2=281708&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp?rev=281708&r1=281707&r2=281708&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (original)<br class="gmail_msg">
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp Fri Sep 16 02:33:15 2016<br class="gmail_msg">
> @@ -184,8 +184,6 @@ bool AsmPrinter::doInitialization(Module<br class="gmail_msg">
><br class="gmail_msg">
>    OutStreamer->InitSections(false);<br class="gmail_msg">
><br class="gmail_msg">
> -  Mang = new Mangler();<br class="gmail_msg">
> -<br class="gmail_msg">
>    // Emit the version-min deplyment target directive if needed.<br class="gmail_msg">
>    //<br class="gmail_msg">
>    // FIXME: If we end up with a collection of these sorts of Darwin-specific<br class="gmail_msg">
> @@ -340,11 +338,11 @@ void AsmPrinter::EmitLinkage(const Globa<br class="gmail_msg">
><br class="gmail_msg">
>  void AsmPrinter::getNameWithPrefix(SmallVectorImpl<char> &Name,<br class="gmail_msg">
>                                     const GlobalValue *GV) const {<br class="gmail_msg">
> -  TM.getNameWithPrefix(Name, GV, *Mang);<br class="gmail_msg">
> +  TM.getNameWithPrefix(Name, GV, getObjFileLowering().getMangler());<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  MCSymbol *AsmPrinter::getSymbol(const GlobalValue *GV) const {<br class="gmail_msg">
> -  return TM.getSymbol(GV, *Mang);<br class="gmail_msg">
> +  return TM.getSymbol(GV, getObjFileLowering().getMangler());<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  /// EmitGlobalVariable - Emit the specified global variable to the .s file.<br class="gmail_msg">
> @@ -424,8 +422,7 @@ void AsmPrinter::EmitGlobalVariable(cons<br class="gmail_msg">
>    }<br class="gmail_msg">
><br class="gmail_msg">
>    // Determine to which section this global should be emitted.<br class="gmail_msg">
> -  MCSection *TheSection =<br class="gmail_msg">
> -      getObjFileLowering().SectionForGlobal(GV, GVKind, *Mang, TM);<br class="gmail_msg">
> +  MCSection *TheSection = getObjFileLowering().SectionForGlobal(GV, GVKind, TM);<br class="gmail_msg">
><br class="gmail_msg">
>    // If we have a bss global going to a section that supports the<br class="gmail_msg">
>    // zerofill directive, do so here.<br class="gmail_msg">
> @@ -483,7 +480,7 @@ void AsmPrinter::EmitGlobalVariable(cons<br class="gmail_msg">
>    if (GVKind.isThreadLocal() && MAI->hasMachoTBSSDirective()) {<br class="gmail_msg">
>      // Emit the .tbss symbol<br class="gmail_msg">
>      MCSymbol *MangSym =<br class="gmail_msg">
> -      OutContext.getOrCreateSymbol(GVSym->getName() + Twine("$tlv$init"));<br class="gmail_msg">
> +        OutContext.getOrCreateSymbol(GVSym->getName() + Twine("$tlv$init"));<br class="gmail_msg">
><br class="gmail_msg">
>      if (GVKind.isThreadBSS()) {<br class="gmail_msg">
>        TheSection = getObjFileLowering().getTLSBSSSection();<br class="gmail_msg">
> @@ -550,8 +547,7 @@ void AsmPrinter::EmitFunctionHeader() {<br class="gmail_msg">
>    // Print the 'header' of function.<br class="gmail_msg">
>    const Function *F = MF->getFunction();<br class="gmail_msg">
><br class="gmail_msg">
> -  OutStreamer->SwitchSection(<br class="gmail_msg">
> -      getObjFileLowering().SectionForGlobal(F, *Mang, TM));<br class="gmail_msg">
> +  OutStreamer->SwitchSection(getObjFileLowering().SectionForGlobal(F, TM));<br class="gmail_msg">
>    EmitVisibility(CurrentFnSym, F->getVisibility());<br class="gmail_msg">
><br class="gmail_msg">
>    EmitLinkage(F, CurrentFnSym);<br class="gmail_msg">
> @@ -1143,7 +1139,7 @@ bool AsmPrinter::doFinalization(Module &<br class="gmail_msg">
>    SmallVector<Module::ModuleFlagEntry, 8> ModuleFlags;<br class="gmail_msg">
>    M.getModuleFlagsMetadata(ModuleFlags);<br class="gmail_msg">
>    if (!ModuleFlags.empty())<br class="gmail_msg">
> -    TLOF.emitModuleFlags(*OutStreamer, ModuleFlags, *Mang, TM);<br class="gmail_msg">
> +    TLOF.emitModuleFlags(*OutStreamer, ModuleFlags, TM);<br class="gmail_msg">
><br class="gmail_msg">
>    if (TM.getTargetTriple().isOSBinFormatELF()) {<br class="gmail_msg">
>      MachineModuleInfoELF &MMIELF = MMI->getObjFileInfo<MachineModuleInfoELF>();<br class="gmail_msg">
> @@ -1246,7 +1242,6 @@ bool AsmPrinter::doFinalization(Module &<br class="gmail_msg">
>    // after everything else has gone out.<br class="gmail_msg">
>    EmitEndOfAsmFile(M);<br class="gmail_msg">
><br class="gmail_msg">
> -  delete Mang; Mang = nullptr;<br class="gmail_msg">
>    MMI = nullptr;<br class="gmail_msg">
><br class="gmail_msg">
>    OutStreamer->Finish();<br class="gmail_msg">
> @@ -1392,7 +1387,7 @@ void AsmPrinter::EmitJumpTableInfo() {<br class="gmail_msg">
>        *F);<br class="gmail_msg">
>    if (JTInDiffSection) {<br class="gmail_msg">
>      // Drop it in the readonly section.<br class="gmail_msg">
> -    MCSection *ReadOnlySection = TLOF.getSectionForJumpTable(*F, *Mang, TM);<br class="gmail_msg">
> +    MCSection *ReadOnlySection = TLOF.getSectionForJumpTable(*F, TM);<br class="gmail_msg">
>      OutStreamer->SwitchSection(ReadOnlySection);<br class="gmail_msg">
>    }<br class="gmail_msg">
><br class="gmail_msg">
> @@ -1831,8 +1826,8 @@ const MCExpr *AsmPrinter::lowerConstant(<br class="gmail_msg">
>        APInt RHSOffset;<br class="gmail_msg">
>        if (IsConstantOffsetFromGlobal(CE->getOperand(1), RHSGV, RHSOffset,<br class="gmail_msg">
>                                       getDataLayout())) {<br class="gmail_msg">
> -        const MCExpr *RelocExpr = getObjFileLowering().lowerRelativeReference(<br class="gmail_msg">
> -            LHSGV, RHSGV, *Mang, TM);<br class="gmail_msg">
> +        const MCExpr *RelocExpr =<br class="gmail_msg">
> +            getObjFileLowering().lowerRelativeReference(LHSGV, RHSGV, TM);<br class="gmail_msg">
>          if (!RelocExpr)<br class="gmail_msg">
>            RelocExpr = MCBinaryExpr::createSub(<br class="gmail_msg">
>                MCSymbolRefExpr::create(getSymbol(LHSGV), Ctx),<br class="gmail_msg">
> @@ -2373,8 +2368,7 @@ MCSymbol *AsmPrinter::GetJTSetSymbol(uns<br class="gmail_msg">
><br class="gmail_msg">
>  MCSymbol *AsmPrinter::getSymbolWithGlobalValueBase(const GlobalValue *GV,<br class="gmail_msg">
>                                                     StringRef Suffix) const {<br class="gmail_msg">
> -  return getObjFileLowering().getSymbolWithGlobalValueBase(GV, Suffix, *Mang,<br class="gmail_msg">
> -                                                           TM);<br class="gmail_msg">
> +  return getObjFileLowering().getSymbolWithGlobalValueBase(GV, Suffix, TM);<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  /// Return the MCSymbol for the specified ExternalSymbol.<br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp<br class="gmail_msg">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp?rev=281708&r1=281707&r2=281708&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp?rev=281708&r1=281707&r2=281708&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp (original)<br class="gmail_msg">
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp Fri Sep 16 02:33:15 2016<br class="gmail_msg">
> @@ -138,8 +138,7 @@ void AsmPrinter::EmitTTypeReference(cons<br class="gmail_msg">
>      const TargetLoweringObjectFile &TLOF = getObjFileLowering();<br class="gmail_msg">
><br class="gmail_msg">
>      const MCExpr *Exp =<br class="gmail_msg">
> -        TLOF.getTTypeGlobalReference(GV, Encoding, *Mang, TM, MMI,<br class="gmail_msg">
> -                                     *OutStreamer);<br class="gmail_msg">
> +        TLOF.getTTypeGlobalReference(GV, Encoding, TM, MMI, *OutStreamer);<br class="gmail_msg">
>      OutStreamer->EmitValue(Exp, GetSizeOfEncodedValue(Encoding));<br class="gmail_msg">
>    } else<br class="gmail_msg">
>      OutStreamer->EmitIntValue(0, GetSizeOfEncodedValue(Encoding));<br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp<br class="gmail_msg">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp?rev=281708&r1=281707&r2=281708&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp?rev=281708&r1=281707&r2=281708&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp (original)<br class="gmail_msg">
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp Fri Sep 16 02:33:15 2016<br class="gmail_msg">
> @@ -160,8 +160,7 @@ void DwarfCFIException::beginFragment(co<br class="gmail_msg">
><br class="gmail_msg">
>    const TargetLoweringObjectFile &TLOF = Asm->getObjFileLowering();<br class="gmail_msg">
>    unsigned PerEncoding = TLOF.getPersonalityEncoding();<br class="gmail_msg">
> -  const MCSymbol *Sym =<br class="gmail_msg">
> -      TLOF.getCFIPersonalitySymbol(P, *Asm->Mang, Asm->TM, MMI);<br class="gmail_msg">
> +  const MCSymbol *Sym = TLOF.getCFIPersonalitySymbol(P, Asm->TM, MMI);<br class="gmail_msg">
>    Asm->OutStreamer->EmitCFIPersonality(Sym, PerEncoding);<br class="gmail_msg">
><br class="gmail_msg">
>    // Provide LSDA information.<br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/WinException.cpp<br class="gmail_msg">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/WinException.cpp?rev=281708&r1=281707&r2=281708&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/WinException.cpp?rev=281708&r1=281707&r2=281708&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/lib/CodeGen/AsmPrinter/WinException.cpp (original)<br class="gmail_msg">
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/WinException.cpp Fri Sep 16 02:33:15 2016<br class="gmail_msg">
> @@ -204,7 +204,7 @@ void WinException::beginFunclet(const Ma<br class="gmail_msg">
>      if (F->hasPersonalityFn())<br class="gmail_msg">
>        PerFn = dyn_cast<Function>(F->getPersonalityFn()->stripPointerCasts());<br class="gmail_msg">
>      const MCSymbol *PersHandlerSym =<br class="gmail_msg">
> -        TLOF.getCFIPersonalitySymbol(PerFn, *Asm->Mang, Asm->TM, MMI);<br class="gmail_msg">
> +        TLOF.getCFIPersonalitySymbol(PerFn, Asm->TM, MMI);<br class="gmail_msg">
><br class="gmail_msg">
>      // Classify the personality routine so that we may reason about it.<br class="gmail_msg">
>      EHPersonality Per = EHPersonality::Unknown;<br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp<br class="gmail_msg">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp?rev=281708&r1=281707&r2=281708&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp?rev=281708&r1=281707&r2=281708&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp (original)<br class="gmail_msg">
> +++ llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp Fri Sep 16 02:33:15 2016<br class="gmail_msg">
> @@ -50,14 +50,14 @@ using namespace dwarf;<br class="gmail_msg">
>  //===----------------------------------------------------------------------===//<br class="gmail_msg">
><br class="gmail_msg">
>  MCSymbol *TargetLoweringObjectFileELF::getCFIPersonalitySymbol(<br class="gmail_msg">
> -    const GlobalValue *GV, Mangler &Mang, const TargetMachine &TM,<br class="gmail_msg">
> +    const GlobalValue *GV, const TargetMachine &TM,<br class="gmail_msg">
>      MachineModuleInfo *MMI) const {<br class="gmail_msg">
>    unsigned Encoding = getPersonalityEncoding();<br class="gmail_msg">
>    if ((Encoding & 0x80) == dwarf::DW_EH_PE_indirect)<br class="gmail_msg">
>      return getContext().getOrCreateSymbol(StringRef("DW.ref.") +<br class="gmail_msg">
> -                                          TM.getSymbol(GV, Mang)->getName());<br class="gmail_msg">
> +                                          TM.getSymbol(GV, getMangler())->getName());<br class="gmail_msg">
>    if ((Encoding & 0x70) == dwarf::DW_EH_PE_absptr)<br class="gmail_msg">
> -    return TM.getSymbol(GV, Mang);<br class="gmail_msg">
> +    return TM.getSymbol(GV, getMangler());<br class="gmail_msg">
>    report_fatal_error("We do not support this DWARF encoding yet!");<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
> @@ -84,20 +84,19 @@ void TargetLoweringObjectFileELF::emitPe<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  const MCExpr *TargetLoweringObjectFileELF::getTTypeGlobalReference(<br class="gmail_msg">
> -    const GlobalValue *GV, unsigned Encoding, Mangler &Mang,<br class="gmail_msg">
> -    const TargetMachine &TM, MachineModuleInfo *MMI,<br class="gmail_msg">
> -    MCStreamer &Streamer) const {<br class="gmail_msg">
> +    const GlobalValue *GV, unsigned Encoding, const TargetMachine &TM,<br class="gmail_msg">
> +    MachineModuleInfo *MMI, MCStreamer &Streamer) const {<br class="gmail_msg">
><br class="gmail_msg">
>    if (Encoding & dwarf::DW_EH_PE_indirect) {<br class="gmail_msg">
>      MachineModuleInfoELF &ELFMMI = MMI->getObjFileInfo<MachineModuleInfoELF>();<br class="gmail_msg">
><br class="gmail_msg">
> -    MCSymbol *SSym = getSymbolWithGlobalValueBase(GV, ".DW.stub", Mang, TM);<br class="gmail_msg">
> +    MCSymbol *SSym = getSymbolWithGlobalValueBase(GV, ".DW.stub", TM);<br class="gmail_msg">
><br class="gmail_msg">
>      // Add information about the stub reference to ELFMMI so that the stub<br class="gmail_msg">
>      // gets emitted by the asmprinter.<br class="gmail_msg">
>      MachineModuleInfoImpl::StubValueTy &StubSym = ELFMMI.getGVStubEntry(SSym);<br class="gmail_msg">
>      if (!StubSym.getPointer()) {<br class="gmail_msg">
> -      MCSymbol *Sym = TM.getSymbol(GV, Mang);<br class="gmail_msg">
> +      MCSymbol *Sym = TM.getSymbol(GV, getMangler());<br class="gmail_msg">
>        StubSym = MachineModuleInfoImpl::StubValueTy(Sym, !GV->hasLocalLinkage());<br class="gmail_msg">
>      }<br class="gmail_msg">
><br class="gmail_msg">
> @@ -106,8 +105,8 @@ const MCExpr *TargetLoweringObjectFileEL<br class="gmail_msg">
>                          Encoding & ~dwarf::DW_EH_PE_indirect, Streamer);<br class="gmail_msg">
>    }<br class="gmail_msg">
><br class="gmail_msg">
> -  return TargetLoweringObjectFile::<br class="gmail_msg">
> -    getTTypeGlobalReference(GV, Encoding, Mang, TM, MMI, Streamer);<br class="gmail_msg">
> +  return TargetLoweringObjectFile::getTTypeGlobalReference(GV, Encoding, TM,<br class="gmail_msg">
> +                                                           MMI, Streamer);<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  static SectionKind<br class="gmail_msg">
> @@ -205,8 +204,7 @@ static const Comdat *getELFComdat(const<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  MCSection *TargetLoweringObjectFileELF::getExplicitSectionGlobal(<br class="gmail_msg">
> -    const GlobalValue *GV, SectionKind Kind, Mangler &Mang,<br class="gmail_msg">
> -    const TargetMachine &TM) const {<br class="gmail_msg">
> +    const GlobalValue *GV, SectionKind Kind, const TargetMachine &TM) const {<br class="gmail_msg">
>    StringRef SectionName = GV->getSection();<br class="gmail_msg">
><br class="gmail_msg">
>    // Infer section flags from the section name if we can.<br class="gmail_msg">
> @@ -310,8 +308,7 @@ selectELFSectionForGlobal(MCContext &Ctx<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  MCSection *TargetLoweringObjectFileELF::SelectSectionForGlobal(<br class="gmail_msg">
> -    const GlobalValue *GV, SectionKind Kind, Mangler &Mang,<br class="gmail_msg">
> -    const TargetMachine &TM) const {<br class="gmail_msg">
> +    const GlobalValue *GV, SectionKind Kind, const TargetMachine &TM) const {<br class="gmail_msg">
>    unsigned Flags = getELFSectionFlags(Kind);<br class="gmail_msg">
><br class="gmail_msg">
>    // If we have -ffunction-section or -fdata-section then we should emit the<br class="gmail_msg">
> @@ -325,12 +322,12 @@ MCSection *TargetLoweringObjectFileELF::<br class="gmail_msg">
>    }<br class="gmail_msg">
>    EmitUniqueSection |= GV->hasComdat();<br class="gmail_msg">
><br class="gmail_msg">
> -  return selectELFSectionForGlobal(getContext(), GV, Kind, Mang, TM,<br class="gmail_msg">
> +  return selectELFSectionForGlobal(getContext(), GV, Kind, getMangler(), TM,<br class="gmail_msg">
>                                     EmitUniqueSection, Flags, &NextUniqueID);<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  MCSection *TargetLoweringObjectFileELF::getSectionForJumpTable(<br class="gmail_msg">
> -    const Function &F, Mangler &Mang, const TargetMachine &TM) const {<br class="gmail_msg">
> +    const Function &F, const TargetMachine &TM) const {<br class="gmail_msg">
>    // If the function can be removed, produce a unique section so that<br class="gmail_msg">
>    // the table doesn't prevent the removal.<br class="gmail_msg">
>    const Comdat *C = F.getComdat();<br class="gmail_msg">
> @@ -339,7 +336,7 @@ MCSection *TargetLoweringObjectFileELF::<br class="gmail_msg">
>      return ReadOnlySection;<br class="gmail_msg">
><br class="gmail_msg">
>    return selectELFSectionForGlobal(getContext(), &F, SectionKind::getReadOnly(),<br class="gmail_msg">
> -                                   Mang, TM, EmitUniqueSection, ELF::SHF_ALLOC,<br class="gmail_msg">
> +                                   getMangler(), TM, EmitUniqueSection, ELF::SHF_ALLOC,<br class="gmail_msg">
>                                     &NextUniqueID);<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
> @@ -423,7 +420,7 @@ MCSection *TargetLoweringObjectFileELF::<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  const MCExpr *TargetLoweringObjectFileELF::lowerRelativeReference(<br class="gmail_msg">
> -    const GlobalValue *LHS, const GlobalValue *RHS, Mangler &Mang,<br class="gmail_msg">
> +    const GlobalValue *LHS, const GlobalValue *RHS,<br class="gmail_msg">
>      const TargetMachine &TM) const {<br class="gmail_msg">
>    // We may only use a PLT-relative relocation to refer to unnamed_addr<br class="gmail_msg">
>    // functions.<br class="gmail_msg">
> @@ -437,9 +434,9 @@ const MCExpr *TargetLoweringObjectFileEL<br class="gmail_msg">
>      return nullptr;<br class="gmail_msg">
><br class="gmail_msg">
>    return MCBinaryExpr::createSub(<br class="gmail_msg">
> -      MCSymbolRefExpr::create(TM.getSymbol(LHS, Mang), PLTRelativeVariantKind,<br class="gmail_msg">
> +      MCSymbolRefExpr::create(TM.getSymbol(LHS, getMangler()), PLTRelativeVariantKind,<br class="gmail_msg">
>                                getContext()),<br class="gmail_msg">
> -      MCSymbolRefExpr::create(TM.getSymbol(RHS, Mang), getContext()),<br class="gmail_msg">
> +      MCSymbolRefExpr::create(TM.getSymbol(RHS, getMangler()), getContext()),<br class="gmail_msg">
>        getContext());<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
> @@ -490,10 +487,9 @@ void TargetLoweringObjectFileMachO::Init<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  /// emitModuleFlags - Perform code emission for module flags.<br class="gmail_msg">
> -void TargetLoweringObjectFileMachO::<br class="gmail_msg">
> -emitModuleFlags(MCStreamer &Streamer,<br class="gmail_msg">
> -                ArrayRef<Module::ModuleFlagEntry> ModuleFlags,<br class="gmail_msg">
> -                Mangler &Mang, const TargetMachine &TM) const {<br class="gmail_msg">
> +void TargetLoweringObjectFileMachO::emitModuleFlags(<br class="gmail_msg">
> +    MCStreamer &Streamer, ArrayRef<Module::ModuleFlagEntry> ModuleFlags,<br class="gmail_msg">
> +    const TargetMachine &TM) const {<br class="gmail_msg">
>    unsigned VersionVal = 0;<br class="gmail_msg">
>    unsigned ImageInfoFlags = 0;<br class="gmail_msg">
>    MDNode *LinkerOptions = nullptr;<br class="gmail_msg">
> @@ -567,8 +563,7 @@ static void checkMachOComdat(const Globa<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  MCSection *TargetLoweringObjectFileMachO::getExplicitSectionGlobal(<br class="gmail_msg">
> -    const GlobalValue *GV, SectionKind Kind, Mangler &Mang,<br class="gmail_msg">
> -    const TargetMachine &TM) const {<br class="gmail_msg">
> +    const GlobalValue *GV, SectionKind Kind, const TargetMachine &TM) const {<br class="gmail_msg">
>    // Parse the section specifier and create it if valid.<br class="gmail_msg">
>    StringRef Segment, Section;<br class="gmail_msg">
>    unsigned TAA = 0, StubSize = 0;<br class="gmail_msg">
> @@ -609,8 +604,7 @@ MCSection *TargetLoweringObjectFileMachO<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  MCSection *TargetLoweringObjectFileMachO::SelectSectionForGlobal(<br class="gmail_msg">
> -    const GlobalValue *GV, SectionKind Kind, Mangler &Mang,<br class="gmail_msg">
> -    const TargetMachine &TM) const {<br class="gmail_msg">
> +    const GlobalValue *GV, SectionKind Kind, const TargetMachine &TM) const {<br class="gmail_msg">
>    checkMachOComdat(GV);<br class="gmail_msg">
><br class="gmail_msg">
>    // Handle thread local data.<br class="gmail_msg">
> @@ -695,23 +689,21 @@ MCSection *TargetLoweringObjectFileMachO<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  const MCExpr *TargetLoweringObjectFileMachO::getTTypeGlobalReference(<br class="gmail_msg">
> -    const GlobalValue *GV, unsigned Encoding, Mangler &Mang,<br class="gmail_msg">
> -    const TargetMachine &TM, MachineModuleInfo *MMI,<br class="gmail_msg">
> -    MCStreamer &Streamer) const {<br class="gmail_msg">
> +    const GlobalValue *GV, unsigned Encoding, const TargetMachine &TM,<br class="gmail_msg">
> +    MachineModuleInfo *MMI, MCStreamer &Streamer) const {<br class="gmail_msg">
>    // The mach-o version of this method defaults to returning a stub reference.<br class="gmail_msg">
><br class="gmail_msg">
>    if (Encoding & DW_EH_PE_indirect) {<br class="gmail_msg">
>      MachineModuleInfoMachO &MachOMMI =<br class="gmail_msg">
>        MMI->getObjFileInfo<MachineModuleInfoMachO>();<br class="gmail_msg">
><br class="gmail_msg">
> -    MCSymbol *SSym =<br class="gmail_msg">
> -        getSymbolWithGlobalValueBase(GV, "$non_lazy_ptr", Mang, TM);<br class="gmail_msg">
> +    MCSymbol *SSym = getSymbolWithGlobalValueBase(GV, "$non_lazy_ptr", TM);<br class="gmail_msg">
><br class="gmail_msg">
>      // Add information about the stub reference to MachOMMI so that the stub<br class="gmail_msg">
>      // gets emitted by the asmprinter.<br class="gmail_msg">
>      MachineModuleInfoImpl::StubValueTy &StubSym = MachOMMI.getGVStubEntry(SSym);<br class="gmail_msg">
>      if (!StubSym.getPointer()) {<br class="gmail_msg">
> -      MCSymbol *Sym = TM.getSymbol(GV, Mang);<br class="gmail_msg">
> +      MCSymbol *Sym = TM.getSymbol(GV, getMangler());<br class="gmail_msg">
>        StubSym = MachineModuleInfoImpl::StubValueTy(Sym, !GV->hasLocalLinkage());<br class="gmail_msg">
>      }<br class="gmail_msg">
><br class="gmail_msg">
> @@ -720,24 +712,24 @@ const MCExpr *TargetLoweringObjectFileMa<br class="gmail_msg">
>                          Encoding & ~dwarf::DW_EH_PE_indirect, Streamer);<br class="gmail_msg">
>    }<br class="gmail_msg">
><br class="gmail_msg">
> -  return TargetLoweringObjectFile::getTTypeGlobalReference(GV, Encoding, Mang,<br class="gmail_msg">
> -                                                           TM, MMI, Streamer);<br class="gmail_msg">
> +  return TargetLoweringObjectFile::getTTypeGlobalReference(GV, Encoding, TM,<br class="gmail_msg">
> +                                                           MMI, Streamer);<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  MCSymbol *TargetLoweringObjectFileMachO::getCFIPersonalitySymbol(<br class="gmail_msg">
> -    const GlobalValue *GV, Mangler &Mang, const TargetMachine &TM,<br class="gmail_msg">
> +    const GlobalValue *GV, const TargetMachine &TM,<br class="gmail_msg">
>      MachineModuleInfo *MMI) const {<br class="gmail_msg">
>    // The mach-o version of this method defaults to returning a stub reference.<br class="gmail_msg">
>    MachineModuleInfoMachO &MachOMMI =<br class="gmail_msg">
>      MMI->getObjFileInfo<MachineModuleInfoMachO>();<br class="gmail_msg">
><br class="gmail_msg">
> -  MCSymbol *SSym = getSymbolWithGlobalValueBase(GV, "$non_lazy_ptr", Mang, TM);<br class="gmail_msg">
> +  MCSymbol *SSym = getSymbolWithGlobalValueBase(GV, "$non_lazy_ptr", TM);<br class="gmail_msg">
><br class="gmail_msg">
>    // Add information about the stub reference to MachOMMI so that the stub<br class="gmail_msg">
>    // gets emitted by the asmprinter.<br class="gmail_msg">
>    MachineModuleInfoImpl::StubValueTy &StubSym = MachOMMI.getGVStubEntry(SSym);<br class="gmail_msg">
>    if (!StubSym.getPointer()) {<br class="gmail_msg">
> -    MCSymbol *Sym = TM.getSymbol(GV, Mang);<br class="gmail_msg">
> +    MCSymbol *Sym = TM.getSymbol(GV, getMangler());<br class="gmail_msg">
>      StubSym = MachineModuleInfoImpl::StubValueTy(Sym, !GV->hasLocalLinkage());<br class="gmail_msg">
>    }<br class="gmail_msg">
><br class="gmail_msg">
> @@ -818,13 +810,13 @@ static bool canUsePrivateLabel(const MCA<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  void TargetLoweringObjectFileMachO::getNameWithPrefix(<br class="gmail_msg">
> -    SmallVectorImpl<char> &OutName, const GlobalValue *GV, Mangler &Mang,<br class="gmail_msg">
> +    SmallVectorImpl<char> &OutName, const GlobalValue *GV,<br class="gmail_msg">
>      const TargetMachine &TM) const {<br class="gmail_msg">
>    SectionKind GVKind = TargetLoweringObjectFile::getKindForGlobal(GV, TM);<br class="gmail_msg">
> -  const MCSection *TheSection = SectionForGlobal(GV, GVKind, Mang, TM);<br class="gmail_msg">
> +  const MCSection *TheSection = SectionForGlobal(GV, GVKind, TM);<br class="gmail_msg">
>    bool CannotUsePrivateLabel =<br class="gmail_msg">
>        !canUsePrivateLabel(*TM.getMCAsmInfo(), *TheSection);<br class="gmail_msg">
> -  Mang.getNameWithPrefix(OutName, GV, CannotUsePrivateLabel);<br class="gmail_msg">
> +  getMangler().getNameWithPrefix(OutName, GV, CannotUsePrivateLabel);<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  //===----------------------------------------------------------------------===//<br class="gmail_msg">
> @@ -911,8 +903,7 @@ static int getSelectionForCOFF(const Glo<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  MCSection *TargetLoweringObjectFileCOFF::getExplicitSectionGlobal(<br class="gmail_msg">
> -    const GlobalValue *GV, SectionKind Kind, Mangler &Mang,<br class="gmail_msg">
> -    const TargetMachine &TM) const {<br class="gmail_msg">
> +    const GlobalValue *GV, SectionKind Kind, const TargetMachine &TM) const {<br class="gmail_msg">
>    int Selection = 0;<br class="gmail_msg">
>    unsigned Characteristics = getCOFFSectionFlags(Kind, TM);<br class="gmail_msg">
>    StringRef Name = GV->getSection();<br class="gmail_msg">
> @@ -926,7 +917,7 @@ MCSection *TargetLoweringObjectFileCOFF:<br class="gmail_msg">
>        ComdatGV = GV;<br class="gmail_msg">
><br class="gmail_msg">
>      if (!ComdatGV->hasPrivateLinkage()) {<br class="gmail_msg">
> -      MCSymbol *Sym = TM.getSymbol(ComdatGV, Mang);<br class="gmail_msg">
> +      MCSymbol *Sym = TM.getSymbol(ComdatGV, getMangler());<br class="gmail_msg">
>        COMDATSymName = Sym->getName();<br class="gmail_msg">
>        Characteristics |= COFF::IMAGE_SCN_LNK_COMDAT;<br class="gmail_msg">
>      } else {<br class="gmail_msg">
> @@ -951,8 +942,7 @@ static const char *getCOFFSectionNameFor<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  MCSection *TargetLoweringObjectFileCOFF::SelectSectionForGlobal(<br class="gmail_msg">
> -    const GlobalValue *GV, SectionKind Kind, Mangler &Mang,<br class="gmail_msg">
> -    const TargetMachine &TM) const {<br class="gmail_msg">
> +    const GlobalValue *GV, SectionKind Kind, const TargetMachine &TM) const {<br class="gmail_msg">
>    // If we have -ffunction-sections then we should emit the global value to a<br class="gmail_msg">
>    // uniqued section specifically for it.<br class="gmail_msg">
>    bool EmitUniquedSection;<br class="gmail_msg">
> @@ -980,13 +970,13 @@ MCSection *TargetLoweringObjectFileCOFF:<br class="gmail_msg">
>        UniqueID = NextUniqueID++;<br class="gmail_msg">
><br class="gmail_msg">
>      if (!ComdatGV->hasPrivateLinkage()) {<br class="gmail_msg">
> -      MCSymbol *Sym = TM.getSymbol(ComdatGV, Mang);<br class="gmail_msg">
> +      MCSymbol *Sym = TM.getSymbol(ComdatGV, getMangler());<br class="gmail_msg">
>        StringRef COMDATSymName = Sym->getName();<br class="gmail_msg">
>        return getContext().getCOFFSection(Name, Characteristics, Kind,<br class="gmail_msg">
>                                           COMDATSymName, Selection, UniqueID);<br class="gmail_msg">
>      } else {<br class="gmail_msg">
>        SmallString<256> TmpData;<br class="gmail_msg">
> -      Mang.getNameWithPrefix(TmpData, GV, /*CannotUsePrivateLabel=*/true);<br class="gmail_msg">
> +      getMangler().getNameWithPrefix(TmpData, GV, /*CannotUsePrivateLabel=*/true);<br class="gmail_msg">
>        return getContext().getCOFFSection(Name, Characteristics, Kind, TmpData,<br class="gmail_msg">
>                                           Selection, UniqueID);<br class="gmail_msg">
>      }<br class="gmail_msg">
> @@ -1011,7 +1001,7 @@ MCSection *TargetLoweringObjectFileCOFF:<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  void TargetLoweringObjectFileCOFF::getNameWithPrefix(<br class="gmail_msg">
> -    SmallVectorImpl<char> &OutName, const GlobalValue *GV, Mangler &Mang,<br class="gmail_msg">
> +    SmallVectorImpl<char> &OutName, const GlobalValue *GV,<br class="gmail_msg">
>      const TargetMachine &TM) const {<br class="gmail_msg">
>    bool CannotUsePrivateLabel = false;<br class="gmail_msg">
>    if (GV->hasPrivateLinkage() &&<br class="gmail_msg">
> @@ -1019,11 +1009,11 @@ void TargetLoweringObjectFileCOFF::getNa<br class="gmail_msg">
>         (isa<GlobalVariable>(GV) && TM.getDataSections())))<br class="gmail_msg">
>      CannotUsePrivateLabel = true;<br class="gmail_msg">
><br class="gmail_msg">
> -  Mang.getNameWithPrefix(OutName, GV, CannotUsePrivateLabel);<br class="gmail_msg">
> +  getMangler().getNameWithPrefix(OutName, GV, CannotUsePrivateLabel);<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  MCSection *TargetLoweringObjectFileCOFF::getSectionForJumpTable(<br class="gmail_msg">
> -    const Function &F, Mangler &Mang, const TargetMachine &TM) const {<br class="gmail_msg">
> +    const Function &F, const TargetMachine &TM) const {<br class="gmail_msg">
>    // If the function can be removed, produce a unique section so that<br class="gmail_msg">
>    // the table doesn't prevent the removal.<br class="gmail_msg">
>    const Comdat *C = F.getComdat();<br class="gmail_msg">
> @@ -1035,7 +1025,7 @@ MCSection *TargetLoweringObjectFileCOFF:<br class="gmail_msg">
>    if (F.hasPrivateLinkage())<br class="gmail_msg">
>      return ReadOnlySection;<br class="gmail_msg">
><br class="gmail_msg">
> -  MCSymbol *Sym = TM.getSymbol(&F, Mang);<br class="gmail_msg">
> +  MCSymbol *Sym = TM.getSymbol(&F, getMangler());<br class="gmail_msg">
>    StringRef COMDATSymName = Sym->getName();<br class="gmail_msg">
><br class="gmail_msg">
>    SectionKind Kind = SectionKind::getReadOnly();<br class="gmail_msg">
> @@ -1048,10 +1038,9 @@ MCSection *TargetLoweringObjectFileCOFF:<br class="gmail_msg">
>                                       COFF::IMAGE_COMDAT_SELECT_ASSOCIATIVE, UniqueID);<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
> -void TargetLoweringObjectFileCOFF::<br class="gmail_msg">
> -emitModuleFlags(MCStreamer &Streamer,<br class="gmail_msg">
> -                ArrayRef<Module::ModuleFlagEntry> ModuleFlags,<br class="gmail_msg">
> -                Mangler &Mang, const TargetMachine &TM) const {<br class="gmail_msg">
> +void TargetLoweringObjectFileCOFF::emitModuleFlags(<br class="gmail_msg">
> +    MCStreamer &Streamer, ArrayRef<Module::ModuleFlagEntry> ModuleFlags,<br class="gmail_msg">
> +    const TargetMachine &TM) const {<br class="gmail_msg">
>    MDNode *LinkerOptions = nullptr;<br class="gmail_msg">
><br class="gmail_msg">
>    for (const auto &MFE : ModuleFlags) {<br class="gmail_msg">
> @@ -1115,7 +1104,7 @@ MCSection *TargetLoweringObjectFileCOFF:<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  void TargetLoweringObjectFileCOFF::emitLinkerFlagsForGlobal(<br class="gmail_msg">
> -    raw_ostream &OS, const GlobalValue *GV, const Mangler &Mang) const {<br class="gmail_msg">
> +    raw_ostream &OS, const GlobalValue *GV) const {<br class="gmail_msg">
>    if (!GV->hasDLLExportStorageClass() || GV->isDeclaration())<br class="gmail_msg">
>      return;<br class="gmail_msg">
><br class="gmail_msg">
> @@ -1129,14 +1118,14 @@ void TargetLoweringObjectFileCOFF::emitL<br class="gmail_msg">
>    if (TT.isWindowsGNUEnvironment() || TT.isWindowsCygwinEnvironment()) {<br class="gmail_msg">
>      std::string Flag;<br class="gmail_msg">
>      raw_string_ostream FlagOS(Flag);<br class="gmail_msg">
> -    Mang.getNameWithPrefix(FlagOS, GV, false);<br class="gmail_msg">
> +    getMangler().getNameWithPrefix(FlagOS, GV, false);<br class="gmail_msg">
>      FlagOS.flush();<br class="gmail_msg">
>      if (Flag[0] == GV->getParent()->getDataLayout().getGlobalPrefix())<br class="gmail_msg">
>        OS << Flag.substr(1);<br class="gmail_msg">
>      else<br class="gmail_msg">
>        OS << Flag;<br class="gmail_msg">
>    } else {<br class="gmail_msg">
> -    Mang.getNameWithPrefix(OS, GV, false);<br class="gmail_msg">
> +    getMangler().getNameWithPrefix(OS, GV, false);<br class="gmail_msg">
>    }<br class="gmail_msg">
><br class="gmail_msg">
>    if (!GV->getValueType()->isFunctionTy()) {<br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/lib/LTO/LTOModule.cpp<br class="gmail_msg">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/LTO/LTOModule.cpp?rev=281708&r1=281707&r2=281708&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/LTO/LTOModule.cpp?rev=281708&r1=281707&r2=281708&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/lib/LTO/LTOModule.cpp (original)<br class="gmail_msg">
> +++ llvm/trunk/lib/LTO/LTOModule.cpp Fri Sep 16 02:33:15 2016<br class="gmail_msg">
> @@ -19,7 +19,6 @@<br class="gmail_msg">
>  #include "llvm/IR/Constants.h"<br class="gmail_msg">
>  #include "llvm/IR/DiagnosticPrinter.h"<br class="gmail_msg">
>  #include "llvm/IR/LLVMContext.h"<br class="gmail_msg">
> -#include "llvm/IR/Mangler.h"<br class="gmail_msg">
>  #include "llvm/IR/Metadata.h"<br class="gmail_msg">
>  #include "llvm/IR/Module.h"<br class="gmail_msg">
>  #include "llvm/MC/MCExpr.h"<br class="gmail_msg">
> @@ -648,12 +647,10 @@ void LTOModule::parseMetadata() {<br class="gmail_msg">
>    }<br class="gmail_msg">
><br class="gmail_msg">
>    // Globals<br class="gmail_msg">
> -  Mangler Mang;<br class="gmail_msg">
>    for (const NameAndAttributes &Sym : _symbols) {<br class="gmail_msg">
>      if (!Sym.symbol)<br class="gmail_msg">
>        continue;<br class="gmail_msg">
> -    _target->getObjFileLowering()->emitLinkerFlagsForGlobal(OS, Sym.symbol,<br class="gmail_msg">
> -                                                            Mang);<br class="gmail_msg">
> +    _target->getObjFileLowering()->emitLinkerFlagsForGlobal(OS, Sym.symbol);<br class="gmail_msg">
>    }<br class="gmail_msg">
><br class="gmail_msg">
>    // Add other interesting metadata here.<br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/lib/Target/AArch64/AArch64TargetObjectFile.cpp<br class="gmail_msg">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64TargetObjectFile.cpp?rev=281708&r1=281707&r2=281708&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64TargetObjectFile.cpp?rev=281708&r1=281707&r2=281708&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/lib/Target/AArch64/AArch64TargetObjectFile.cpp (original)<br class="gmail_msg">
> +++ llvm/trunk/lib/Target/AArch64/AArch64TargetObjectFile.cpp Fri Sep 16 02:33:15 2016<br class="gmail_msg">
> @@ -30,15 +30,14 @@ AArch64_MachoTargetObjectFile::AArch64_M<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  const MCExpr *AArch64_MachoTargetObjectFile::getTTypeGlobalReference(<br class="gmail_msg">
> -    const GlobalValue *GV, unsigned Encoding, Mangler &Mang,<br class="gmail_msg">
> -    const TargetMachine &TM, MachineModuleInfo *MMI,<br class="gmail_msg">
> -    MCStreamer &Streamer) const {<br class="gmail_msg">
> +    const GlobalValue *GV, unsigned Encoding, const TargetMachine &TM,<br class="gmail_msg">
> +    MachineModuleInfo *MMI, MCStreamer &Streamer) const {<br class="gmail_msg">
>    // On Darwin, we can reference dwarf symbols with foo@GOT-., which<br class="gmail_msg">
>    // is an indirect pc-relative reference. The default implementation<br class="gmail_msg">
>    // won't reference using the GOT, so we need this target-specific<br class="gmail_msg">
>    // version.<br class="gmail_msg">
>    if (Encoding & (DW_EH_PE_indirect | DW_EH_PE_pcrel)) {<br class="gmail_msg">
> -    const MCSymbol *Sym = TM.getSymbol(GV, Mang);<br class="gmail_msg">
> +    const MCSymbol *Sym = TM.getSymbol(GV, getMangler());<br class="gmail_msg">
>      const MCExpr *Res =<br class="gmail_msg">
>          MCSymbolRefExpr::create(Sym, MCSymbolRefExpr::VK_GOT, getContext());<br class="gmail_msg">
>      MCSymbol *PCSym = getContext().createTempSymbol();<br class="gmail_msg">
> @@ -48,13 +47,13 @@ const MCExpr *AArch64_MachoTargetObjectF<br class="gmail_msg">
>    }<br class="gmail_msg">
><br class="gmail_msg">
>    return TargetLoweringObjectFileMachO::getTTypeGlobalReference(<br class="gmail_msg">
> -      GV, Encoding, Mang, TM, MMI, Streamer);<br class="gmail_msg">
> +      GV, Encoding, TM, MMI, Streamer);<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  MCSymbol *AArch64_MachoTargetObjectFile::getCFIPersonalitySymbol(<br class="gmail_msg">
> -    const GlobalValue *GV, Mangler &Mang, const TargetMachine &TM,<br class="gmail_msg">
> +    const GlobalValue *GV, const TargetMachine &TM,<br class="gmail_msg">
>      MachineModuleInfo *MMI) const {<br class="gmail_msg">
> -  return TM.getSymbol(GV, Mang);<br class="gmail_msg">
> +  return TM.getSymbol(GV, getMangler());<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  const MCExpr *AArch64_MachoTargetObjectFile::getIndirectSymViaGOTPCRel(<br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/lib/Target/AArch64/AArch64TargetObjectFile.h<br class="gmail_msg">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64TargetObjectFile.h?rev=281708&r1=281707&r2=281708&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64TargetObjectFile.h?rev=281708&r1=281707&r2=281708&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/lib/Target/AArch64/AArch64TargetObjectFile.h (original)<br class="gmail_msg">
> +++ llvm/trunk/lib/Target/AArch64/AArch64TargetObjectFile.h Fri Sep 16 02:33:15 2016<br class="gmail_msg">
> @@ -27,12 +27,12 @@ public:<br class="gmail_msg">
>    AArch64_MachoTargetObjectFile();<br class="gmail_msg">
><br class="gmail_msg">
>    const MCExpr *getTTypeGlobalReference(const GlobalValue *GV,<br class="gmail_msg">
> -                                        unsigned Encoding, Mangler &Mang,<br class="gmail_msg">
> +                                        unsigned Encoding,<br class="gmail_msg">
>                                          const TargetMachine &TM,<br class="gmail_msg">
>                                          MachineModuleInfo *MMI,<br class="gmail_msg">
>                                          MCStreamer &Streamer) const override;<br class="gmail_msg">
><br class="gmail_msg">
> -  MCSymbol *getCFIPersonalitySymbol(const GlobalValue *GV, Mangler &Mang,<br class="gmail_msg">
> +  MCSymbol *getCFIPersonalitySymbol(const GlobalValue *GV,<br class="gmail_msg">
>                                      const TargetMachine &TM,<br class="gmail_msg">
>                                      MachineModuleInfo *MMI) const override;<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp<br class="gmail_msg">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp?rev=281708&r1=281707&r2=281708&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp?rev=281708&r1=281707&r2=281708&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp (original)<br class="gmail_msg">
> +++ llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp Fri Sep 16 02:33:15 2016<br class="gmail_msg">
> @@ -20,12 +20,10 @@ using namespace llvm;<br class="gmail_msg">
>  // Generic Object File<br class="gmail_msg">
>  //===----------------------------------------------------------------------===//<br class="gmail_msg">
><br class="gmail_msg">
> -MCSection *AMDGPUTargetObjectFile::SelectSectionForGlobal(const GlobalValue *GV,<br class="gmail_msg">
> -                                                          SectionKind Kind,<br class="gmail_msg">
> -                                                          Mangler &Mang,<br class="gmail_msg">
> -                                                const TargetMachine &TM) const {<br class="gmail_msg">
> +MCSection *AMDGPUTargetObjectFile::SelectSectionForGlobal(<br class="gmail_msg">
> +    const GlobalValue *GV, SectionKind Kind, const TargetMachine &TM) const {<br class="gmail_msg">
>    if (Kind.isReadOnly() && AMDGPU::isReadOnlySegment(GV))<br class="gmail_msg">
>      return TextSection;<br class="gmail_msg">
><br class="gmail_msg">
> -  return TargetLoweringObjectFileELF::SelectSectionForGlobal(GV, Kind, Mang, TM);<br class="gmail_msg">
> +  return TargetLoweringObjectFileELF::SelectSectionForGlobal(GV, Kind, TM);<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h<br class="gmail_msg">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h?rev=281708&r1=281707&r2=281708&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h?rev=281708&r1=281707&r2=281708&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h (original)<br class="gmail_msg">
> +++ llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h Fri Sep 16 02:33:15 2016<br class="gmail_msg">
> @@ -24,7 +24,6 @@ namespace llvm {<br class="gmail_msg">
>  class AMDGPUTargetObjectFile : public TargetLoweringObjectFileELF {<br class="gmail_msg">
>    public:<br class="gmail_msg">
>      MCSection *SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,<br class="gmail_msg">
> -                                      Mangler &Mang,<br class="gmail_msg">
>                                        const TargetMachine &TM) const override;<br class="gmail_msg">
>  };<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp<br class="gmail_msg">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp?rev=281708&r1=281707&r2=281708&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp?rev=281708&r1=281707&r2=281708&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp (original)<br class="gmail_msg">
> +++ llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp Fri Sep 16 02:33:15 2016<br class="gmail_msg">
> @@ -543,11 +543,11 @@ void ARMAsmPrinter::EmitEndOfAsmFile(Mod<br class="gmail_msg">
>      raw_string_ostream OS(Flags);<br class="gmail_msg">
><br class="gmail_msg">
>      for (const auto &Function : M)<br class="gmail_msg">
> -      TLOF.emitLinkerFlagsForGlobal(OS, &Function, *Mang);<br class="gmail_msg">
> +      TLOF.emitLinkerFlagsForGlobal(OS, &Function);<br class="gmail_msg">
>      for (const auto &Global : M.globals())<br class="gmail_msg">
> -      TLOF.emitLinkerFlagsForGlobal(OS, &Global, *Mang);<br class="gmail_msg">
> +      TLOF.emitLinkerFlagsForGlobal(OS, &Global);<br class="gmail_msg">
>      for (const auto &Alias : M.aliases())<br class="gmail_msg">
> -      TLOF.emitLinkerFlagsForGlobal(OS, &Alias, *Mang);<br class="gmail_msg">
> +      TLOF.emitLinkerFlagsForGlobal(OS, &Alias);<br class="gmail_msg">
><br class="gmail_msg">
>      OS.flush();<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/lib/Target/ARM/ARMTargetObjectFile.cpp<br class="gmail_msg">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMTargetObjectFile.cpp?rev=281708&r1=281707&r2=281708&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMTargetObjectFile.cpp?rev=281708&r1=281707&r2=281708&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/lib/Target/ARM/ARMTargetObjectFile.cpp (original)<br class="gmail_msg">
> +++ llvm/trunk/lib/Target/ARM/ARMTargetObjectFile.cpp Fri Sep 16 02:33:15 2016<br class="gmail_msg">
> @@ -41,16 +41,15 @@ void ARMElfTargetObjectFile::Initialize(<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
>  const MCExpr *ARMElfTargetObjectFile::getTTypeGlobalReference(<br class="gmail_msg">
> -    const GlobalValue *GV, unsigned Encoding, Mangler &Mang,<br class="gmail_msg">
> -    const TargetMachine &TM, MachineModuleInfo *MMI,<br class="gmail_msg">
> -    MCStreamer &Streamer) const {<br class="gmail_msg">
> +    const GlobalValue *GV, unsigned Encoding, const TargetMachine &TM,<br class="gmail_msg">
> +    MachineModuleInfo *MMI, MCStreamer &Streamer) const {<br class="gmail_msg">
>    if (TM.getMCAsmInfo()->getExceptionHandlingType() != ExceptionHandling::ARM)<br class="gmail_msg">
>      return TargetLoweringObjectFileELF::getTTypeGlobalReference(<br class="gmail_msg">
> -        GV, Encoding, Mang, TM, MMI, Streamer);<br class="gmail_msg">
> +        GV, Encoding, TM, MMI, Streamer);<br class="gmail_msg">
><br class="gmail_msg">
>    assert(Encoding == DW_EH_PE_absptr && "Can handle absptr encoding only");<br class="gmail_msg">
><br class="gmail_msg">
> -  return MCSymbolRefExpr::create(TM.getSymbol(GV, Mang),<br class="gmail_msg">
> +  return MCSymbolRefExpr::create(TM.getSymbol(GV, getMangler()),<br class="gmail_msg">
>                                   MCSymbolRefExpr::VK_ARM_TARGET2, getContext());<br class="gmail_msg">
>  }<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> Modified: llvm/trunk/lib/Target/ARM/ARMTargetObjectFile.h<br class="gmail_msg">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMTargetObjectFile.h?rev=281708&r1=281707&r2=281708&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMTargetObjectFile.h?rev=281708&r1=281707&r2=281708&view=diff</a><br class="gmail_msg">
> ==============================================================================<br class="gmail_msg">
> --- llvm/trunk/lib/Target/ARM/ARMTargetObjectFile.h (original)<br class="gmail_msg">
> +++ llvm/trunk/lib/Target/ARM/ARMTargetObjectFile.h Fri Sep 16 02:33:15 2016<br class="gmail_msg">
> @@ -28,11 +28,11 @@ public:<br class="gmail_msg">
><br class="gmail_msg">
>    void Initialize(MCContext &Ctx, const TargetMachine &TM) override;<br class="gmail_msg">
><br class="gmail_msg">
> -  const MCExpr *<br class="gmail_msg">
> -  getTTypeGlobalReference(const GlobalValue *GV, unsigned Encoding,<br class="gmail_msg">
> -                          Mangler &Mang, const TargetMachine &TM,<br class="gmail_msg">
> -                          MachineModuleInfo *MMI,<br class="gmail_msg">
> -                          MCStreamer &Streamer) const override;<br class="gmail_msg">
> +  const MCExpr *getTTypeGlobalReference(const GlobalValue *GV,<br class="gmail_msg">
> +                   </blockquote></div></div>