Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(182)

Unified Diff: SConstruct

Issue 652114: Add the ability to compile with profiler guided optimizations on Windows... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 10 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: SConstruct
===================================================================
--- SConstruct (revision 3927)
+++ SConstruct (working copy)
@@ -255,8 +255,16 @@
},
'msvcltcg:on': {
'CCFLAGS': ['/GL'],
- 'LINKFLAGS': ['/LTCG'],
'ARFLAGS': ['/LTCG'],
+ 'pgo:off': {
+ 'LINKFLAGS': ['/LTCG'],
+ },
+ 'pgo:instrument': {
+ 'LINKFLAGS': ['/LTCG:PGI']
+ },
+ 'pgo:optimize': {
+ 'LINKFLAGS': ['/LTCG:PGO']
+ }
}
}
}
@@ -527,7 +535,15 @@
},
'msvcltcg:on': {
'CCFLAGS': ['/GL'],
- 'LINKFLAGS': ['/LTCG'],
+ 'pgo:off': {
+ 'LINKFLAGS': ['/LTCG'],
+ },
+ },
+ 'pgo:instrument': {
+ 'LINKFLAGS': ['/LTCG:PGI']
+ },
+ 'pgo:optimize': {
+ 'LINKFLAGS': ['/LTCG:PGO']
}
},
'arch:ia32': {
@@ -711,6 +727,11 @@
'values': ['arm', 'thumb2', 'none'],
'default': 'none',
'help': 'generate thumb2 instructions instead of arm instructions (default)'
+ },
+ 'pgo': {
+ 'values': ['off', 'instrument', 'optimize'],
+ 'default': 'off',
+ 'help': 'select profile guided optimization variant',
}
}
@@ -798,6 +819,8 @@
Abort("Shared Object soname not applicable for Windows.")
if env['soname'] == 'on' and env['library'] == 'static':
Abort("Shared Object soname not applicable for static library.")
+ if env['os'] != 'win32' and env['pgo'] != 'off':
+ Abort("Profile guided optimization only supported on Windows.")
for (name, option) in SIMPLE_OPTIONS.iteritems():
if (not option.get('default')) and (name not in ARGUMENTS):
message = ("A value for option %s must be specified (%s)." %
@@ -883,7 +906,7 @@
env['ENV'] = self.env_overrides
-def PostprocessOptions(options):
+def PostprocessOptions(options, os):
# Adjust architecture if the simulator option has been set
if (options['simulator'] != 'none') and (options['arch'] != options['simulator']):
if 'arch' in ARGUMENTS:
@@ -894,6 +917,10 @@
# Print a warning if profiling is enabled without profiling support
print "Warning: forcing profilingsupport on when prof is on"
options['profilingsupport'] = 'on'
+ if os == 'win32' and options['pgo'] != 'off' and options['msvcltcg'] == 'off':
+ if 'msvcltcg' in ARGUMENTS:
+ print "Warning: forcing msvcltcg on as it is required for pgo (%s)" % options['pgo']
+ options['msvcltcg'] = 'on'
if (options['armvariant'] == 'none' and options['arch'] == 'arm'):
options['armvariant'] = 'arm'
if (options['armvariant'] != 'none' and options['arch'] != 'arm'):
@@ -924,7 +951,7 @@
options = {'mode': mode}
for option in SIMPLE_OPTIONS:
options[option] = env[option]
- PostprocessOptions(options)
+ PostprocessOptions(options, env['os'])
context = BuildContext(options, env_overrides, samples=SplitList(env['sample']))
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698