9 TunableSetting(VarType type, TunableParam param);
10 TunableSetting(VarType type1, VarType type2, TunableParam param);
11 TunableSetting(TunableParam param);
12 TunableSetting(TunableSetting *ts);
13 void setDecision(int _low, int _high, int _default, int _selection);
25 friend unsigned int tunableSettingHash(TunableSetting *setting);
26 friend bool tunableSettingEquals(TunableSetting *setting1, TunableSetting *setting2);
27 friend class SearchTuner;
30 unsigned int tunableSettingHash(TunableSetting *setting);
31 bool tunableSettingEquals(TunableSetting *setting1, TunableSetting *setting2);
33 typedef Hashset<TunableSetting *, uintptr_t, 4, tunableSettingHash, tunableSettingEquals> HashsetTunableSetting;
34 typedef SetIterator<TunableSetting *, uintptr_t, 4, tunableSettingHash, tunableSettingEquals> SetIteratorTunableSetting;
36 class SearchTuner : public Tuner {
40 int getTunable(TunableParam param, TunableDesc *descriptor);
41 int getVarTunable(VarType vartype, TunableParam param, TunableDesc *descriptor);
42 int getVarTunable(VarType vartype1, VarType vartype2, TunableParam param, TunableDesc *descriptor);
43 SearchTuner *copyUsed();
45 uint getSize() { return usedSettings.getSize();}
51 /** Used Settings keeps track of settings that were actually used by
52 the example. Mutating settings may cause the Constraint Compiler
53 not to query other settings.*/
54 HashsetTunableSetting usedSettings;
55 /** Settings contains all settings. */
56 HashsetTunableSetting settings;