- 06 1月, 2018 1 次提交
-
-
由 Simonas Kazlauskas 提交于
This is only applicable when neither of --emit=llvm-ir or --emit=llvm-bc are not requested. In case either of these outputs are wanted, but the benefits of such context are desired as well, -Zfewer_names option provides the same functionality regardless of the outputs requested.
-
- 04 1月, 2018 3 次提交
-
-
由 Björn Steinbrink 提交于
-
由 Björn Steinbrink 提交于
Refs #46437
-
由 Björn Steinbrink 提交于
The function was added as a wrapper to handle compatibility with older LLVM versions that we no longer support, so it can be removed. Refs #46437
-
- 13 12月, 2017 1 次提交
-
-
由 varkor 提交于
`LLVMRustMetadataAsValue` would previously return `void`, despite the corresponding Rust function expecting to return a `ValueRef`.
-
- 06 12月, 2017 1 次提交
-
-
由 Oliver Schneider 提交于
-
- 02 12月, 2017 1 次提交
-
-
由 Josh Stone 提交于
We bumped the minimum LLVM to 3.9 in #45326. This just cleans up the conditional code in the rustllvm C++ wrappers to assume at least 3.9.
-
- 21 11月, 2017 1 次提交
-
-
由 Robin Kruppe 提交于
This makes it more robust when assertions are disabled, crashing instead of causing UB. Also introduces a tidy check to enforce this rule, which in turn necessitated making tidy run on src/rustllvm. Fixes #44020
-
- 19 11月, 2017 2 次提交
-
-
由 Eduard-Mihai Burtescu 提交于
-
由 Eduard-Mihai Burtescu 提交于
-
- 08 11月, 2017 2 次提交
-
-
由 Robin Kruppe 提交于
-
由 Robin Kruppe 提交于
This affects regular code generation as well as constant evaluation in trans, but not the HIR constant evaluator because that one returns an error for overflowing casts and NaN-to-int casts. That error is conservatively correct and we should be careful to not accept more code in constant expressions. The changes to code generation are guarded by a new -Z flag, to be able to evaluate the performance impact. The trans constant evaluation changes are unconditional because they have no run time impact and don't affect type checking either.
-
- 10 10月, 2017 1 次提交
-
-
由 Aidan Hobson Sayers 提交于
This is a big hammer, but should be effective at completely removing a few issues, including inconsistent error messages and segfaults when LLVM workers race to report results LLVM_THREAD_LOCAL has been present in LLVM since 8 months before 3.7 (the earliest supported LLVM version that Rust can use) Maybe fixes #43402 (third time lucky?)
-
- 30 9月, 2017 1 次提交
-
-
由 Alex Crichton 提交于
This commit is a refactoring of the LTO backend in Rust to support compilations with multiple codegen units. The immediate result of this PR is to remove the artificial error emitted by rustc about `-C lto -C codegen-units-8`, but longer term this is intended to lay the groundwork for LTO with incremental compilation and ultimately be the underpinning of ThinLTO support. The problem here that needed solving is that when rustc is producing multiple codegen units in one compilation LTO needs to merge them all together. Previously only upstream dependencies were merged and it was inherently relied on that there was only one local codegen unit. Supporting this involved refactoring the optimization backend architecture for rustc, namely splitting the `optimize_and_codegen` function into `optimize` and `codegen`. After an LLVM module has been optimized it may be blocked and queued up for LTO, and only after LTO are modules code generated. Non-LTO compilations should look the same as they do today backend-wise, we'll spin up a thread for each codegen unit and optimize/codegen in that thread. LTO compilations will, however, send the LLVM module back to the coordinator thread once optimizations have finished. When all LLVM modules have finished optimizing the coordinator will invoke the LTO backend, producing a further list of LLVM modules. Currently this is always a list of one LLVM module. The coordinator then spawns further work to run LTO and code generation passes over each module. In the course of this refactoring a number of other pieces were refactored: * Management of the bytecode encoding in rlibs was centralized into one module instead of being scattered across LTO and linking. * Some internal refactorings on the link stage of the compiler was done to work directly from `CompiledModule` structures instead of lists of paths. * The trans time-graph output was tweaked a little to include a name on each bar and inflate the size of the bars a little
-
- 22 7月, 2017 2 次提交
-
-
由 Alex Crichton 提交于
-
由 Tim Neumann 提交于
-
- 21 7月, 2017 4 次提交
-
-
由 Tim Neumann 提交于
-
由 Tim Neumann 提交于
-
由 Tim Neumann 提交于
-
由 Tim Neumann 提交于
-
- 28 5月, 2017 1 次提交
-
-
由 Ariel Ben-Yehuda 提交于
-
- 01 5月, 2017 1 次提交
-
-
由 whitequark 提交于
When -Z profile is passed, the GCDAProfiling LLVM pass is added to the pipeline, which uses debug information to instrument the IR. After compiling with -Z profile, the $(OUT_DIR)/$(CRATE_NAME).gcno file is created, containing initial profiling information. After running the program built, the $(OUT_DIR)/$(CRATE_NAME).gcda file is created, containing branch counters. The created *.gcno and *.gcda files can be processed using the "llvm-cov gcov" and "lcov" tools. The profiling data LLVM generates does not faithfully follow the GCC's format for *.gcno and *.gcda files, and so it will probably not work with other tools (such as gcov itself) that consume these files.
-
- 13 4月, 2017 1 次提交
-
-
由 A.J. Gardner 提交于
-
- 17 3月, 2017 3 次提交
-
-
由 Tim Neumann 提交于
-
由 Tim Neumann 提交于
-
由 Tim Neumann 提交于
-
- 12 2月, 2017 1 次提交
-
-
由 Matt Ickstadt 提交于
-
- 11 2月, 2017 1 次提交
-
-
由 Simonas Kazlauskas 提交于
-
- 09 2月, 2017 1 次提交
-
-
由 Jorge Aparicio 提交于
-
- 05 2月, 2017 1 次提交
-
-
由 Tom Tromey 提交于
This changes rustc to emit DW_AT_main_subprogram on the "main" program. This lets gdb suitably stop at the user's main in response to "start" (rather than the library's main, which is what happens currently). Fixes #32620 r? michaelwoerister
-
- 04 2月, 2017 2 次提交
-
-
由 Dylan McKay 提交于
LLVM 4.0 changes this. This change is fine to make for LLVM 3.9 as we won't have alignments greater than 2^32-1.
-
由 Dylan McKay 提交于
Instead of directly creating a 'DIGlobalVariable', we now have to create a 'DIGlobalVariableExpression' which itself contains a reference to a 'DIGlobalVariable'. This is a straightforward change. In the future, we should rename 'DIGlobalVariable' in the FFI bindings, assuming we will only refer to 'DIGlobalVariableExpression' and not 'DIGlobalVariable'.
-
- 27 1月, 2017 1 次提交
-
-
由 Simonas Kazlauskas 提交于
LLVM Core C bindings provide this function for all the versions back to what we support (3.7), and helps to avoid this unnecessary builder->function transition every time. Also a negative diff.
-
- 14 1月, 2017 1 次提交
-
-
由 Ruud van Asseldonk 提交于
These switch statements cover all possible values, so the default case is dead code (it contains an llvm_unreachable anyway), triggering a -Wcovered-switch-default warning. Moving the unreachable after the switch resolves these warnings. This keeps the build output clean.
-
- 01 1月, 2017 1 次提交
-
-
由 Ian Kerins 提交于
As per the LLVM style guide, use CamelCase for all locals and classes, and camelCase for all non-FFI functions. Also, make names of variables of commonly used types more consistent. Fixes #38688.
-
- 30 12月, 2016 4 次提交
-
-
由 karpinski 提交于
-
由 karpinski 提交于
-
由 Simonas Kazlauskas 提交于
This commit includes manual merge conflict resolution changes from a rebase by @est31.
-
由 Simonas Kazlauskas 提交于
Fixes rebase fallout, makes code correct in presence of 128-bit constants. This commit includes manual merge conflict resolution changes from a rebase by @est31.
-
- 22 12月, 2016 1 次提交
-
-
由 Ivan Molodetskikh 提交于
-