PandA-2024.02
|
#include "config_HAVE_ASSERTS.hpp"
#include "config_HAVE_FROM_DISCREPANCY_BUILT.hpp"
#include "Discrepancy.hpp"
#include "IR_lowering.hpp"
#include "Parameter.hpp"
#include "application_manager.hpp"
#include "custom_map.hpp"
#include "dbgPrintHelper.hpp"
#include "design_flow_step.hpp"
#include "exceptions.hpp"
#include "frontend_flow_step.hpp"
#include "function_behavior.hpp"
#include "function_frontend_flow_step.hpp"
#include "math_function.hpp"
#include "refcount.hpp"
#include "string_manipulation.hpp"
#include "tree_basic_block.hpp"
#include "tree_common.hpp"
#include "tree_helper.hpp"
#include "tree_manager.hpp"
#include "tree_manipulation.hpp"
#include "tree_node.hpp"
#include "tree_reindex.hpp"
#include <algorithm>
#include <cstring>
#include <iterator>
#include <string>
#include <utility>
#include <vector>
Go to the source code of this file.
Macros | |
#define | LOWPART(x) (static_cast<unsigned long long int>(x) & ((1ULL << 32) - 1)) |
#define | HIGHPART(x) (static_cast<unsigned long long int>(x) >> 32) |
#define | BASE (1LL << 32) |
Functions | |
static unsigned long long int | invert_mod2n (unsigned long long int x, unsigned long long n) |
Compute the inverse of X mod 2**n, i.e., find Y such that X * Y is congruent to 1 (mod 2**N). More... | |
static void | encode (long long int *words, unsigned long long int low, long long int hi) |
static void | decode (long long int *words, unsigned long long int *low, long long int *hi) |
static int | div_and_round_double_cprop (unsigned long long int lnum_orig, long long int hnum_orig, unsigned long long int lden_orig, unsigned long long int *lquo, long long int *hquo) |
static unsigned long long int | choose_multiplier (unsigned long long int d, int n, int precision, unsigned long long int *multiplier_ptr, int *post_shift_ptr, int *lgup_ptr) |
#define BASE (1LL << 32) |
Definition at line 94 of file IR_lowering_exec.cpp.
Referenced by decode(), and div_and_round_double_cprop().
Definition at line 93 of file IR_lowering_exec.cpp.
Referenced by div_and_round_double_cprop(), and encode().
Definition at line 92 of file IR_lowering_exec.cpp.
Referenced by div_and_round_double_cprop(), and encode().
|
static |
Definition at line 313 of file IR_lowering_exec.cpp.
References ceil_log2(), div_and_round_double_cprop(), and THROW_ASSERT.
Referenced by IR_lowering::division_by_a_constant().
|
static |
Definition at line 110 of file IR_lowering_exec.cpp.
References BASE.
Referenced by div_and_round_double_cprop().
|
static |
Definition at line 124 of file IR_lowering_exec.cpp.
References BASE, decode(), encode(), HIGHPART, and LOWPART.
Referenced by choose_multiplier().
|
static |
Definition at line 99 of file IR_lowering_exec.cpp.
References HIGHPART, and LOWPART.
Referenced by div_and_round_double_cprop().
|
static |
Compute the inverse of X mod 2**n, i.e., find Y such that X * Y is congruent to 1 (mod 2**N).
Definition at line 69 of file IR_lowering_exec.cpp.
References x.
Referenced by IR_lowering::division_by_a_constant().