Hi all, This patch improves compilation times for code using the arm_neon.h intrinsics. The problem there is that since we now wrap all the intrinsics in arm_neon.h inside a pragma, the midend will apply the pragma string onto every single intrinsic as an attribute, calling the target attribute parsing code thousands of times on the same string. I've seen this cause slowdown on large intrinsics programs in the area of 3-5%. This patch checks if the ARGS we're supposed to process is the same as the prgma already processed by the pragma processing code in aarch64-c.c. If it is, then we know that the correct target node is already set in target_option_current_node, so we can just reuse that, saving us the trouble of parsing the string. This gets compilation times for large intrinsic programs to the previous levels. We still get a compile-time hit on small programs due to grokdeclarator in the frontend appearing high in the profile due to the pragma use, I presume. But for large programs we should be good. The compilation time will be dominated by the other parts of the compiler. In any case, for small programs, garbage collection is at the top of the profile in either case. Bootstrapped and tested on aarch64. Ok for trunk? Thanks, Kyrill 2015-07-16 Kyrylo Tkachov * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p): Exit early and use target_option_current_node if processing current pragma.