- 18 8月, 2023 1 次提交
-
-
由 ChoKyuWon 提交于
Current `-Zinstrument-mcount` for ARM32 use the `\01__gnu_mcount_nc` directly for its instrumentation function. However, the LLVM does not use this mcount function directly, but it wraps it to intrinsic, `llvm.arm.gnu.eabi.mcount` and the transform pass also only handle the intrinsic. As a result, current `-Zinstrument-mcount` not work on ARM32. Refer: https://github.com/namhyung/uftrace/issues/1764 This commit replaces the mcount name from native function to the LLVM intrinsic so that the transform pass can handle it. Signed-off-by: NChoKyuWon <kyuwoncho18@gmail.com>
-
- 04 4月, 2022 1 次提交
-
-
由 Loïc BRANSTETT 提交于
-
- 07 7月, 2021 1 次提交
-
-
由 Josh Triplett 提交于
All eabi targets have target_abi = "eabi". All eabihf targets have target_abi = "eabihf". armv6_unknown_freebsd and armv7_unknown_freebsd have target_abi = "eabihf". All abi64 targets have target_abi = "abi64". All ilp32 targets have target_abi = "ilp32". All softfloat targets have target_abi = "softfloat". All *-uwp-windows-* targets have target_abi = "uwp". All spe targets have target_abi = "spe". All macabi targets have target_abi = "macabi". aarch64-apple-ios-sim has target_abi = "sim". x86_64-fortanix-unknown-sgx has target_abi = "fortanix". x86_64-unknown-linux-gnux32 has target_abi = "x32". Add FIXME entries for targets for which existing values need to change once cfg_target_abi becomes stable. (All of them are tier 3 targets.) Add a test for target_abi in `--print cfg`.
-
- 06 7月, 2021 1 次提交
-
-
由 Simonas Kazlauskas 提交于
It makes very little sense to maintain denylists of ABIs when, as far as non-generic ABIs are concerned, targets usually only support a small subset of the available ABIs. This has historically been a cause of bugs such as us allowing use of the platform-specific ABIs on x86 targets – these in turn would cause LLVM errors or assertions to fire. Fixes #57182 Sponsored by: standard.ai
-
- 11 11月, 2020 1 次提交
-
-
由 Vadim Petrochenkov 提交于
-
- 08 11月, 2020 1 次提交
-
-
由 Vadim Petrochenkov 提交于
`target.target_endian` -> `target.endian` `target.target_c_int_width` -> `target.c_int_width` `target.target_os` -> `target.os` `target.target_env` -> `target.env` `target.target_vendor` -> `target.vendor` `target.target_family` -> `target.os_family` `target.target_mcount` -> `target.mcount`
-
- 07 11月, 2020 6 次提交
-
-
由 Vadim Petrochenkov 提交于
-
由 Vadim Petrochenkov 提交于
-
由 Vadim Petrochenkov 提交于
-
由 Vadim Petrochenkov 提交于
-
由 Vadim Petrochenkov 提交于
-
由 Vadim Petrochenkov 提交于
-
- 15 10月, 2020 1 次提交
-
-
由 est31 提交于
Also change target_pointer_width to pointer_width. Preparation for a subsequent type change of target_pointer_width to an integer together with a rename to pointer_width. On its own, this commit breaks the build. I don't like making build-breaking commits, but in this instance I believe that it makes review easier, as the "real" changes of this PR can be seen much more easily. Result of running: find compiler/rustc_target/src/spec/ -type f -exec sed -i -e 's/target_pointer_width: "\(.*\)"\..*,/pointer_width: \1,/g' {} \;
-
- 06 10月, 2020 1 次提交
-
-
由 Vadim Petrochenkov 提交于
Construction of a built-in target is always infallible now, so `TargetResult` is no longer necessary.
-
- 30 8月, 2020 1 次提交
-
-
由 mark 提交于
-
- 09 7月, 2020 1 次提交
-
-
由 Tamir Duberstein 提交于
Other terms are more inclusive and precise. Clippy still has a lint named "blacklisted-name", but renaming it would be a breaking change, so is left for future work. The target configuration option "abi-blacklist" has been depreciated and renamed to "unsupported-abis". The old name continues to work.
-
- 23 12月, 2019 1 次提交
-
-
由 Mark Rousskov 提交于
-
- 24 7月, 2019 1 次提交
-
-
由 Nikita Popov 提交于
-
- 10 7月, 2019 1 次提交
-
-
由 Nikita Popov 提交于
-
- 31 3月, 2019 1 次提交
-
-
由 Yuki OKUSHI 提交于
-
- 30 3月, 2019 1 次提交
-
-
由 Yuki OKUSHI 提交于
-
- 08 2月, 2019 1 次提交
-
-
由 Taiki Endo 提交于
-
- 26 12月, 2018 1 次提交
-
-
由 Mark Rousskov 提交于
-
- 26 4月, 2018 2 次提交
-
-
由 Irina Popa 提交于
-
由 Irina Popa 提交于
-
- 06 12月, 2017 1 次提交
-
-
由 Oliver Schneider 提交于
-
- 08 10月, 2017 1 次提交
-
-
由 Jorge Aparicio 提交于
As discovered in #44538 ARMv6 devices may or may not support unaligned memory accesses. ARMv6 Linux *seems* to have no problem with unaligned accesses but this is because the kernel is stepping in to fix each unaligned memory access -- this incurs in a performance penalty. This commit enforces aligned memory accesses on all our in-tree ARM targets that may be used with ARMv6 devices. This should improve performance of Rust programs on ARMv6 devices. For the record, clang also applies this attribute when targeting ARMv6 devices that are not running Darwin or NetBSD.
-
- 30 9月, 2017 1 次提交
-
-
由 Daniel Klauer 提交于
(all i32 for now, as in liblibc)
-
- 07 4月, 2017 1 次提交
-
-
由 Jorge Aparicio 提交于
This patch adds a `-Z linker-flavor` flag to rustc which can be used to invoke the linker using a different interface. For example, by default rustc assumes that all the Linux targets will be linked using GCC. This makes it impossible to use LLD as a linker using just `-C linker=ld.lld` because that will invoke LLD with invalid command line arguments. (e.g. rustc will pass -Wl,--gc-sections to LLD but LLD doesn't understand that; --gc-sections would be the right argument) With this patch one can pass `-Z linker-flavor=ld` to rustc to invoke the linker using a LD-like interface. This way, `rustc -C linker=ld.lld -Z linker-flavor=ld` will invoke LLD with the right arguments. `-Z linker-flavor` accepts 4 different arguments: `em` (emcc), `ld`, `gcc`, `msvc` (link.exe). `em`, `gnu` and `msvc` cover all the existing linker interfaces. `ld` is a new flavor for interfacing GNU's ld and LLD. This patch also changes target specifications. `linker-flavor` is now a mandatory field that specifies the *default* linker flavor that the target will use. This change also makes the linker interface *explicit*; before, it used to be derived from other fields like linker-is-gnu, is-like-msvc, is-like-emscripten, etc. Another change to target specifications is that the fields `pre-link-args`, `post-link-args` and `late-link-args` now expect a map from flavor to linker arguments. ``` diff - "pre-link-args": ["-Wl,--as-needed", "-Wl,-z,-noexecstack"], + "pre-link-args": { + "gcc": ["-Wl,--as-needed", "-Wl,-z,-noexecstack"], + "ld": ["--as-needed", "-z,-noexecstack"], + }, ``` [breaking-change] for users of custom targets specifications
-
- 24 10月, 2016 1 次提交
-
-
由 Tim Neumann 提交于
-
- 04 10月, 2016 1 次提交
-
-
由 Jorge Aparicio 提交于
to better express the idea that omitting this field defaults this value to target_pointer_width
-
- 28 7月, 2016 1 次提交
-
-
由 Doug Goldstein 提交于
Change all the target generation functions to return a Result<Target, String> so that targets that are unable to be instantiated can be expressed as an Err instead of a panic!(). This should improve #33497 as well.
-
- 09 5月, 2016 1 次提交
-
-
由 Amanieu d'Antras 提交于
-
- 05 5月, 2016 1 次提交
-
-
由 Alex Crichton 提交于
Right now they're `gnueabihf` and `gnueabi`, but when adding new platforms like musl on ARM it's unfortunate to have to test for all three (`musl`, `musleabi`, and `musleabihf`). This PR switches everything currently to `gnu`, and the new musl targets can also use `musl` when they land. Closes #33244
-
- 19 4月, 2016 1 次提交
-
-
由 Eduard Burtescu 提交于
-
- 24 9月, 2015 1 次提交
-
-
由 Sebastian Wicki 提交于
This adds a new target property, `target_vendor` which can be used as a matcher for conditional compilation. The vendor is part of the autoconf target triple: <arch><sub>-<vendor>-<os>-<env> The default value for `target_vendor` is "unknown". Matching against the `target_vendor` with `#[cfg]` is currently feature gated as `cfg_target_vendor`.
-
- 17 7月, 2015 1 次提交
-
-
由 Alex Crichton 提交于
Turns out for OSX our data layout was subtly wrong and the LLVM update must have exposed this. Instead of fixing this I've removed all data layouts from the compiler to just use the defaults that LLVM provides for all targets. All data layouts (and a number of dead modules) are removed from the compiler here. Custom target specifications can still provide a custom data layout, but it is now an optional key as the default will be used if one isn't specified.
-
- 28 4月, 2015 1 次提交
-
-
由 Alex Crichton 提交于
This adds a new `#[cfg]` matcher against the `target_env` property of the destination target triple. For example all windows triples today end with `-gnu` but we will also hopefully support non-`gnu` targets for Windows, at which point we'll need to differentiate between the two. This new `target_env` matches is provided and filled in with the target's environment name. Currently the only non-empty value of this name is `gnu`, but `musl` will be shortly added for the linux triples.
-
- 08 1月, 2015 1 次提交
-
-
由 Nick Cameron 提交于
Closes #20421 [breaking-change]
-
- 28 12月, 2014 1 次提交
-
-
由 Valerii Hiora 提交于
According to http://llvm.org/docs/LangRef.html#data-layout correct syntax for data layout is `a:<abi>:<pref>` so it looks like `a0:<abi>:<pref>` is either a typo or outdated syntax (as it goes back pretty deep in time)
-