--- Log opened Mon Jun 27 00:00:12 2016 | ||
shorne | fyi, I fixed the gcc stage2 issue, just a few lines, ill post a patch (but it is already upstream) | 06:57 |
---|---|---|
olof | Hmm... I'm having doubts that the saturation branch predictor in mor1kx works very well | 08:43 |
SMDwrk | olof: what's wrong with it? | 08:45 |
SMDwrk | predict rate is too small? | 08:45 |
olof | SMDwrk: The execute_{bf,bnf} signals aren't connected to anything | 08:47 |
SMDwrk | Are they? Let me check | 08:48 |
olof | It looks like a simple type in mor1kx_branch_prediction.v I fixed that. But I can't figure out where to connect them one level higher up, in mor1kx_cpu_cappuccino.v | 08:49 |
olof | I also removed the unused OPTION_OPERAND_WIDTH parameters in the branch_predictor* modules | 08:49 |
olof | Ah ok. I found the execute_op_{bf,bnf}_o signals in cpu_cappucino now. They were probably connected correctly, but the wires weren't declared | 08:51 |
SMDwrk | olof: execute_bf_i is connected to branch_predictor at the cpu_cappucino file, and in branch_prediction there's a typo: | 08:53 |
SMDwrk | >.execute_op_bnf_i (execute_op_bnf_i), | 08:53 |
SMDwrk | should be | 08:53 |
SMDwrk | .execute_op_bnf_i (execute_bnf_i), | 08:53 |
olof | Yep | 08:53 |
olof | I fixed that | 08:53 |
olof | And added wire declarations for the signals in cpu_cappucino | 08:53 |
SMDwrk | Thanks and sorry for the mess( | 08:54 |
olof | No worries. Just surprised that we didn't see this before | 08:56 |
SMDwrk | olof: me too, how did you find it? | 08:57 |
olof | Quartus | 09:02 |
mor1kx | [mor1kx] olofk opened pull request #36: Remove avalon if and fix some typos/missing wires (master...fixes) https://github.com/openrisc/mor1kx/pull/36 | 09:04 |
olof | I wonder if mor1kx will come online soon | 09:04 |
olof | :) | 09:04 |
SMDwrk | what do you mean by "online"? | 09:04 |
SMDwrk | and also do you know any option to iverilog to strictly check the code? | 09:04 |
olof | stekern installed a bot that joins this channel everytime there's a commit or PR to the mor1kx repo | 09:06 |
SMDwrk | ah | 09:06 |
olof | I don't think Icarus has any linter, but I know that many people use the one in verilator | 09:06 |
olof | But there are actually some flags you could enable in icarus too | 09:07 |
ZipCPU | While you are waiting, does anyone know if branch prediction can be done in GCC? That is, I have two means of executing branches, one slow and one fast, and if the compiler could "guess" which branch would be taken, I could switch between them. | 09:07 |
olof | Like -Wall | 09:07 |
olof | ZipCPU: At least Linux has some macros called LIKELY and similar things | 09:08 |
olof | I think those are meant to handle that | 09:08 |
SMDwrk | ZipCPU I guess that can be done with some sort of profiling. You can run your prog with sample data and let gcc optimize code based on the result | 09:09 |
ZipCPU | I'll look up LIKELY, but do either of you know what the hook looks when generating RTL for GCC? | 09:11 |
olof | ZipCPU: Not a clue. Just stumbled upon it in Linux and thought it was a bit funny :) | 09:12 |
ZipCPU | Got it. Okay, at least its a lead I can chase down. Thanks. | 09:13 |
olof | http://stackoverflow.com/questions/109710/likely-unlikely-macros-in-the-linux-kernel-how-do-they-work-whats-their | 09:15 |
ZipCPU | Already ahead of you--reading it now. | 09:15 |
olof | :) | 09:16 |
ZipCPU | Looks like the code for branch prediction is found in gcc's gcc/predict.c file. | 09:25 |
ZipCPU | It also looks like the compiler attaches a "NOTE" the any branch RTL, indicating its probability ... | 09:28 |
mor1kx | [mor1kx] skristiansson pushed 3 new commits to master: https://github.com/openrisc/mor1kx/compare/5b10fe0343a5...1011e11d48db | 17:13 |
mor1kx | mor1kx/master b35efdf Olof Kindgren: Remove unmaintained avalon interface | 17:13 |
mor1kx | mor1kx/master f842a61 Olof Kindgren: Fix typos and missing wires in branch prediction | 17:13 |
mor1kx | mor1kx/master 1011e11 Stefan Kristiansson: Merge pull request #36 from olofk/fixes... | 17:13 |
shorne | fyi, gdb build on gcc 6.1 has got problems. many to list, I merged upstream master too, and still some issues | 18:57 |
shorne | mainly things about different signatures between gcc and gdb | 18:58 |
shorne | /usr/include/string.h:596:26: error: declaration of ‘const char* basename(const char*) throw ()’ has a different exception specifier | 18:58 |
shorne | extern "C++" const char *basename (const char *__filename) | 18:58 |
--- Log closed Tue Jun 28 00:00:14 2016 |
Generated by irclog2html.py 2.15.2 by Marius Gedminas - find it at mg.pov.lt!