| /linux/tools/memory-model/Documentation/ |
| H A D | control-dependencies.txt | 6 help you prevent your compiler from breaking your code. However, 9 your own code, even in the absence of help from your compiler. 41 WRITE_ONCE() are optional. Without the READ_ONCE(), the compiler might 43 the compiler might fuse the store to "b" with other stores. Worse yet, 44 the compiler might convert the store into a load and a check followed 45 by a store, and this compiler-generated load would not be ordered by 48 Furthermore, if the compiler is able to prove that the value of variable 56 In particular, although READ_ONCE() does force the compiler to emit a 57 load, it does *not* force the compiler to actually use the loaded value. 90 assembly code, after all of the compiler and link-time optimizations [all …]
|
| H A D | access-marking.txt | 40 any sort of constraint on the compiler's choice of optimizations [3]. 42 compiler's use of code-motion and common-subexpression optimizations. 47 data_race(READ_ONCE(a)), which will both restrict compiler optimizations 97 If it is necessary to both restrict compiler optimizations and disable 121 that provides the compiler much less scope for mischievous optimizations. 158 due to compiler-mangled reads, it can also tolerate the occasional 159 compiler-mangled write, at least assuming that the proper value is in 220 compiler, though one could imagine hardened kernel builds treating the 239 of how the compiler has been prevented from optimizing those accesses 260 As noted earlier, the goal is to prevent the compiler from destroying [all …]
|
| H A D | ordering.txt | 190 compiler might then reasonably decide to transform "x = 1" and "y = 1" 222 The Linux kernel's compiler barrier is barrier(). This primitive 223 prohibits compiler code-motion optimizations that might move memory 226 used to prevent the compiler from moving code across an infinite loop: 233 Without the barrier(), the compiler would be within its rights to move the 432 However, control dependencies are easily destroyed by compiler 460 primitives require the compiler to emit the corresponding store 468 primitives require the compiler to emit the corresponding load 501 and further do not guarantee "atomic" access. For example, the compiler 508 any number of compiler optimizations, many of which can break your [all …]
|
| H A D | simple.txt | 58 locking functions must carefully prevent both the CPU and the compiler 224 no ordering, but they do prevent the compiler from carrying out a number 237 Don't let the compiler trip you up 243 surprising amount of analysis, care, and knowledge about the compiler. 244 Yes, some decades ago it was not unfair to consider a C compiler to be 252 understanding of both the C standard and your compiler. Here are some 255 Who's afraid of a big bad optimizing compiler?
|
| /linux/scripts/ |
| H A D | Kconfig.include | 27 # Return y if the compiler supports <flag>, n otherwise 40 $(error-if,$(failure,command -v $(CC)),C compiler '$(CC)' not found) 43 # Get the C compiler name, version, and error out if it is not supported. 45 $(error-if,$(success,test -z "$(cc-info)"),Sorry$(comma) this C compiler is not supported.) 62 # $(m32-flag): -m32 if the compiler supports it, or an empty string otherwise. 63 # $(m64-flag): -m64 if the compiler supports it, or an empty string otherwise. 68 # Test whether the compiler can link userspace applications 75 # Return y if the Rust compiler supports <flag>, n otherwise
|
| H A D | gfp-translate | 75 // Try to fool compiler.h into not including extra stuff
|
| /linux/scripts/coccinelle/misc/ |
| H A D | uninitialized_var.cocci | 7 /// For any compiler warnings about uninitialized variables, just add 10 /// compiler warnings (e.g. "unused variable"). If the compiler thinks it 11 /// is uninitialized, either simply initialize the variable or make compiler 13 /// obviously redundant, the compiler's dead-store elimination pass will make
|
| /linux/Documentation/RCU/ |
| H A D | rcu_dereference.rst | 40 compiler from deducing the resulting pointer value. Please see 42 for an example where the compiler can in fact deduce the exact 52 The compiler simply knows too much about integral values to 70 "(x-(uintptr_t)x)" for char* pointers. The compiler is within its 109 explained, if the two pointers are equal, the compiler could 117 Because the compiler now knows that the value of "p" is exactly 132 compiler knows that the pointer is NULL, you had better 134 non-equal, the compiler is none the wiser. Therefore, 139 Since there are no subsequent dereferences, the compiler 197 - The pointers are not equal *and* the compiler does [all …]
|
| /linux/Documentation/kbuild/ |
| H A D | gcc-plugins.rst | 10 compiler [1]_. They are useful for runtime instrumentation and static analysis. 16 Plugin source files have to be compilable by a C++ compiler. 39 compiler features that are neither in GCC nor Clang upstream. Once 45 upstream compiler support (in either GCC or Clang). 106 Run gcc (native or cross-compiler) to ensure plugin headers are detected::
|
| /linux/Documentation/ |
| H A D | memory-barriers.txt | 138 appears to be maintained. Similarly, the compiler may also arrange the 243 Whether on DEC Alpha or not, the READ_ONCE() also prevents compiler 268 (*) It _must_not_ be assumed that the compiler will do what you want 270 WRITE_ONCE(). Without them, the compiler is within its rights to 318 in a given bitfield are protected by different locks, the compiler's 360 What is required is some way of intervening to instruct the compiler and the 401 including how compiler transformations can sometimes break address 566 how compiler transformations can sometimes break address dependencies, 643 Documentation/RCU/rcu_dereference.rst file: The compiler can and does break 685 the compiler's ignorance from breaking your code. [all …]
|
| /linux/Documentation/ABI/testing/ |
| H A D | configfs-acpi | 49 - ASCII ASL compiler vendor ID 52 - ASL compiler version
|
| /linux/lib/ |
| H A D | Kconfig.kmsan | 17 uninitialized values in the kernel. It is based on compiler 32 If the compiler supports -fsanitize-memory-param-retval, KMSAN will
|
| H A D | Kconfig.kasan | 68 # this variable to decide how the compiler should treat builtins. 71 The compiler is able to prefix memintrinsics with __asan or __hwasan. 149 Makes the compiler insert function calls that check whether the memory 157 Makes the compiler directly insert memory accessibility checks before
|
| /linux/Documentation/core-api/ |
| H A D | unaligned-memory-access.rst | 83 Fortunately things are not too complex, as in most cases, the compiler 100 Fortunately, the compiler understands the alignment constraints, so in the 102 Therefore, for standard structure types you can always rely on the compiler 106 Similarly, you can also rely on the compiler to align variables and function 126 For a natural alignment scheme, the compiler would only have to add a single 131 structure type. This GCC-specific attribute tells the compiler never to 137 architectural alignment requirements. However, again, the compiler is aware
|
| /linux/Documentation/process/ |
| H A D | volatile-considered-harmful.rst | 40 compiler might think it knows what will be in shared_data, but the 46 necessary. But the compiler would also be prevented from optimizing access 54 by locks, but one also does not want the compiler "optimizing" register 69 hyperthreaded twin processor; it also happens to serve as a compiler
|
| /linux/Documentation/arch/x86/x86_64/ |
| H A D | fsgs.rst | 31 thread and the compiler emits the FS: address prefix for accesses to these 125 FSGSBASE instructions compiler support 139 code and the compiler option -mfsgsbase has to be added. 192 In case the compiler does not support address spaces, inline assembly can
|
| /linux/tools/testing/selftests/net/af_unix/ |
| H A D | Makefile | 2 include $(top_srcdir)/scripts/Makefile.compiler
|
| /linux/include/xen/interface/ |
| H A D | version.h | 29 char compiler[64]; member
|
| /linux/Documentation/networking/ |
| H A D | filter.rst | 51 internal compiler that generates a structure that can eventually be loaded 172 filters use Linux extensions that are not supported by libpcap's compiler, 174 libpcap's compiler, or iv) particular filter codes should be optimized 175 differently than libpcap's internal compiler does; then in such cases 512 JIT compiler 515 The Linux kernel has a built-in BPF JIT compiler for x86_64, SPARC, 517 CONFIG_BPF_JIT. The JIT compiler is transparently invoked for each 547 70 bytes emitted from JIT compiler (pass:3, flen:6) 574 70 bytes emitted from JIT compiler (pass:3, flen:6) 618 toolchain for developing and testing the kernel's JIT compiler. [all …]
|
| /linux/Documentation/dev-tools/ |
| H A D | container.rst | 11 requires a specific version of a compiler or an external test suite. While 76 The container image which would typically include a compiler toolchain is 108 the Containerfile used to create the image. For example, a Clang-only compiler 187 ``kernel.org`` images which are based on the `kernel.org compiler toolchains 225 ``make PREFIX=kernel.org/ extra`` as it's not a compiler toolchain::
|
| /linux/tools/testing/selftests/nolibc/ |
| H A D | Makefile | 6 include $(top_srcdir)/scripts/Makefile.compiler
|
| /linux/tools/testing/selftests/arm64/mte/ |
| H A D | Makefile | 32 $(warning compiler "$(CC)" does not support the ARMv8.5 MTE extension.)
|
| /linux/Documentation/rust/ |
| H A D | arch-support.rst | 6 Currently, the Rust compiler (``rustc``) uses LLVM for code generation,
|
| /linux/Documentation/arch/arm/ |
| H A D | arm.rst | 11 In order to compile ARM Linux, you will need a compiler capable of 13 a good compiler. Fortunately, you needn't guess. The kernel will report 14 an error if your compiler is a recognized offender. 36 CROSS_COMPILE=<your-path-to-your-compiler-without-gcc>
|
| /linux/arch/mips/alchemy/ |
| H A D | Platform | 32 # compiler picks the board one. If they don't, it will make sure
|