Matthias Braun [Fri, 12 Feb 2010 17:48:39 +0000 (17:48 +0000)]
don't ignore entities in Sels
[r27133]
Matthias Braun [Fri, 12 Feb 2010 16:12:12 +0000 (16:12 +0000)]
export/import visibility and linkageflags
[r27131]
Matthias Braun [Fri, 12 Feb 2010 14:34:24 +0000 (14:34 +0000)]
remove pointless message
[r27130]
Matthias Braun [Fri, 12 Feb 2010 08:50:51 +0000 (08:50 +0000)]
put my notes into the code so they don't get lost. Removed some unused stuff
[r27129]
Michael Beck [Thu, 11 Feb 2010 15:01:03 +0000 (15:01 +0000)]
Update version.
[r27125]
Michael Beck [Thu, 11 Feb 2010 14:54:29 +0000 (14:54 +0000)]
Add pass creating for loop inversion, unrolling, peeling and mux lowering.
[r27123]
Sebastian Buchwald [Thu, 11 Feb 2010 14:49:36 +0000 (14:49 +0000)]
Fixed fehler176.
[r27122]
Michael Beck [Thu, 11 Feb 2010 13:59:30 +0000 (13:59 +0000)]
Kicked complicated but useless if.
[r27121]
Michael Beck [Thu, 11 Feb 2010 13:54:14 +0000 (13:54 +0000)]
Don't use malloc inside libFirm.
Kicked useless memory allocation and casts.
[r27120]
Michael Beck [Thu, 11 Feb 2010 13:49:31 +0000 (13:49 +0000)]
BugFix: fixed list_for_each_safe() instance.
C99 feature removed.
[r27119]
Michael Beck [Thu, 11 Feb 2010 13:45:44 +0000 (13:45 +0000)]
C99 feature removed.
[r27118]
Michael Beck [Thu, 11 Feb 2010 13:45:09 +0000 (13:45 +0000)]
Reformat ugly if sequence and renamed variables to make it mode readable.
Moved comments AFTER the ifs (where they belong to).
[r27117]
Matthias Braun [Thu, 11 Feb 2010 12:27:37 +0000 (12:27 +0000)]
fix weak external functions
[r27116]
Matthias Braun [Thu, 11 Feb 2010 12:27:09 +0000 (12:27 +0000)]
do not free the graph after emitting it (this should only change the peak memory allocation of firm marginally). The gas dumper needs the irg info sometimes.
[r27115]
Olaf Liebe [Thu, 11 Feb 2010 11:49:50 +0000 (11:49 +0000)]
Removed ir_common_linkages enum (wrong and not helpful)
[r27114]
Olaf Liebe [Thu, 11 Feb 2010 11:33:55 +0000 (11:33 +0000)]
Fixed name mangling for private entities
[r27113]
Matthias Braun [Thu, 11 Feb 2010 00:18:43 +0000 (00:18 +0000)]
allow several odd weak combinations
[r27110]
Matthias Braun [Wed, 10 Feb 2010 23:05:45 +0000 (23:05 +0000)]
support for local common symbols (whatever that is good for); introduce ir_visibility_private (not tested yet as they don't occur in C)
[r27109]
Matthias Braun [Wed, 10 Feb 2010 22:09:13 +0000 (22:09 +0000)]
put zero initialized entities into bss section (not just uninitialized ones); TLS entities should go to tbss or tdata
[r27108]
Sebastian Buchwald [Wed, 10 Feb 2010 15:28:15 +0000 (15:28 +0000)]
Fixed VRP bugs.
[r27107]
Matthias Braun [Wed, 10 Feb 2010 10:29:10 +0000 (10:29 +0000)]
fix
[r27106]
Matthias Braun [Wed, 10 Feb 2010 10:00:16 +0000 (10:00 +0000)]
make statev_sql commandlines similar to mysql commandlines
[r27103]
Jonas Fietz [Wed, 10 Feb 2010 03:33:51 +0000 (03:33 +0000)]
Fix bug when handling pn_Cmp_Lg with vrp info
[r27101]
Jonas Fietz [Wed, 10 Feb 2010 03:22:52 +0000 (03:22 +0000)]
Add optimizations for Proj after Cond using VRP
This uses the vrp information to evaluate int projs.
This optimizes cases like:
x |= 33;
y = x & 96;
to y = 1;
[r27100]
Jonas Fietz [Wed, 10 Feb 2010 02:47:40 +0000 (02:47 +0000)]
Add some optimizations for jumpthreading using vrp information
This uses the vrp information to expand the handling for constants to
handling ranges as well.
[r27098]
Jonas Fietz [Wed, 10 Feb 2010 02:47:39 +0000 (02:47 +0000)]
Add basic optimizations based on vrp info
This adds some basic optimizations, e.g. to calculate the value for some
nodes if it can be determined.
[r27097]
Jonas Fietz [Wed, 10 Feb 2010 02:47:38 +0000 (02:47 +0000)]
Add analysis for vrp information
This commit adds the basic analysis needed to derive vrp information. It
should not run infinetely, but there may be border cases.
There might be error conditions for which there are no checks yet.
Also, a lot of the derivations can still be improved.
[r27096]
Jonas Fietz [Wed, 10 Feb 2010 02:47:38 +0000 (02:47 +0000)]
Add dumper code for VRP information
This commit adds the code and prototypes for dumping vrp information
[r27095]
Jonas Fietz [Wed, 10 Feb 2010 02:47:36 +0000 (02:47 +0000)]
Add structures and initialization for VRP
This commit adds the neccessary attributes to each ir_node. It also adds
the initialization code and some prototypes for the graph_pass and some
support functions.
[r27094]
Olaf Liebe [Tue, 9 Feb 2010 14:02:01 +0000 (14:02 +0000)]
Fixed sizeof(long)-dependent case sorting and signedness of if-cascade comparisons
[r27093]
Christian Helmer [Tue, 9 Feb 2010 13:11:35 +0000 (13:11 +0000)]
Added missing do_loop_unrolling
[r27092]
Matthias Braun [Mon, 8 Feb 2010 23:30:09 +0000 (23:30 +0000)]
make firm compile again
[r27091]
Matthias Braun [Mon, 8 Feb 2010 23:16:36 +0000 (23:16 +0000)]
in case of missing tables create them even in update mode
[r27090]
Christian Helmer [Mon, 8 Feb 2010 16:32:46 +0000 (16:32 +0000)]
cparser now knows 'unroll-loops'.
[r27088]
Matthias Braun [Sun, 7 Feb 2010 23:16:32 +0000 (23:16 +0000)]
cleanup rework and extend statev_sql.py; it should be faster now and has a new mode to append results to an existing DB
[r27086]
Michael Beck [Sun, 7 Feb 2010 18:09:24 +0000 (18:09 +0000)]
Mux -> Abs works for unordered compare ...
[r27083]
Michael Beck [Sun, 7 Feb 2010 16:55:18 +0000 (16:55 +0000)]
Reverted r27079. Seems to be wrong.
[r27082]
Michael Beck [Sat, 6 Feb 2010 00:31:02 +0000 (00:31 +0000)]
BugFix: ins_permuted means inversed flags, not negated ...
[r27079]
Michael Beck [Sat, 6 Feb 2010 00:09:00 +0000 (00:09 +0000)]
Fixed setcc transform:
- test for t ==1 AFTER f == 0: this fixes fehler035.c
- disable sbb creation: reloader might change the cmp instruction yet
[r27078]
Matthias Braun [Fri, 5 Feb 2010 22:28:10 +0000 (22:28 +0000)]
constructors/destructors must not have a name
[r27077]
Christoph Mallon [Fri, 5 Feb 2010 22:23:49 +0000 (22:23 +0000)]
Do not emit a label if a entity has no name.
[r27076]
Christoph Mallon [Fri, 5 Feb 2010 22:23:21 +0000 (22:23 +0000)]
Support dtor sections on Mach-O.
[r27075]
Matthias Braun [Fri, 5 Feb 2010 20:34:41 +0000 (20:34 +0000)]
hack for mac
[r27064]
Matthias Braun [Fri, 5 Feb 2010 20:17:30 +0000 (20:17 +0000)]
mac gas doesn't get .octa
[r27063]
Matthias Braun [Fri, 5 Feb 2010 20:03:41 +0000 (20:03 +0000)]
fix all pic bases I could find
[r27062]
Matthias Braun [Fri, 5 Feb 2010 19:27:50 +0000 (19:27 +0000)]
fix another PIC problem
[r27061]
Matthias Braun [Fri, 5 Feb 2010 19:20:56 +0000 (19:20 +0000)]
try to fix PIC commons
[r27060]
Christoph Mallon [Fri, 5 Feb 2010 19:11:43 +0000 (19:11 +0000)]
Emit the symbol of PIC trampolines.
[r27058]
Matthias Braun [Fri, 5 Feb 2010 18:53:55 +0000 (18:53 +0000)]
bring back PIC support
[r27057]
Matthias Braun [Fri, 5 Feb 2010 18:30:05 +0000 (18:30 +0000)]
a new garbage collection pass less conservative than gc_irgs (but does not respect properties of object-oriented programs)
[r27056]
Matthias Braun [Fri, 5 Feb 2010 18:01:00 +0000 (18:01 +0000)]
revivie max_irg_visited
[r27055]
Matthias Braun [Fri, 5 Feb 2010 18:00:46 +0000 (18:00 +0000)]
make irg_walk_2 public
[r27054]
Michael Beck [Fri, 5 Feb 2010 09:29:30 +0000 (09:29 +0000)]
New setcc framework can handle all mux_is_abs(..., Const, Const) using set and up to 3 instructions ...
[r27053]
Michael Beck [Fri, 5 Feb 2010 09:28:29 +0000 (09:28 +0000)]
export ia32_immediate_from_long()
[r27052]
Matthias Braun [Thu, 4 Feb 2010 22:17:19 +0000 (22:17 +0000)]
attempt to fix compound_graph stuff
[r27048]
Matthias Braun [Thu, 4 Feb 2010 20:34:43 +0000 (20:34 +0000)]
oops
[r27046]
Matthias Braun [Thu, 4 Feb 2010 20:32:44 +0000 (20:32 +0000)]
use more IR_RESOURCE_TYPE_VISITED, remove pointless inc_master_type_visited calls
[r27045]
Matthias Braun [Thu, 4 Feb 2010 20:27:31 +0000 (20:27 +0000)]
introduce IR_RESOURCE_TYPE_VISITED
[r27044]
Matthias Braun [Thu, 4 Feb 2010 15:37:55 +0000 (15:37 +0000)]
fix buf: we can't handle floating point muxes
[r27042]
Matthias Braun [Thu, 4 Feb 2010 13:27:45 +0000 (13:27 +0000)]
- representing the 3-state visibility (default,local,external) with 2 bits was
clumsy. Bring back get_entity_visibility and set_entity_visibility
[r27039]
Michael Beck [Wed, 3 Feb 2010 22:21:20 +0000 (22:21 +0000)]
C99 feature removed.
[r27037]
Michael Beck [Wed, 3 Feb 2010 22:15:45 +0000 (22:15 +0000)]
Add get_tarval_lowest_bit() and get_tarval_popcnt(), expand some documentation.
[r27036]
Matthias Braun [Wed, 3 Feb 2010 20:30:12 +0000 (20:30 +0000)]
further corrections on 'COMMON' semantic
[r27034]
Matthias Braun [Wed, 3 Feb 2010 20:25:32 +0000 (20:25 +0000)]
backend_marked was a buggy/wrong concept, removed it
[r27032]
Matthias Braun [Wed, 3 Feb 2010 20:03:00 +0000 (20:03 +0000)]
fix some assertions; correctly handle weak symbols
[r27031]
Matthias Braun [Wed, 3 Feb 2010 19:31:48 +0000 (19:31 +0000)]
Rework linkage types in firm.
- Merge stickyness, visibility and variability into ir_linkage
- Add proper support for common symbols, weak symbols and C++ COMDAT stuff
- Mark OO-features type_visibility, peculiarity and allocation as deprecated
OO feature will be separated from firm core into higher levels in the long run
- Rework, simplify and fix bugs in begnuas.c
[r27030]
Christian Helmer [Tue, 2 Feb 2010 15:57:31 +0000 (15:57 +0000)]
Loop unrolling implemented. Inversion+unrolling fail 3 tests.
[r27029]
Olaf Liebe [Mon, 1 Feb 2010 21:38:06 +0000 (21:38 +0000)]
Fixed broken ia32_emitf (va_arg was not always called for %AR)
[r27026]
Matthias Braun [Mon, 1 Feb 2010 18:49:57 +0000 (18:49 +0000)]
make the character used for specifying elf types configurable in begnuas and use generic function prolog in arm backend
[r27022]
Matthias Braun [Mon, 1 Feb 2010 18:13:25 +0000 (18:13 +0000)]
fix fehler175.c
[r27021]
Matthias Braun [Mon, 1 Feb 2010 17:58:21 +0000 (17:58 +0000)]
fix wrong mux_is_set test
[r27019]
Matthias Braun [Mon, 1 Feb 2010 17:45:45 +0000 (17:45 +0000)]
fix fehler174
[r27018]
Hannes Rapp [Mon, 1 Feb 2010 15:45:40 +0000 (15:45 +0000)]
[r27015]
Hannes Rapp [Mon, 1 Feb 2010 15:43:53 +0000 (15:43 +0000)]
- std function-prolog emitter eingebaut
[r27014]
Matthias Braun [Fri, 29 Jan 2010 18:24:15 +0000 (18:24 +0000)]
fix float constants with PIC code
[r27012]
Matthias Braun [Fri, 29 Jan 2010 18:04:34 +0000 (18:04 +0000)]
fix allow_ifconv being called with true/false swapped
[r27011]
Christoph Mallon [Thu, 28 Jan 2010 20:55:16 +0000 (20:55 +0000)]
Reduce code duplication by jumping to the appropriate case.
[r27008]
Christoph Mallon [Thu, 28 Jan 2010 20:32:02 +0000 (20:32 +0000)]
In mode_b lowering move the assertion for mode_b below the check, whether the node was replaced already. Some nodes are their own replacement and therefore do not have mode_b anymore after lowering.
[r27007]
Christoph Mallon [Thu, 28 Jan 2010 20:28:43 +0000 (20:28 +0000)]
Consistently record the replacement nodes and removal candidates when doing mode_b lowering. This was not done in some cases, most importantly the former was not done for certain Projs, which are their own replacement (just their mode gets changed). Also add a FIXME that the algorithm is subtly broken and may replace the same node twice due to recursion over Phis.
[r27006]
Christoph Mallon [Thu, 28 Jan 2010 19:14:30 +0000 (19:14 +0000)]
Leave a bit space between cases.
[r27005]
Christoph Mallon [Thu, 28 Jan 2010 19:13:04 +0000 (19:13 +0000)]
Use the locally cached value of config.lowered_mode instead of reading it again.
[r27004]
Christoph Mallon [Thu, 28 Jan 2010 19:09:16 +0000 (19:09 +0000)]
Use the real firm_clear_link() instead of duplicating it.
[r27003]
Christoph Mallon [Thu, 28 Jan 2010 19:05:13 +0000 (19:05 +0000)]
Use a real Dummy node instead of misusing an Unknown node and shortly deactivating CSE.
[r27002]
Christoph Mallon [Thu, 28 Jan 2010 18:57:29 +0000 (18:57 +0000)]
Remove write-only local variable.
[r27001]
Christoph Mallon [Thu, 28 Jan 2010 18:56:00 +0000 (18:56 +0000)]
Make the documenation of new_*Alloc() consistent: It's the number of objects, not bytes.
[r27000]
Olaf Liebe [Thu, 28 Jan 2010 12:24:10 +0000 (12:24 +0000)]
Fixed set_irn_in array allocation obstack
[r26997]
Olaf Liebe [Thu, 28 Jan 2010 10:15:03 +0000 (10:15 +0000)]
lower_highlevel didn't invalidate outedges, code_placement must assure doms
[r26996]
Olaf Liebe [Thu, 28 Jan 2010 10:13:26 +0000 (10:13 +0000)]
emit unknown values as 0
[r26995]
Andreas Zwinkau [Wed, 27 Jan 2010 09:58:21 +0000 (09:58 +0000)]
libfirm must be linked to libm
[r26994]
Matthias Braun [Fri, 22 Jan 2010 09:03:34 +0000 (09:03 +0000)]
add a default_layout_compound_type; the backend layouts the frametype now if it hasn't happened yet
[r26991]
Michael Beck [Fri, 22 Jan 2010 00:02:57 +0000 (00:02 +0000)]
cosmetic change
[r26990]
Matthias Braun [Wed, 20 Jan 2010 08:34:24 +0000 (08:34 +0000)]
fix doz stuff
[r26988]
Matthias Braun [Tue, 19 Jan 2010 22:53:49 +0000 (22:53 +0000)]
- allow_ifconv interface was totally braindamaged. Use a simple and intuitive
interface now.
- Fix several bugs in the ia32 version of it
- Unfortunately this leads to the obscure Doz construct being always created
(instead of only when cmovs are allowed) and firm generates broken code
for that (testcase coming in 5 minutes)
[r26985]
Matthias Braun [Mon, 18 Jan 2010 15:27:35 +0000 (15:27 +0000)]
remove ins_permuted from CMovcc and Setcc constructors (again)
[r26983]
Michael Beck [Mon, 18 Jan 2010 02:28:05 +0000 (02:28 +0000)]
Add an cse_neutral opcode property. Nodes with this property are
CSE neutral to its users, i.e. op(..., x, ...) ~ op(..., y, ...) if x and y are both neutral.
Setting this property to ia32_ProduceVal nodes allow to CSE nodes that differ in ProduceVals only (which themself NEVER are cse'd).
This "fixes" divmod.
[r26981]
Michael Beck [Mon, 18 Jan 2010 01:05:41 +0000 (01:05 +0000)]
Add a rule to transform x .op. (x .op. y) into y .op. (x .op. x) for commutative nodes. This finally "fixes" codegen/lea.c and might be usefull for and,or,xor as well.
[r26980]
Michael Beck [Mon, 18 Jan 2010 00:32:49 +0000 (00:32 +0000)]
Fixed move_consts_up() failure in some contexts (This partly fixes codegen/lea.c).
[r26979]
Michael Beck [Sun, 17 Jan 2010 22:48:37 +0000 (22:48 +0000)]
Partly undo r26950: there seems be be subtile difference between get_flags_node() and determine_final_pnc() that are triggered by that change.
This should fix 175.vpr.
[r26977]
Christoph Mallon [Fri, 15 Jan 2010 12:53:46 +0000 (12:53 +0000)]
Replace the shift_table[] by a simple macro.
[r26974]
Christoph Mallon [Fri, 15 Jan 2010 12:23:35 +0000 (12:23 +0000)]
struct types still require names.
[r26973]