I think the only other simulator is Verilator, which is free and open source, but a bit different than icarus. It does use GTKWave for viewing the results though.
Related, I’m in the process of switching from Icarus to Verilator because Icarus does not support the SystemVerilog commands I have started to use (always_ff, always_comb) and Verilator does.
Yosys works fine with the limited SystemVerilog commands I have used so far, you do have to remember to use the -sv flag though.