These were failures with 3.7 for mipsr6. Regards, Bhushan ________________________________________ From: hwennb...@google.com [hwennb...@google.com] on behalf of Hans Wennborg [h...@chromium.org] Sent: Tuesday, February 23, 2016 10:29 PM To: Bhushan Attarde Cc: lldb-commits@lists.llvm.org; Greg Clayton (gclay...@apple.com); ztur...@google.com Subject: Re: [Lldb-commits] [lldb] r261206 - [LLDB][MIPS] Provide CPU string to compiler for appropriate code generation for MIPS
Did those tests pass for mipsr6 with 3.7? On Tue, Feb 23, 2016 at 3:19 AM, Bhushan Attarde <bhushan.atta...@imgtec.com> wrote: > Hi Hans, > > This change fixes expression related tests for MIPS release 6 architecture > (mipsr6). > > > Regards, > Bhushan > > -----Original Message----- > From: hwennb...@google.com [mailto:hwennb...@google.com] On Behalf Of Hans > Wennborg > Sent: 23 February 2016 00:25 > To: Bhushan Attarde > Cc: lldb-commits@lists.llvm.org; Greg Clayton (gclay...@apple.com); > ztur...@google.com > Subject: Re: [Lldb-commits] [lldb] r261206 - [LLDB][MIPS] Provide CPU string > to compiler for appropriate code generation for MIPS > > Hi Bhushan, > > This looks more like new functionality than a regression fix from 3.7. > As such, I'd rather not merge it to 3.8 this late in the process. > > Thanks, > Hans > > On Sun, Feb 21, 2016 at 9:08 PM, Bhushan Attarde <bhushan.atta...@imgtec.com> > wrote: >> Hi Hans, >> >> Could you please add this (r261206) to the release branch? >> >> Thanks, >> Bhushan >> >> >> -----Original Message----- >> From: lldb-commits [mailto:lldb-commits-boun...@lists.llvm.org] On >> Behalf Of Bhushan D. Attarde via lldb-commits >> Sent: 18 February 2016 17:23 >> To: lldb-commits@lists.llvm.org >> Subject: [Lldb-commits] [lldb] r261206 - [LLDB][MIPS] Provide CPU >> string to compiler for appropriate code generation for MIPS >> >> Author: bhushan.attarde >> Date: Thu Feb 18 05:53:28 2016 >> New Revision: 261206 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=261206&view=rev >> Log: >> [LLDB][MIPS] Provide CPU string to compiler for appropriate code >> generation for MIPS >> >> SUMMARY: >> This patch implements ArchSpec::GetClangTargetCPU() that provides string >> representing current architecture as a target CPU. >> This string is then passed to tools like clang so that they generate >> correct code for that target. >> >> Reviewers: clayborg, zturner >> Subscribers: mohit.bhakkad, sagar, jaydeep, lldb-commits >> Differential Revision: http://reviews.llvm.org/D17022 >> >> Modified: >> lldb/trunk/include/lldb/Core/ArchSpec.h >> lldb/trunk/source/Core/ArchSpec.cpp >> >> lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangExpressionParser >> .cpp >> >> Modified: lldb/trunk/include/lldb/Core/ArchSpec.h >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/ArchS >> pec.h?rev=261206&r1=261205&r2=261206&view=diff >> ====================================================================== >> ======== >> --- lldb/trunk/include/lldb/Core/ArchSpec.h (original) >> +++ lldb/trunk/include/lldb/Core/ArchSpec.h Thu Feb 18 05:53:28 2016 >> @@ -288,6 +288,16 @@ public: >> GetArchitectureName () const; >> >> >> //------------------------------------------------------------------ >> + /// Returns a string representing current architecture as a target CPU >> + /// for tools like compiler, disassembler etc. >> + /// >> + /// @return A string representing target CPU for the current >> + /// architecture. >> + //------------------------------------------------------------------ >> + std::string >> + GetClangTargetCPU (); >> + >> + >> + //------------------------------------------------------------------ >> /// Clears the object state. >> /// >> /// Clears the object state back to a default invalid state. >> >> Modified: lldb/trunk/source/Core/ArchSpec.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/ArchSpec.cp >> p?rev=261206&r1=261205&r2=261206&view=diff >> ====================================================================== >> ======== >> --- lldb/trunk/source/Core/ArchSpec.cpp (original) >> +++ lldb/trunk/source/Core/ArchSpec.cpp Thu Feb 18 05:53:28 2016 >> @@ -511,6 +511,56 @@ ArchSpec::GetArchitectureName () const >> return "unknown"; >> } >> >> +std::string >> +ArchSpec::GetClangTargetCPU () >> +{ >> + std::string cpu; >> + const llvm::Triple::ArchType machine = GetMachine(); >> + >> + if (machine == llvm::Triple::mips || >> + machine == llvm::Triple::mipsel || >> + machine == llvm::Triple::mips64 || >> + machine == llvm::Triple::mips64el) >> + { >> + switch (m_core) >> + { >> + case ArchSpec::eCore_mips32: >> + case ArchSpec::eCore_mips32el: >> + cpu = "mips32"; break; >> + case ArchSpec::eCore_mips32r2: >> + case ArchSpec::eCore_mips32r2el: >> + cpu = "mips32r2"; break; >> + case ArchSpec::eCore_mips32r3: >> + case ArchSpec::eCore_mips32r3el: >> + cpu = "mips32r3"; break; >> + case ArchSpec::eCore_mips32r5: >> + case ArchSpec::eCore_mips32r5el: >> + cpu = "mips32r5"; break; >> + case ArchSpec::eCore_mips32r6: >> + case ArchSpec::eCore_mips32r6el: >> + cpu = "mips32r6"; break; >> + case ArchSpec::eCore_mips64: >> + case ArchSpec::eCore_mips64el: >> + cpu = "mips64"; break; >> + case ArchSpec::eCore_mips64r2: >> + case ArchSpec::eCore_mips64r2el: >> + cpu = "mips64r2"; break; >> + case ArchSpec::eCore_mips64r3: >> + case ArchSpec::eCore_mips64r3el: >> + cpu = "mips64r3"; break; >> + case ArchSpec::eCore_mips64r5: >> + case ArchSpec::eCore_mips64r5el: >> + cpu = "mips64r5"; break; >> + case ArchSpec::eCore_mips64r6: >> + case ArchSpec::eCore_mips64r6el: >> + cpu = "mips64r6"; break; >> + default: >> + break; >> + } >> + } >> + return cpu; >> +} >> + >> uint32_t >> ArchSpec::GetMachOCPUType () const >> { >> >> Modified: >> lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangExpressionParser >> .cpp >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Expressi >> onParser/Clang/ClangExpressionParser.cpp?rev=261206&r1=261205&r2=26120 >> 6&view=diff >> ====================================================================== >> ======== >> --- >> lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangExpressionParser >> .cpp (original) >> +++ lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangExpressionPa >> +++ rs >> +++ er.cpp Thu Feb 18 05:53:28 2016 >> @@ -179,6 +179,12 @@ ClangExpressionParser::ClangExpressionPa >> if (exe_scope) >> target_sp = exe_scope->CalculateTarget(); >> >> + ArchSpec target_arch; >> + if (target_sp) >> + target_arch = target_sp->GetArchitecture(); >> + >> + const auto target_machine = target_arch.GetMachine(); >> + >> // If the expression is being evaluated in the context of an existing >> // stack frame, we introspect to see if the language runtime is >> available. >> auto frame = exe_scope->CalculateStackFrame(); @@ -197,9 +203,9 >> @@ ClangExpressionParser::ClangExpressionPa >> >> // 2. Configure the compiler with a set of default options that are >> appropriate >> // for most situations. >> - if (target_sp && target_sp->GetArchitecture().IsValid()) >> + if (target_sp && target_arch.IsValid()) >> { >> - std::string triple = target_sp->GetArchitecture().GetTriple().str(); >> + std::string triple = target_arch.GetTriple().str(); >> m_compiler->getTargetOpts().Triple = triple; >> if (log) >> log->Printf("Using %s as the target triple", >> m_compiler->getTargetOpts().Triple.c_str()); >> @@ -224,13 +230,17 @@ ClangExpressionParser::ClangExpressionPa >> m_compiler->getTargetOpts().ABI = "apcs-gnu"; >> } >> // Supported subsets of x86 >> - if (target_sp->GetArchitecture().GetMachine() == llvm::Triple::x86 || >> - target_sp->GetArchitecture().GetMachine() == llvm::Triple::x86_64) >> + if (target_machine == llvm::Triple::x86 || >> + target_machine == llvm::Triple::x86_64) >> { >> m_compiler->getTargetOpts().Features.push_back("+sse"); >> m_compiler->getTargetOpts().Features.push_back("+sse2"); >> } >> >> + // Set the target CPU to generate code for. >> + // This will be empty for any CPU that doesn't really need to make a >> special CPU string. >> + m_compiler->getTargetOpts().CPU = >> + target_arch.GetClangTargetCPU(); >> + >> // 3. Now allow the runtime to provide custom configuration options for >> the target. >> // In this case, a specialized language runtime is available and we can >> query it for extra options. >> // For 99% of use cases, this will not be needed and should be provided >> when basic platform detection is not enough. >> >> >> _______________________________________________ >> lldb-commits mailing list >> lldb-commits@lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits