Tcl UDP

Check-in [50e2268a77]
Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to tclconference@googlegroups.com
or submit via the online form by Sep 9.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Enable optimizations for nmake builds
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:50e2268a7783ced0355f5591e4be156e4842c276
User & Date: apnadkarni 2017-09-16 12:25:00
Context
2017-12-14
11:40
Merge vc-reform: new nmake build system check-in: 662e3bac62 user: apnadkarni tags: trunk
2017-11-28
14:53
Pulling changes from trunk Leaf check-in: 97b3bd3fc7 user: seandeelywoods tags: practcl
2017-09-30
03:47
Create new branch named "vc-reform" check-in: 63d7979801 user: apnadkarni tags: vc-reform
2017-09-16
12:25
Enable optimizations for nmake builds check-in: 50e2268a77 user: apnadkarni tags: trunk
2017-08-28
14:16
Merged nmake build changes check-in: bf7683880f user: apnadkarni tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to win/rules.vc.

     1         -#------------------------------------------------------------------------------
            1  +
     2      2   # rules.vc --
     3      3   #
     4      4   #	Microsoft Visual C++ makefile include for decoding the commandline
     5      5   #	macros.  This file does not need editing to build Tcl.
     6      6   #
     7      7   # See the file "license.terms" for information on usage and redistribution
     8      8   # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
................................................................................
   109    109   !endif
   110    110   
   111    111   #----------------------------------------------------------
   112    112   # Test for compiler features
   113    113   #----------------------------------------------------------
   114    114   
   115    115   ### test for optimizations
   116         -!if [nmakehlp -c -Ot]
          116  +!if [nmakehlp -c -O2]
   117    117   !message *** Compiler has 'Optimizations'
   118    118   OPTIMIZING	= 1
   119    119   !else
   120    120   !message *** Compiler does not have 'Optimizations'
   121    121   OPTIMIZING	= 0
   122    122   !endif
   123    123   
   124         -OPTIMIZATIONS   =
          124  +# /O2 optimization includes /Og /Oi /Ot /Oy /Ob2 /Gs /GF /Gy as per
          125  +# documentation. Note we do NOT want /Gs as that inserts a _chkstk
          126  +# stack probe at *every* function entry, not just those with more than
          127  +# a page of stack allocation resulting in a performance hit.  However,
          128  +# /O2 documentation is misleading as its stack probes are simply the
          129  +# default page size locals allocation probes and not what is implied
          130  +# by an explicit /Gs option.
   125    131   
   126         -!if [nmakehlp -c -Ot]
   127         -OPTIMIZATIONS  = $(OPTIMIZATIONS) -Ot
   128         -!endif
          132  +OPTIMIZATIONS   = -O2
   129    133   
   130         -!if [nmakehlp -c -Oi]
   131         -OPTIMIZATIONS  = $(OPTIMIZATIONS) -Oi
   132         -!endif
   133         -
          134  +# -Op improves float consistency. Note only needed for older compilers
          135  +# Newer compilers do not need or support this option.
   134    136   !if [nmakehlp -c -Op]
   135    137   OPTIMIZATIONS  = $(OPTIMIZATIONS) -Op
   136    138   !endif
   137    139   
          140  +# Strict floating point semantics
   138    141   !if [nmakehlp -c -fp:strict]
   139    142   OPTIMIZATIONS  = $(OPTIMIZATIONS) -fp:strict
   140    143   !endif
   141    144   
   142         -!if [nmakehlp -c -Gs]
   143         -OPTIMIZATIONS  = $(OPTIMIZATIONS) -Gs
   144         -!endif
   145         -
          145  +# Enable security checks for buffer overflows
   146    146   !if [nmakehlp -c -GS]
   147    147   OPTIMIZATIONS  = $(OPTIMIZATIONS) -GS
   148    148   !endif
   149    149   
          150  +# Whole program optimization. Note this makes the generated libraries
          151  +# potentially incompatible with other versions of Visual C++
   150    152   !if [nmakehlp -c -GL]
   151    153   OPTIMIZATIONS  = $(OPTIMIZATIONS) -GL
   152    154   !endif
   153    155   
   154    156   DEBUGFLAGS     =
   155    157   
   156    158   !if [nmakehlp -c -RTC1]