Commit Graph

422 Commits

Author SHA1 Message Date
antoyo
669359530e
Add missing cast and change some bitcasts to casts to avoid a gimple verification failure (#100) 2021-10-11 10:56:08 -04:00
bors
775b6daf0f Auto merge of #89597 - michaelwoerister:improve-vtable-debuginfo, r=wesleywiser
Create more accurate debuginfo for vtables.

Before this PR all vtables would have the same name (`"vtable"`) in debuginfo. Now they get an unambiguous name that identifies the implementing type and the trait that is being implemented.

This is only one of several possible improvements:
- This PR describes vtables as arrays of `*const u8` pointers. It would nice to describe them as structs where function pointer is represented by a field with a name indicative of the method it maps to. However, this requires coming up with a naming scheme that avoids clashes between methods with the same name (which is possible if the vtable contains multiple traits).
- The PR does not update the debuginfo we generate for the vtable-pointer field in a fat `dyn` pointer. Right now there does not seem to be an easy way of getting ahold of a vtable-layout without also knowing the concrete self-type of a trait object.

r? `@wesleywiser`
2021-10-11 04:31:47 +00:00
Michael Woerister
7033f75a49 Create more accurate debuginfo for vtables.
Before this commit all vtables would have the same name "vtable" in
debuginfo. Now they get a name that identifies the implementing type
and the trait that is being implemented.
2021-10-08 10:33:47 +02:00
Camille GILLOT
583170aec8 Move rustc_middle::middle::cstore to rustc_session. 2021-10-03 16:08:51 +02:00
Camille GILLOT
27a819ebc7 Rebase fallout. 2021-09-30 20:22:42 +02:00
antoyo
cd4810de42
Fix warnings (#98) 2021-09-28 09:32:54 -04:00
antoyo
9809f5d219
Update to nightly-2021-09-28 (#97) 2021-09-28 09:18:27 -04:00
antoyo
11c2023ef5
Fix/count trailing zeroes (#95)
* Fix count trailing zeroes
* Fix pop count
* Fix bit reverse
2021-09-27 20:35:45 -04:00
antoyo
63608ac6b3
Fix/mismatch types (#94)
* Refactor test.sh script

* Fix mismatched types error
2021-09-27 19:31:24 -04:00
antoyo
ab4ff2dfe0
Cleanup fix for global initialization (#93)
* Cleanup fix for global initialization
* Remove linker script hack
* Use v0 symbol mangling
* Fix warnings
2021-09-27 09:34:06 -04:00
antoyo
64c561dc22
Fix global initialization (#91)
* Make define_global() return a RValue directly
* Return LValue in functions declaring a global variable
* Remove useless cast
* Fix bytes_in_context to use an array rvalue
* Remove global_names which is unused
* Make const_struct create a constant struct
* Correctly initialize global in static_addr_of_mut
* Fix global variable initialization
* Remove workaround for ARGV
2021-09-26 12:20:02 -04:00
Commeownist
4e7e822f39
Impove handling of registers in inline asm (#82)
* Correctly handle st(0) register in the clobbers list
* Gate the clobbers based on enabled target features
2021-09-26 09:30:45 -04:00
antoyo
0f4b616a08
Add notes for cross-compilation to gcc-only targets (#68) 2021-09-26 00:06:42 -04:00
Commeownist
48d60ab7c5
Update to nightly-2021-09-11 (#79)
* Implement `black_box` as intrinsic

Responsibility of implementing the black box is now lies on backend

* Remove some TODOs

* Update to nightly-2021-09-17

* CI: don't fail on warnings
2021-09-17 17:19:25 -04:00
Emerson Laurentino
8ec7976ced
fix: gh origin on readme (#83) 2021-09-16 21:47:19 -04:00
Antoni Boucher
4d3dcd414c Remove FUNDING.yml 2021-09-16 07:37:23 -04:00
Commeownist
7c707e4b95
Implement basic inline asm support (#72)
* Implement basic support for inline assembly

* Disable LTO

We don't support it yet at all

* Handle `inout(reg) var` correctly

Turns out that `+` readwrite output registers cannot be tied with
input variables.

* Add limited support for llvm_asm!

* Handle CHANNEL correctly

* Add support for arbitrary explicit registers

* Handle symbols properly

* Add rudimentary asm tests

* Exclude llvm_asm! tests from tests runs

* Insert `__builtin_unreachable()` after diverging asm blocks
2021-09-05 11:26:01 -04:00
antoyo
5dad13cc3b
Update custom rustc instructions (#73) 2021-08-28 11:34:47 -04:00
Antoni Boucher
6f50986667 Empty gcc_path 2021-08-15 10:54:12 -04:00
antoyo
e228f0c16e
Cleanup (#67) 2021-08-15 08:28:46 -04:00
antoyo
0c89065b93
Update to nightly-2021-08-12 (#61) 2021-08-14 10:05:49 -04:00
Antoni Boucher
afae271d5d Initial commit 2021-08-12 21:46:50 -04:00