=== modified file 'configure.ac'
--- configure.ac	2013-09-27 15:21:54 +0000
+++ configure.ac	2013-09-27 17:07:20 +0000
@@ -42,14 +42,14 @@
 # might be cross-compiling.
 if test "x$HOSTCXX" = "x"; then
   HOSTCXX="$CXX"
-  if test "x$squid_cv_check_marchnative" = "xyes"; then
-    CXXFLAGS="$CXXFLAGS -march=native"
-  fi
-fi
-if test "x$squid_cv_check_marchnative" = "xyes"; then
-  # always valid for the Host compiler.
-  HOSTCXX="$HOSTCXX -march=native"
-fi
+#  if test "x$squid_cv_check_marchnative" = "xyes"; then
+#    CXXFLAGS="$CXXFLAGS -march=native"
+#  fi
+fi
+#if test "x$squid_cv_check_marchnative" = "xyes"; then
+#  # always valid for the Host compiler.
+#  HOSTCXX="$HOSTCXX -march=native"
+#fi
 AC_SUBST(HOSTCXX)
 
 AC_MSG_CHECKING([simplified host os])

=== modified file 'doc/release-notes/release-3.3.sgml'
--- doc/release-notes/release-3.3.sgml	2013-09-11 01:31:14 +0000
+++ doc/release-notes/release-3.3.sgml	2013-09-29 12:06:06 +0000
@@ -180,6 +180,12 @@
 <sect1>New tags<label id="newtags">
 <p>
 <descrip>
+	<tag>cache_miss_revalidate</tag>
+	<p>Whether Squid is to pass-through If-Modified-Since and If-None-Match headers on cache MISS.
+	   Revalidation requests can prevent cache gathering objects to HIT on.
+	<p>Based on the Squid-2.7 <em>ignore_ims_on_miss</em> feature.
+	<p><em>IMPORTANT:</em> the meaning for on/off values has changed along with the name since 2.7.
+
 	<tag>request_header_add</tag>
 	<p>New directive to add custom headers on HTTP traffic sent to upstream servers.
 
@@ -231,7 +237,8 @@
 <p>
 <descrip>
 
-	<p><em>There are no removed squid.conf options in Squid-3.3.</em>
+	<tag>ignore_ims_on_miss</tag>
+	<p>This option has been replaced by the <em>cache_miss_revalidate</em> feature.
 
 </descrip>
 
@@ -318,9 +325,6 @@
 	<tag>external_refresh_check</tag>
 	<p>Not yet ported from 2.7
 
-	<tag>ignore_ims_on_miss</tag>
-	<p>Not yet ported from 2.7
-
 	<tag>location_rewrite_access</tag>
 	<p>Not yet ported from 2.6
 

=== modified file 'src/SquidConfig.h'
--- src/SquidConfig.h	2013-08-01 20:45:56 +0000
+++ src/SquidConfig.h	2013-09-29 08:52:12 +0000
@@ -337,6 +337,7 @@
         int check_hostnames;
         int allow_underscore;
         int via;
+        int cache_miss_revalidate;
         int emailErrData;
         int httpd_suppress_version_string;
         int global_internal_static;

=== modified file 'src/cache_cf.cc'
--- src/cache_cf.cc	2013-08-29 09:21:53 +0000
+++ src/cache_cf.cc	2013-09-29 09:14:28 +0000
@@ -1013,6 +1013,14 @@
 
     if (!strcmp(name, "log_icap"))
         self_destruct();
+
+    if (!strcmp(name, "ignore_ims_on_miss")) {
+        // the replacement directive cache_revalidate_on_miss has opposite meanings for ON/OFF value
+        // than the 2.7 directive. We need to parse and invert the configured value.
+        int temp = 0;
+        parse_onoff(&temp);
+        Config.onoff.cache_miss_revalidate = !temp;
+    }
 }
 
 /* Parse a time specification from the config file.  Store the

=== modified file 'src/cf.data.pre'
--- src/cf.data.pre	2013-08-29 09:21:53 +0000
+++ src/cf.data.pre	2013-09-29 09:15:12 +0000
@@ -148,12 +148,6 @@
 	This option is not yet supported by Squid-3.
 DOC_END
 
-NAME: ignore_ims_on_miss
-TYPE: obsolete
-DOC_START
-	This option is not yet supported by Squid-3.
-DOC_END
-
 NAME: location_rewrite_program location_rewrite_access location_rewrite_children location_rewrite_concurrency
 TYPE: obsolete
 DOC_START
@@ -166,7 +160,12 @@
 	This option is not yet supported by Squid-3.
 DOC_END
 
-# no Options Removed in 3.3
+# Options Removed in 3.3
+NAME: ignore_ims_on_miss
+TYPE: obsolete
+DOC_START
+	Remove this line. The HTTP/1.1 feature is now fully supported by default.
+DOC_END
 
 # Options Removed in 3.2
 NAME: ignore_expect_100
@@ -7310,6 +7309,25 @@
 	acts on cacheable requests.
 DOC_END
 
+NAME: cache_miss_revalidate
+COMMENT: on|off
+TYPE: onoff
+DEFAULT: on
+LOC: Config.onoff.cache_miss_revalidate
+DOC_START
+	Whether Squid on cache MISS will pass client revalidation requests
+	to the server or tries to fetch new content for caching.
+	This is useful while the cache is mostly empty to more quickly
+	have the cache populated.
+
+	When set to 'on' (default), Squid will pass all client If-* headers
+	to the server.
+
+	When set to 'off' and if the request is cacheable, Squid will
+	remove the clients If-Modified-Since and If-None-Match headers from
+	the request sent to the server.
+DOC_END
+
 NAME: always_direct
 TYPE: acl_access
 LOC: Config.accessList.AlwaysDirect

=== modified file 'src/http.cc'
--- src/http.cc	2013-07-16 00:13:03 +0000
+++ src/http.cc	2013-09-29 11:22:17 +0000
@@ -1966,12 +1966,30 @@
 
     case HDR_IF_MODIFIED_SINCE:
         /** \par If-Modified-Since:
-        * append unless we added our own;
-         * \note at most one client's ims header can pass through */
+         * append unless we added our own,
+         * but only if cache_miss_revalidate is enabled, or
+         *  the request is not cacheable, or
+         *  the request contains authentication credentials.
+         * \note at most one client's If-Modified-Since header can pass through
+         */
+        // XXX: need to check and cleanup the auth case so cacheable auth requests get cached.
+        if (hdr_out->has(HDR_IF_MODIFIED_SINCE))
+            break;
+        else if (Config.onoff.cache_miss_revalidate || !request->flags.cachable || request->flags.auth)
+                hdr_out->addEntry(e->clone());
+        break;
 
-        if (!hdr_out->has(HDR_IF_MODIFIED_SINCE))
+    case HDR_IF_NONE_MATCH:
+        /** \par If-None-Match:
+         * append if the wildcard '*' special case value is present, or
+         *   cache_miss_revalidate is disabled, or
+         *   the request is not cacheable in this proxy, or
+         *   the request contains authentication credentials.
+         * \note this header lists a set of responses for the server to elide sending. Squid added values are extending that set.
+         */
+        // XXX: need to check and cleanup the auth case so cacheable auth requests get cached.
+        if (hdr_out->hasListMember(HDR_IF_MATCH, "*", ',') || Config.onoff.cache_miss_revalidate || !request->flags.cachable || request->flags.auth)
             hdr_out->addEntry(e->clone());
-
         break;
 
     case HDR_MAX_FORWARDS: