On Wed, Mar 20, 2013 at 5:21 PM, Timur Iskhodzhanov <timurrrr at google.com>wrote:> 2013/3/20 Timur Iskhodzhanov <timurrrr at google.com>: > > Anton, > > > > [+Eric, Nick, > > the e-mail thread context has been broken a few times, so you should > > probably look at the llvmdev archives. > > It all starts here: > > http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-October/053961.html ] > > > > So I've decided to make a new attempt to fix this issue. > > > > We've discussed my patches with Eric and came up with the following idea: > > a) IsTargetWindows should be true for all the targets that execute on > > the Windows kernel, including Cygwin, MinGW and MSVC ABIs. > > > > However, "Windows 32-bit ABI" usually implies "MSVC 32-bit ABI", so > > it's Cygwin and MinGW (that are similar more similar to Itanium ABI > > than to MSVC ABI) that should be exceptions from the general Win32 > > handling code. > > > > That is, > > b) We should add a IsTargetWin32 which is true if the MSVC 32-bit ABI > > is used and false for Cygwin+MinGW. > FTR, there's already such a method but it is (mis?)used only in > lib/Target/X86/X86FrameLowering.cpp for segmented stacks. > Are segmented stacks actually used with MSVC or is it just the > conditions there should use isTargetMingw() && !is64Bit() instead? > >cc'ing graydon about segmented stacks because I know rust uses them. -eric -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130320/fec79a4d/attachment.html>
Anton, What do you think? 2013/3/20 Eric Christopher <echristo at gmail.com>:> > > > On Wed, Mar 20, 2013 at 5:21 PM, Timur Iskhodzhanov <timurrrr at google.com> > wrote: >> >> 2013/3/20 Timur Iskhodzhanov <timurrrr at google.com>: >> > Anton, >> > >> > [+Eric, Nick, >> > the e-mail thread context has been broken a few times, so you should >> > probably look at the llvmdev archives. >> > It all starts here: >> > http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-October/053961.html ] >> > >> > So I've decided to make a new attempt to fix this issue. >> > >> > We've discussed my patches with Eric and came up with the following >> > idea: >> > a) IsTargetWindows should be true for all the targets that execute on >> > the Windows kernel, including Cygwin, MinGW and MSVC ABIs. >> > >> > However, "Windows 32-bit ABI" usually implies "MSVC 32-bit ABI", so >> > it's Cygwin and MinGW (that are similar more similar to Itanium ABI >> > than to MSVC ABI) that should be exceptions from the general Win32 >> > handling code. >> > >> > That is, >> > b) We should add a IsTargetWin32 which is true if the MSVC 32-bit ABI >> > is used and false for Cygwin+MinGW. >> FTR, there's already such a method but it is (mis?)used only in >> lib/Target/X86/X86FrameLowering.cpp for segmented stacks. >> Are segmented stacks actually used with MSVC or is it just the >> conditions there should use isTargetMingw() && !is64Bit() instead?Attached is a patch that makes the proposed change to isTargetWin32 and also fixes all the previous uses of isTargetWin32. Can you please review it? -- Thanks, Timur> cc'ing graydon about segmented stacks because I know rust uses them. > > -eric >-------------- next part -------------- A non-text attachment was scrubbed... Name: bug_15556_p0.patch Type: application/octet-stream Size: 2391 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130326/ac43c5ae/attachment.obj>
Hi Timur, I myself find the name "Win32" pretty confusing and easy to misuse (especially for someone who assumes that windows == msvc). After all mingw and cygwin is also win32. Maybe we should rename it into isTargetMSVC or something like this? On Wed, Mar 27, 2013 at 6:26 AM, Timur Iskhodzhanov <timurrrr at google.com> wrote:> Anton, > > What do you think? > > 2013/3/20 Eric Christopher <echristo at gmail.com>: >> >> >> >> On Wed, Mar 20, 2013 at 5:21 PM, Timur Iskhodzhanov <timurrrr at google.com> >> wrote: >>> >>> 2013/3/20 Timur Iskhodzhanov <timurrrr at google.com>: >>> > Anton, >>> > >>> > [+Eric, Nick, >>> > the e-mail thread context has been broken a few times, so you should >>> > probably look at the llvmdev archives. >>> > It all starts here: >>> > http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-October/053961.html ] >>> > >>> > So I've decided to make a new attempt to fix this issue. >>> > >>> > We've discussed my patches with Eric and came up with the following >>> > idea: >>> > a) IsTargetWindows should be true for all the targets that execute on >>> > the Windows kernel, including Cygwin, MinGW and MSVC ABIs. >>> > >>> > However, "Windows 32-bit ABI" usually implies "MSVC 32-bit ABI", so >>> > it's Cygwin and MinGW (that are similar more similar to Itanium ABI >>> > than to MSVC ABI) that should be exceptions from the general Win32 >>> > handling code. >>> > >>> > That is, >>> > b) We should add a IsTargetWin32 which is true if the MSVC 32-bit ABI >>> > is used and false for Cygwin+MinGW. >>> FTR, there's already such a method but it is (mis?)used only in >>> lib/Target/X86/X86FrameLowering.cpp for segmented stacks. >>> Are segmented stacks actually used with MSVC or is it just the >>> conditions there should use isTargetMingw() && !is64Bit() instead? > > Attached is a patch that makes the proposed change to isTargetWin32 > and also fixes all the previous uses of isTargetWin32. > Can you please review it? > > -- > Thanks, > Timur > >> cc'ing graydon about segmented stacks because I know rust uses them. >> >> -eric >> > > _______________________________________________ > cfe-dev mailing list > cfe-dev at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev >-- With best regards, Anton Korobeynikov Faculty of Mathematics and Mechanics, Saint Petersburg State University