Brian Anderson
f05a91a0dc
Rename std::ivec to std::vec
2011-08-16 10:36:19 -07:00
Lindsey Kuper
f91351aaf6
The wonky for...in... whitespace was bothering me. Sorry!
2011-08-15 22:19:50 -07:00
Rafael Ávila de Espíndola
6402b63b4f
Use the new C API for PassManagerBuilder.
2011-08-11 19:09:52 -04:00
Rafael Ávila de Espíndola
4cee063976
Update for llvm api change.
2011-08-11 14:58:30 -07:00
Erick Tryzelaar
8b15045224
Port the compiler to the ivec type [T] syntax.
2011-08-09 15:53:26 -07:00
Marijn Haverbeke
30d2e358be
Replace obj dtors with resources in stdlib and rustc
2011-07-29 14:03:24 +02:00
Marijn Haverbeke
2593c50e75
Re-format some obj dtors that were messed up by the pretty-printer
2011-07-27 16:52:49 +02:00
Marijn Haverbeke
6e2a7bff7f
Fix damage done by the pretty-printer
2011-07-27 15:54:33 +02:00
Marijn Haverbeke
df7f21db09
Reformat for new syntax
2011-07-27 15:54:33 +02:00
Marijn Haverbeke
5cdb010fae
Remove typechecker work-arounds now that I know how
2011-07-22 20:15:46 +02:00
Marijn Haverbeke
b45d973552
Rewrite trans_cast, float->float and float->int casts
2011-07-22 13:10:59 +02:00
Brian Anderson
c40d6265ce
Support x86 stdcall convention
...
This allows rust to call the Win32 API
2011-07-18 13:56:15 -07:00
Rafael Ávila de Espíndola
c124a025bf
Move rustc to the new llvm type system. Requires an update to llvm trunk.
2011-07-14 15:19:17 -04:00
Graydon Hoare
39151f2ad8
Prohibit trailing whitespace under 'tidy' script. Clean up all caught cases.
2011-07-13 15:44:09 -07:00
Patrick Walton
edf8245273
rustc: Make trans use interior vectors
2011-07-07 18:39:05 -07:00
Marijn Haverbeke
7661c08496
Remove temporary stdlib placeholders, use actual stdlib functions
...
(Possible now that a snapshot took place.)
2011-07-06 16:46:17 +02:00
Marijn Haverbeke
6fd6fdea93
Move everything syntax-related to syntax/, break deps on rest of compiler
...
src/comp/syntax is currently just a sub-module of rustc, but it will,
in the near future, be its own crate. This includes:
- The AST data structure
- The parser
- The pretty-printer
- Visit, walk, and fold
- The syntax extension system
- Some utility stuff that should be in the stdlib*
*) Stdlib extensions currently require a snapshot before they can be
used, and the win build is very broken right now. This is temporary
and will be cleaned up when one of those problems goes away.
A lot of code was moved by this patch, mostly towards a more organized
layout. Some package paths did get longer, and I guess the new layout
will take some getting used to. Sorry about that!
Please try not to re-introduce any dependencies in syntax/ on any of
the other src/comp/ subdirs.
2011-07-05 15:57:21 +02:00
Rafael Ávila de Espíndola
b669430f72
Use metadata to avoid always passing -Lrustllvm to the linker.
2011-07-04 13:22:23 -04:00
Tim Chevalier
f0fad0dca5
Add a function that determines whether the block is terminated
2011-07-02 22:02:08 -07:00
Marijn Haverbeke
86f16b90cd
Support type parameters in resources
...
Some rather dodgy code was added to trans in the process. I'd love to
discuss it with someone who knows more about types during translation.
2011-06-30 18:36:12 +02:00
Rafael Ávila de Espíndola
64513808ca
Use fast regalloc and codegen at OptLevel=0.
2011-06-22 16:50:30 -04:00
Rafael Ávila de Espíndola
28d1626221
Remove the old library names. These were unused since rustboot.
...
Right now rustc hardcodes -lrustllvm. The idea is to instead remember all the native
modules used and convert them to -l directives to the linker. In the case of a
library that is installed in an unusual location, Graydon suggested using metadata:
native module foo = "bar" {
}
2011-06-20 18:09:24 -04:00
Rafael Ávila de Espíndola
698022d351
Update rust to build with newer llvm versions.
2011-06-08 14:08:24 -04:00
Lindsey Kuper
dc9d5e1689
Lots of comments, and some more descriptive names.
2011-05-27 18:20:43 -07:00
Eric Holk
41b3979990
Nicer printer of LLVM array types.
2011-05-20 16:51:08 -07:00
Marijn Haverbeke
09d8ef8d51
Finally rename std::_xxx to std::xxx
...
Except for _task, which is still a keyword.
2011-05-17 20:41:41 +02:00
Graydon Hoare
fbbc1a77d2
Rewrite everything to use [] instead of vec() in value position.
2011-05-16 18:21:22 -07:00
Marijn Haverbeke
3816e57fd2
Downcase std modules again, move to :: for module dereferencing
...
This should be a snapshot transition.
2011-05-12 21:30:44 +02:00
Graydon Hoare
d6f1fcff6b
Add --time-llvm-passes.
2011-05-10 16:10:08 -07:00
Patrick Walton
bc879a4e1e
rustc: Replace our homebrew list of passes with the standard function and module passes, along with the TargetData passes.
2011-05-09 11:44:47 -07:00
Graydon Hoare
db3b9a4992
Stop stringifying integers to get integral constants.
2011-05-07 18:54:23 +00:00
Patrick Walton
c624ed72b1
rustc: Uncomment LLVMAddStandardPasses, now that we have a native glue that supports 8 arguments.
2011-05-06 14:22:17 -07:00
Marijn Haverbeke
a3ec0b1f64
Rename std modules to be camelcased
...
(Have fun mergining your stuff with this.)
2011-05-06 22:51:19 +02:00
Patrick Walton
d089d9f9ed
rustllvm: Add a binding to the LLVM standard module passes
2011-05-06 12:38:00 -07:00
Kelly Wilson
b4a0d891c0
Ge the host triple using LLVM. Fix a few 'mutable' warnings also.
2011-05-06 11:30:39 -07:00
Patrick Walton
5fb6e6364b
rustc: Add a binding to LLVM's bitcode parser
2011-05-05 11:34:45 -07:00
Patrick Walton
729648282b
rustllvm: Add bindings to the LLVM linker
2011-05-04 21:27:00 -07:00
Patrick Walton
147a2d655f
Un-revert "Use different syntax for checks that matter to typestate", fixing the problem.
...
This reverts commit d08b443fff
.
2011-05-02 17:50:46 -07:00
Graydon Hoare
d08b443fff
Revert "Use different syntax for checks that matter to typestate"
...
This reverts commit aa25f22f19
. It broke stage2, not sure why yet.
2011-05-02 17:35:33 -07:00
Tim Chevalier
aa25f22f19
Use different syntax for checks that matter to typestate
...
This giant commit changes the syntax of Rust to use "assert" for
"check" expressions that didn't mean anything to the typestate
system, and continue using "check" for checks that are used as
part of typestate checking.
Most of the changes are just replacing "check" with "assert" in test
cases and rustc.
2011-05-02 12:16:29 -07:00
Patrick Walton
64a5afadf3
rustc: Add constants for LLVM function attributes
2011-04-29 16:58:49 -07:00
Patrick Walton
37b5e91544
rustc: Assert that each basic block isn't terminated before adding instructions to it
2011-04-19 10:40:38 -07:00
Marijn Haverbeke
6511d471ba
replace error logging with log_err in stdlib and rustc
2011-04-19 16:57:13 +02:00
Rafael Ávila de Espíndola
f12998e5d7
Add a -c option.
2011-04-18 10:02:52 -04:00
Rafael Ávila de Espíndola
2214b6835d
Add a -S option for producing assembly. I will move more of it to
...
rust once the necessary APIs are available in C.
2011-04-15 17:41:14 -04:00
Rafael Ávila de Espíndola
e7b8db2e63
Enable alias analysis and the function attributes pass.
...
The C API extension is already upstream, we can drop the local copy once
the bots are updated.
2011-04-13 13:54:08 -04:00
Rafael Ávila de Espíndola
dd6fc607a4
Enable more optimizations.
2011-04-12 15:33:39 -04:00
Rafael Ávila de Espíndola
25320da099
Run optimizations.
...
It is always on for now just to make sure the bots are happy. If they
are, I will add a -O option and update the makefile.
2011-04-07 12:12:21 -04:00
Graydon Hoare
643a75b86e
Add visibility enum values to lib.llvm.
2011-03-26 17:36:26 -07:00
Graydon Hoare
027368b885
Janitorial: move llvmext back to llvm module, as they're the same thing now.
2011-03-25 18:45:00 -07:00
Graydon Hoare
b2427509e2
Another go at changing compile-command, this time using RBUILD env var.
2011-03-25 15:07:27 -07:00
Graydon Hoare
91c2b82b09
Revert "Bulk-edit compile commands in emacs chatter to point to assumed build/ dir off src root."
...
This reverts commit 846f2e2ba9
.
2011-03-25 14:05:38 -07:00
Graydon Hoare
846f2e2ba9
Bulk-edit compile commands in emacs chatter to point to assumed build/ dir off src root.
2011-03-25 13:48:37 -07:00
Patrick Walton
4c5ab05741
rustc: Switch over to using rustllvm.dll exclusively, ending the "Franken-LLVM" problem
2011-03-23 17:48:53 -07:00
Patrick Walton
1d8b0e8f8a
rustc: Remove the memory-managed interface to LLVM memory buffers; passing them around transfers ownership
2011-03-15 18:08:30 -07:00
Patrick Walton
736969f9fe
rustc: Add support for LLVM memory buffer creation via a wrapper function
2011-03-15 14:58:11 -07:00
Patrick Walton
b07634f212
rustc: Add Rust bindings to the LLVM object file library
2011-03-15 12:27:48 -07:00
Graydon Hoare
1291cc2df9
Groundwork for structural comparison. Still lacking the actual loop that does it.
2011-02-28 16:36:14 -08:00
Graydon Hoare
0ddb832a4e
Teach trans and llvm to cooperate on producing tidier diagnostic names in trans.ty_str.
2011-02-17 18:16:51 -08:00
Graydon Hoare
5d2a6c73ca
Use uniform pair representation of functions everywhere, including static functions.
2011-01-05 15:31:35 -08:00
Graydon Hoare
f2195d8b0a
Print recursive LLVM types.
2010-12-23 17:05:27 -08:00
Graydon Hoare
68af077e81
Implement binop= forms. Un-XFAIL bitwise.rs.
2010-12-08 14:50:47 -08:00
Patrick Walton
3f9d5dab5b
rustc: Run the verifier over LLVM modules before writing them out
2010-12-06 17:17:49 -08:00
Patrick Walton
afd3af9bb5
rustc: Remove LLVM unions and represent tags as (discriminant, byte blob) pairs
2010-12-03 16:55:59 -08:00
Patrick Walton
eeecc8d061
rustc: Add stub support for tag constructors in trans
2010-12-01 19:03:47 -08:00
Graydon Hoare
f809375b16
Sketch out type-directed structural drop and copy, including vector types.
2010-11-24 16:56:01 -08:00
Graydon Hoare
a352efadad
Switch upcall glues to fastcall as well.
2010-11-14 13:41:10 -08:00
Graydon Hoare
a7af86155d
Support emitting trap instructions for debugging.
2010-11-14 11:21:49 -08:00
Graydon Hoare
d1e7f0b414
Redo the scheme for block context chaining and termination, to simplify and support ret better.
2010-11-10 17:46:49 -08:00
Graydon Hoare
19d0fa107a
Improve name nodes to ast, teach to parse qualified names, put out flaming tinderbox.
2010-10-04 17:25:52 -07:00
Graydon Hoare
44e4b2d63a
Teach rustc about phi nodes, block relationships. Translate if- and block-expressions.
2010-10-04 15:55:12 -07:00
Graydon Hoare
5a4cb3ef36
Translate a modest selection of easy binops.
2010-09-28 14:01:21 -07:00
Graydon Hoare
4cfc4250bf
More work on trans, almost getting to the point of emitting an upcall.
2010-09-24 14:56:04 -07:00
Graydon Hoare
6b412be619
Wrap long line.
2010-09-23 18:42:49 -07:00
Graydon Hoare
730439c508
Improve LLVM builder wrapper-object.
2010-09-23 18:38:09 -07:00
Graydon Hoare
2db1f864e2
Declare the global and upcall glues as ValueRefs in rustc's trans.
2010-09-23 17:16:34 -07:00
Graydon Hoare
04a55df54b
Flesh out rustc.me.trans to construct functions, basic blocks and builders off the AST.
2010-09-22 17:05:38 -07:00
Graydon Hoare
3f2c39b3d8
Fix symbol names on LLVM C library binding and library-name for LLVM.
2010-08-18 00:19:25 -07:00
Graydon Hoare
7e62aa6801
Absent any deep overhauls to syntax or constant-handling, hack in the ability to project a cexp var binding to a token in the parser. Use it in comp/rustc.rc and comp/lib/llvm.rs.
2010-08-16 13:02:46 -07:00
Graydon Hoare
5267b77d3b
Add more LLVM library bindings to rustc.
2010-08-12 12:10:36 -07:00
Graydon Hoare
c3945da2e4
Add another pile of LLVM bindings.
2010-07-12 23:48:44 -07:00
Graydon Hoare
cd0c9dd4fb
Start bringing in LLVM bindings.
2010-07-12 17:47:40 -07:00