- 23 6月, 2013 6 次提交
-
-
由 Daniel Micay 提交于
This is able to take advantage of the lower bound from the size hint.
-
由 Daniel Micay 提交于
also adds an implementation for the vector iterators
-
由 Daniel Micay 提交于
Fix compiling empty fmt! strings
-
由 Daniel Micay 提交于
accumulated doc pull requests from the queue
-
由 Daniel Micay 提交于
syntax::diagnostics: Color the ^~~~ in green for better visibility
-
由 Alex Crichton 提交于
-
- 22 6月, 2013 16 次提交
-
-
由 Brian Anderson 提交于
-
由 bors 提交于
This is another big refactoring of `trans` though this is unlikely to have much of an impact on code size or speed. The major change here is the implementation of a `Type` struct which is the new home for all your LLVM `TypeRef` needs. It's a simple wrapper struct, with static methods for constructing types, then regular methods for manipulating/interrogating them. The purpose of this is mostly to make the code surrounding them somewhat more ideomatic. A line like: `T_ptr(T_ptr(T_i8()))` is now `Type::i8().ptr_to().ptr_to()`,which is much more like regular Rust code. There are a variety of smaller changes here and there: * Remove address spaces. At least it doesn't generate them, I haven't spent much time looking for related code. * Use a macro for declaring the LLVM intrinsics, makes it look much nicer. * Make the type for a string slice actually create a named `str_slice` type in LLVM, this makes reading the appropriate code much easier. * Change the way struct and enum type names are generated. This just means that a struct like `struct Foo { a: int }` now produces the IR `%struct.Foo = type { i64 }`, which is much easier to read. Similarly, other structs are a bit tighter to make it easier to read. --- --- --- This PR did get away from me a little, as I occasionally got distracted or as I fixed up problems with unrelated code that were stopping me from continuing. One major thing is that this PR contains the work from #7168, since that would have conflicted with this and it was broken anyway. Sorry for bundling it like this. Fixes #3670 and #7063 --- --- --- EDIT: This no longer removes the llvm insn stats.
-
由 James Miller 提交于
-
由 James Miller 提交于
-
由 James Miller 提交于
-
由 James Miller 提交于
-
由 James Miller 提交于
-
由 James Miller 提交于
-
由 James Miller 提交于
-
由 James Miller 提交于
This makes the handling of atomic operations more generic, which does impose a specific naming convention for the intrinsics, but that seems ok with me, rather than having an individual case for each name. It also adds the intrinsics to the the intrinsics file.
-
由 James Miller 提交于
-
由 James Miller 提交于
-
由 James Miller 提交于
-
由 James Miller 提交于
-
由 James Miller 提交于
-
由 bors 提交于
-
- 21 6月, 2013 18 次提交
-
-
由 bors 提交于
The changes in these commits improve the IR codegen by removing unnecessary copies for certain function call arguments and stopping to allocate return values for functions returning nil. They reduce compile times by about 10% in total.
-
由 Björn Steinbrink 提交于
By using "void" instead of "{}" as the LLVM type for nil, we can avoid the alloca/store/load sequence for the return value, resulting in less and simpler IR code. This reduces compile times by about 10%.
-
由 bors 提交于
while cross-compiling, ar in cross toolchains are required. linux is not sensitive so could not see errors.
-
由 bors 提交于
-
由 Daniel Micay 提交于
-
由 Daniel Micay 提交于
-
由 Daniel Micay 提交于
The removed test for issue #2611 is well covered by the `std::iterator` module itself. This adds the `count` method to `IteratorUtil` to replace `EqIter`.
-
由 Daniel Micay 提交于
replaced by the `enumerate` method from std::iterator
-
由 Daniel Micay 提交于
An Iterator implementation can be made for &const [T] if it turns out to be necessary for some use case.
-
由 bors 提交于
This fixes the large number of problems that prevented cross crate methods from ever working. It also fixes a couple lingering bugs with polymorphic default methods and cleans up some of the code paths. Closes #4102. Closes #4103. r? nikomatsakis
-
由 Ralph Bodenner 提交于
-
由 Huon Wilson 提交于
The `extra::fileinput` module landed just after 0.6 was released, and there are many more derivable traits.
-
由 Brian Anderson 提交于
-
由 Joris Rehm 提交于
-
由 Ralph Bodenner 提交于
-
由 Brian Anderson 提交于
-
由 bors 提交于
Introduce support for terminfo's subset of printf-style formatting on doxXs operations. r? @thestinger
-
由 Michael Sullivan 提交于
This fixes the large number of problems that prevented cross crate methods from ever working. It also fixes a couple lingering bugs with polymorphic default methods and cleans up some of the code paths. Closes #4102. Closes #4103.
-